YubiKey(ユビキー)は、コンピュータ、ネットワーク、オンラインサービスへのアクセスを保護するため、Yubico社により製造されたハードウェア認証装置である。これは、ワンタイムパスワード、公開鍵暗号、認証、FIDOアライアンスが開発したユニバーサル2ndファクター(U2F)、FIDO2プロトコルに対応している。ユーザーは、ワンタイムパスワード(その時限り有効なパスワード)を発行するか、デバイスによって生成されたFIDOベースの公開鍵/秘密鍵ペアを使用することで、安全にログインすることができる。また、YubiKeyは、ワンタイムパスワードに対応していないサイトで使用するための静的パスワードを保存することもできる。Facebook社は従業員の認証情報にYubiKeyを使用している。Google社は従業員と顧客の両方に対応している。いくつかのパスワードマネージャーはYubiKeyに対応している。YubicoはYubiKeyに似た認証装置のSecurity Keyも製造しているが、公開鍵認証に焦点を置いたものである。

Yubikeyは、HMACベースワンタイムパスワードアルゴリズム(HOTP)と時間ベースワンタイムパスワードアルゴリズム(TOTP)を実装し、USB HIDプロトコルを介してワンタイムパスワードを配信するキーボードとして自身を識別する。YubiKey NEOおよびYubiKey 4には、1024ビット、2048ビット、3072ビット、4096ビットのRSA(2048ビット以上の鍵サイズの場合はGnuPGバージョン2.0以上が必要)と楕円曲線暗号(ECC)p256およびp384、近距離無線通信(NFC)、FIDO U2Fを使用したOpenPGPカードなどのプロトコルが含まれている。YubiKeyを使用することで、秘密鍵を外部に公開することなく、メッセージの署名、暗号化、復号を行うことができる。第4世代のYubiKeyは2015年11月16日に発売された。これは4096ビットのRSA鍵を持つOpenPGPに対応し、Dockerイメージのコード署名を可能にする機能であるPIVスマートカードのPKCS 11をサポートしている。

Yubico社は、最高経営責任者のStina Ehrensvärd (英語版) 氏が2007年に設立した非公開企業で、パロアルト、シアトル、ストックホルムにオフィスを構えている。Yubico社の最高技術責任者であるJakob Ehrensvärdは、ユニバーサル・セカンド・ファクター(U2F)として知られるようになった最初の強力な認証仕様の筆頭著者である。

2018年、YubikeyはFIDO2にも対応できるYubikey 5シリーズの提供を開始した。

## 歴史

Yubico社は2007年に設立され、同年11月に開発者向けのPilot Boxの提供を開始した。2008年4月に開催された年次RSAカンファレンスで初代YubiKey製品を発表し、2009年にはより堅牢なYubiKey IIモデルを発売した。「YubiKey」という名前は、日本語の「指」と「your ubiquitous key」(「あなた用のどこでも鍵」)に由来する。

YubiKey II以降の製品では、二つの用法が用意されており、AES秘密鍵やその他の設定で二つの異なる構成を保存できる。認証時には、一つ目の用法は端末のボタンを短く押すもの、二つ目の用法はボタンを2~5秒長押しするものである。

2010年、Yubiko社は、「YubiKey OATH」と「YubiKey RFID」モデルの提供を開始した。YubiKey OATHでは、独自のOTP認証方式である32文字のワンタイムパスワードに加えて、オープン認証イニシアティブ(OATH)のプロトコルを利用した6文字-8文字のワンタイムパスワードを生成する機能が追加された。Yubikey RFIDモデルには、OATH機能に加えて、MIFARE Classic 1kのRFIDチップが搭載されているが、これはパッケージ内の別個のデバイスであり、USB接続による通常のYubicoソフトウェアでは設定できない。

Yubico社は2012年2月にYubiKey Nanoを発表した。これは標準のYubiKeyの小型版で、ほぼ完全にUSBポート内に収まり、ボタン用の小さなタッチパッドのみが露出するように設計されていた。YubiKeyのその後のほとんどのモデルは、標準版と「nano」版の両方で利用可能である。

2012年には、Yubico社は、近距離無線通信(NFC)技術を実装し、デバイスのUSB側と統合することで、以前のYubiKey RFID製品を改良した製品『YubiKey Neo』を発売した。YubiKey Neo(および「nano」版の YubiKey Neo-n)は、NFC Data Exchange Format(NDEF)メッセージに含まれる設定可能なURLの一部として、ワンタイムパスワードをNFCリーダーに送信できる。Neo は、USB HIDキーボードとして端末に接続できるのに加えて、CCIDスマートカードとしめ端末と通信することもできる。CCIDモードはPIVスマートカードとOpenPGPに対応し、USB HIDはワンタイムパスワード認証方式に使用される。

2014年には「YubiKey Neo」が改良され、FIDO Universal 2nd Factor(U2F)に対応した。その年の後半、YubicoはFIDO U2Fセキュリティキーをリリースしたが、これには特にU2Fサポートが含まれていたが、以前のYubiKeyのその他のワンタイムパスワード、静的パスワード、スマートカード、NFC機能は含まれていなかった。発売時には、標準版が25米ドル(Nanoバージョンは40ドル)、Neo版が50米ドル(Neo-nは60ドル)であったのに対し、わずか18米ドルという当時として低価格で販売されていた。FIDO/U2Fの開発中にGoogle社が発行したプレリリースデバイスの中には、「Yubico WinUSB Gnubby(gnubby1)」と報告されている。

2015年4月、同社は標準版とnano版の「YubiKey Edge」を発売した。これは、OTPやU2F認証には対応するが、スマートカードやNFCには対応していないため、機能面ではNeoとFIDO U2F製品の中間に位置していた。

2015年11月、Yubico社は、YubiKey 4 系統の製品を発売した。標準サイズとnanoサイズのUSB-Aモデルが用意されている。YubiKey 4 は、許容されるOpenPGPキーサイズを4,096ビット(従来の2048ビットと比較して)に拡大するなど、YubiKey Neoのほとんどの機能を搭載しているが、NeoのNFC機能は削除された。

Yubico社は、CES 2017で、新しいUSB-Cデザインに対応するためにYubiKey 4シリーズの拡張を発表した。YubiKey 4Cは2017年2月13日に発売された。USB-C接続のAndroid OS上ではワンタイムパスワード機能のみに対応し、その他の機能はユニバーサル2ndファクター(U2F)など現在は対応していない。2017年9月には4C Nano版が利用可能になった。

2018年4月、同社は、新しいFIDO2認証プロトコルである「WebAuthn」(3月にW3C候補推奨ステータスに到達)および「Client to Authenticator Protocol」(CTAP、2018年5月時点でまだ開発中)を実装した初のデバイス「Security Key by Yubico」を発表した。発売時には、USB-Aコネクタを備えているもの(標準版)のみで提供される。前モデルの「FIDO U2F Security Key」と同様に青を基調色とし、ボタンには鍵のアイコンが採用されている。ボタンとキーリングの穴の間のプラスチックに「2」という数字が刻まれていることで区別される。また、FIDO U2F機能は保持しているが、従来のデバイスのOTP機能やスマートカード機能が欠けているため、YubiKey NeoやYubiKey 4よりも安価で、発売時には1個あたり20米ドルとなっている。

## 製品の特徴

YubiKey製品の主な機能と機能の一覧。

## ModHex

ワンタイムパスワードおよび内部に保存された静的パスワードを使用する場合、YubiKey は、システムのキーボード設定にできるだけ依存しないようにするために、変更された16進数のアルファベットを使用して文字を出力する。このアルファベットはModHexまたはModified Hexadecimalと呼ばれ、16進数の「0123456789abcdef」に対応する文字「cbdefghijklnrtuv」で構成される。YubiKeysはUSB HIDモードで生のキーボードスキャンコードを使用するため、Dvorakのような異なるキーボードレイアウトで設定されたコンピュータでデバイスを使用すると問題が発生する可能性がある。ワンタイムパスワードを使用する場合は、オペレーティングシステムの機能を使用して、一時的に標準のUSキーボードレイアウト(または同等なもの)に切り替えることが勧められているが、YubiKey Neo以降のデバイスは、ModHex文字セットと互換性のないレイアウトに合わせて代替スキャンコードを設定することができる。

YubiKeysとSecurity KeysのU2F認証は、キーボードスキャンコードの代わりに生のバイナリメッセージを送受信する代替U2FHIDプロトコルを使用することで、この問題を回避する。CCIDモードは、HIDプロトコルを全く使用しないスマートカードリーダーとして機能する。

## セキュリティ上の問題

### ソースコードが公開されない YubiKey 4 の懸念

曖昧さによるセキュリティの例として、Yubikey上で実行されるコードのほとんどがソースコードが公開されないこと(クローズドソース)が挙げられる。YubicoはPGPやHMACベースワンタイムパスワード(HOTP)のような業界標準機能のコードを公開したが、それは製品の第4世代の時点で、これは新しい製品に付属しているコードと同じではないことが明らかになった。新しい製品は工場で恒久的にファームウェアロックされているため、オープンソースコードをコンパイルして手動でデバイスに読み込むことはできない。

U2F、PIV、Modhexなどの他の機能のコードは完全にクローズドソースである。

2016年5月16日、Yubicoの最高経営責任者であるJakob Ehrensvärd氏は、オープンソースコミュニティの懸念に対して、「私たちは製品会社として、既製品のコンポーネントに基づく実装に対して明確な立場を取っており、商用グレードのAVRやARMコントローラのようなものはセキュリティ製品に使用するには適さないと考えている。」というブログ記事で回答した。

Techdirtの創設者であるマイク・マスニック氏はこの決定に対し、「暗号化は厄介なものである。ほとんどの場合、脆弱性やバグがある。これは最近多くのことを指摘している。しかし、それらを修正する最善の方法は、多くの知識のある人にコードを見てもらうことである。クローズドソースではそれは不可能である。」と強く批判した。

### 特定のYubiKey 4、4C、および4 NanoデバイスにおけるROCAの脆弱性

2017年10月、セキュリティ研究者は、さまざまなセキュリティキーやセキュリティトークン製品(YubiKeyを含む)で幅広く使用されているInfineonのセキュリティチップで使用されている暗号化ライブラリでのRSAキーペア生成の実装に脆弱性(ROCAと呼ばれる)を発見した。この脆弱性により、攻撃者は公開鍵を使用して秘密鍵を再構築できる。リビジョン 4.2.6から4.3.4までのYubiKey 4、YubiKey 4C、YubiKey 4 Nanoのすべてのデバイスがこの脆弱性の影響を受けている。Yubicoでは、出荷されているYubiKey 4のすべてのデバイスについて、別のキー生成機能に切り替えることでこの問題を解決し、影響を受けたキーの交換を無償で提供した。交換オファーは2019年3月31日で終了した。場合によっては、YubiKeyの外部で新しいキーを生成し、デバイスにインポートすることで、この問題を回避することができる。

### Yubikey NEOでのOTPパスワード保護

2018年1月、Yubicoは、Yubikey NEOのOTP機能のパスワード保護が特定の条件下でバイパスされる可能性がある中程度の脆弱性を開示した。この問題はファームウェアバージョン3.5.0で修正されており、Yubicoは影響を受けたと主張するユーザーに対し、無償で交換用キーを提供した。

### 特定のFIPSシリーズデバイスでの初期ランダム性の低下

2019年6月、Yubicoは、ファームウェアバージョン4.4.2および4.4.4を搭載したFIPS認証デバイスにおいて、電源投入直後にランダム性が低下したことを報告するセキュリティアドバイザリを公開した(バージョン4.4.3は存在しない)。ランダム性が低下したセキュリティキーを使用すると、予想よりも簡単にキーが検出されて侵害される可能性がある。この問題は、FIPSシリーズのみに影響し、特定のシナリオのみに影響を与えたが、FIPS ECDSAの使用は「リスクが高い」としている。同社は、影響を受けた鍵の交換を無償で行っている。

## 社会運動

2019~20年の香港抗議行動では、警察による権力乱用に直面した抗議者のネット上の安全性に大きな懸念が寄せられている。Yubicoは、香港のデモ参加者を保護するために500台のYubikeyをスポンサーとして提供した。同社は、脆弱なインターネットユーザーを保護するという同社の使命に基づいて決定したとしており、言論の自由を支持する人たちと協力しているという。

## 参照項目

- OpenPGPカード