このたび、Windows 版 Chrome 145 で Device Bound Session Credentials(DBSC)が利用可能になりました。これにより、ユーザーを Cookie の盗難から保護する新しい方法が提供されます。
セッション Cookie は、長年にわたり攻撃者の標的となってきました。Cookie を盗むと、攻撃者はユーザーになりすましてアカウントにアクセスできるようになります。DBSC は、ユーザー セッションをデバイスにバインドすることで、ユーザー セッションのセキュリティを強化します。デバイスで公開鍵と秘密鍵のペアを作成することで、認証セッションをデバイスに暗号的にバインドします。Windows 版 Chrome では、トラステッド プラットフォーム モジュール(TPM)を使用して、これらの鍵をハードウェアで保護します。
DBSC を使用すると、ブラウザが秘密鍵を保持していることの証明をリクエストすることで、セッション全体でユーザーが同じデバイスを使用していることを確認できます。攻撃者は通常、ユーザーのデバイスの秘密鍵にアクセスできないため、盗んだ Cookie を使用することが非常に困難になります。
DBSC の仕組み
DBSC は、簡単な統合を目的として設計されています。ユーザーがログインしたときに、Secure-Session-Registration HTTP レスポンス ヘッダーを配信して DBSC を開始できます。このヘッダーは、セッションの公開鍵を使用してサイトの登録エンドポイントを呼び出すようブラウザに指示します。登録エンドポイントは、この公開鍵を保存し、セッション構成で応答してバインドされたセッションを確立する必要があります。
セッションがバインドされると、バインドされた Cookie の有効期限が切れるときに、Chrome はユーザーが指定した更新エンドポイントに接続します。このエンドポイントでは、ブラウザにセッションに関連付けられた秘密鍵をまだ保持していることを証明するよう要求できます。チャレンジが成功すると、新しい Cookie を発行して他のリクエストを認証できます。たとえば、攻撃者が TPM にアクセスできない別のデバイスで盗んだ Cookie を使用しようとしている場合など、失敗した場合はリクエストを拒否できます。
このプロトコルでは、これらの 2 つのエンドポイント以外で認証フローを変更する必要はありません。
DBSC の実装について詳しくは、デバイス バウンド セッション認証情報のデベロッパー ガイドをご覧ください。