FIDO U2Fキーはどこに保管されていますか?
セキュリティキーの保存方法と使用方法について矛盾する情報を取得しています。公開鍵と秘密鍵はどこに保存されますか?秘密鍵がYubikey自体に保存されている場合、いくつ保持できますか?
認証対象のサービス(Gmail)に両方のキーが保存されている場合、署名に秘密キーを使用するために、暗号化を解除するためにyubikeyに秘密キーを送信しますか?
Yubikeyウェブサイト:
登録プロセス中に、キーペアはデバイス(セキュアエレメント)で生成されますが、キーペアはYubiKeysに保存されません。代わりに、キーペア(公開キーと暗号化された秘密キー)は、登録を開始した各証明書利用者/サービスによって保存されます。したがって、このアプローチでは、無制限の数のサービスをU2F認定のYubiKeyに関連付けることができます。
FIDOウェブサイト:
U2Fデバイスとプロトコルは、ユーザーのプライバシーとセキュリティを保証する必要があります。プロトコルの中核にあるU2Fデバイスには、オリジン固有の公開鍵と秘密鍵のペアを作成する機能(理想的には、安全な要素で具体化されている)があります。U2Fデバイスは、ユーザー登録ステップ中に、公開鍵とキーハンドルをオリジンオンラインサービスまたはWebサイトに提供します。その後、ユーザーが認証を実行すると、オリジンのオンラインサービスまたはWebサイトは、ブラウザーを介してキーハンドルをU2Fデバイスに送り返します。U2Fデバイスは、キーハンドルを使用してユーザーの秘密キーを識別し、署名を作成してオリジンに送り返し、U2Fデバイスの存在を確認します。したがって、キーハンドルは、U2Fデバイス上の特定のキーの識別子にすぎません。
https://fastmail.blog/2016/07/23/how-u2f-security-keys-work/
https://developers.yubico.com/U2F/
https://fidoalliance.org/specs/fido-u2f-v1.2-ps-20170411/fido-u2f-overview-v1.2-ps-20170411.html#site-specific-public-private-key-pairs
https://www.yubico.com/authentication-standards/fido-u2f/#toggle-id-4
回答
キーはデバイスに保存することも、暗号化してキーハンドルに返すこともできます。両方とも仕様で許可されています(そして言及されています)。
実装上の考慮事項から:
U2Fトークンは秘密鍵の素材を保存せず、代わりにラップされた秘密鍵を鍵ハンドルの一部としてエクスポートする場合があります。
また、内生のメッセージ・フォーマットの仕様:
キーハンドル[前のフィールドで指定された長さ]。これは、U2Fトークンが生成されたキーペアを識別できるようにするハンドルです。U2Fトークンは、生成された秘密鍵とそれが生成されたアプリケーションIDをラップし、それを鍵ハンドルとして出力する場合があります。
これは、U2Fデバイスの製造元に決定を任せます。
Yubicoは、暗号化された秘密鍵を鍵ハンドルとして返すことを選択し、無制限の数の資格情報を許可しました。
デバイスの製造元が秘密鍵をデバイス自体に保存することを選択した場合、使用可能なキーの数は、使用可能なストレージの量によって制限されます。特定のデバイスの仕様を確認する必要があります。