YubiKey

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

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

Yubicoは、CEOのStina EhrensvärdStina Ehrensvärd氏が2007年に設立した非公開企業で、パロアルト、シアトル、ストックホルムにオフィスを構えている。YubicoのCTOであるJakob Ehrensvärdは、ユニバーサル2ndファクターとして知られるようになった最初の強力な認証仕様の筆頭著者である。

2018年、YubikeyはFIDO2プロジェクトのサポートを追加したYubikey 5シリーズをリリースした。

1. 歴史
-----

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

YubiKey II以降のモデルでは、2つの「スロット」が用意されており、AES秘密鍵やその他の設定で2つの異なる構成を保存できる。認証時には、1つ目のスロットは端末のボタンを短く押すだけで使用され、2つ目のスロットはボタンを2～5秒長押しすると使用される。

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

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

2012年には、近距離無線通信技術を実装し、デバイスのUSB側と統合することで、以前のYubiKey RFID製品を改良したYubiKey Neoも発表された。YubiKey Neoは、NFC Data Exchange Formatメッセージに含まれる設定可能なURLの一部として、ワンタイムパスワードをNFCリーダーに送信できる。Neo は、USB HIDキーボード・エミュレーションに加えて、CCIDスマートカード・プロトコルを使用して通信することもできる。CCIDモードはPIVスマートカードとOpenPGPに対応し、USB HIDはワンタイムパスワード認証方式に使用される。

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

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

YubiKey 4ファミリのデバイスは、2015年11月に発売され、標準サイズとnanoサイズのUSB-Aモデルが用意されている。YubiKey 4は、許容されるOpenPGPキーサイズを4096ビットに拡大するなど、YubiKey Neoのほとんどの機能を搭載しているが、NeoのNFC機能は削除された。

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

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

2. 製品の特徴
--------

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





3. ModHex
---------

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

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

4. セキュリティ上の問題
-------------

4.1. YubiKey 4クローズドソースの懸念
-------------------------

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

ユニバーサル2ndファクター、PIV、Modhexなどの他の機能のコードは完全にクローズドソースである。

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

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

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

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

4.3. Yubikey NEOでのOTPパスワード保護
----------------------------

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

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

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

5. 社会運動
-------

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

6. 参照項目
-------

7. 脚注
-----

8. 外部リンク
--------

[1]
[2]