ホームページ >ウェブフロントエンド >CSSチュートリアル >PassKeys:一体何ですか?
PassKeysは、革新的な認証方法として急速に牽引力を獲得しています。 W3C TPAC 2022で目立つように、Safari 16、MacOS、iOSに統合されており、1Passwordのようなパスワードマネージャーの標準になる態勢が整っています。 既にAndroidでサポートされている将来のリリースは、PassKey機能をChrome OSとWindowsにもたらします。
フロントエンドコミュニティではしばしば見落とされていますが、特に認証とフォーム処理に関するパスキーのユーザーエクスペリエンスへの影響は否定できません。 この記事では、PassKeysとWebauthn APIを調べて、この新しいテクノロジーの包括的な理解を提供します。目次
公開キーは公然とアクセスできますが、秘密鍵は生成デバイスにしっかりと保存されたままです。 Webauthnの重要な制限は、デバイスの依存関係でした。デバイスを失うことは、アクセスを失うことを意味しました。 PassKeysは、クラウドの同期を介してこれに対処し、複数のデバイスにアクセスできるようにします。 ただし、単一デバイスの資格情報も存在することに注意することが重要です。
現在、iOS、MacOS、およびAndroidは、ブラウザの互換性が依然として要因のままですが、クラウドシンクスパスキーを包括的にサポートしています。 Google Password ManagerとApple Icloudキーチェーンは、同期を促進しますPassKeys:パスワードの交換
を使用しています。 データは、署名アルゴリズムを介して秘密鍵を使用して処理され、公開キーを使用して検証されます。 誰でもキーペアを生成できますが、対応する公開キーで検証可能な署名を作成できます。 この署名はパスワードを置き換えます。 サーバーは公開キーを保存し、認証にはランダムな課題に署名することにより、秘密鍵の所有を確認することが含まれます。 このアプローチは、パスワード違反に関連するリスクを排除します。 データベースが侵害されている場合、パブリックキーのみが公開され、攻撃者には役に立たなくなります。 ブラウザが資格情報を覚えているため、ログインプロセスを簡素化するにつれて、忘れられたパスワードは過去のものになります。 生体認証またはピンはセキュリティを強化する可能性があります 暗号化は説明されています
公開キーの暗号化は、プライベートキーと公開キーのペアを利用しています。 暗号化は、受信者の公開キーを使用して、受信者の秘密鍵のみが復号化できるようにします。これにより、
機密性があります署名と検証を通じて保証されます。 送信者の秘密鍵は、送信者の公開鍵でのみ検証可能なメッセージのハッシュに署名します。 PassKeysへのアクセス アクセスには、Authenticator
(ハードウェアまたはソフトウェア)によって促進されることが多いキー生成とストレージが必要です。 ソフトウェア認証者はTPMまたはセキュアエンクレーブを使用する場合がありますが、ハードウェア認証器にはYubikeysなどのデバイスが含まれます。PassKeys(Multi-Device)は、ストレージおよびログインプロセスのWebAuthnキー(単一デバイス)とは異なります。 WebAuthnにはユーザーハンドルとAllowCredentialsリストが必要です。PassKeysは、サーバーのドメイン名を利用して関連するキーを識別し、ログインプロセスを合理化します。 暗号化すると、それらは本質的に同一です。
WebauthnとPassKeyの両方の生成には、サーバーチャレンジを受信し、navigator.credentials.create
を使用してキーペアを生成することが含まれます。公開キーはサーバーに送信されます。 ログインはnavigator.credentials.get
を使用して新しいチャレンジに署名し、サーバーによって検証されます。
navigator.credentials.create
応答には、公開キーと
// ... (code snippet for PublicKeyCredentialCreationOptions) ...、
、およびclientDataJSON
を含む)が含まれます。 サーバーはこのデータを検証し、公開キー、ID、およびオプションでtype
およびCOSEアルゴリズムを保存します。
challenge
アサーションorigin
attestationObject
応答には、署名とnavigator.credentials.get
(原点のハッシュと
// ... (code snippet for PublicKeyCredentialRequestOptions) ...、および
を検証します。
authenticatorData
潜在的な欠点signCount
clientDataJSON
現在の制限には、限られたオペレーティングシステムのサポート(特にWindowsとLinux)とGoogleとAppleのPassKeyプラットフォーム間の相互運用性の欠如が含まれます。
signCount
PassKeysの未来
デモGithubリポジトリ
以上がPassKeys:一体何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。