この質問は、Googleアカウントによって実装される2要素認証のタイプに関係しています。
これへの応答 question は、安全なCookieを介した秘密鍵の安全な転送について説明しています。
しかし、攻撃者があなたのマシンでリモートコードを実行できるとしたらどうでしょうか?彼らがあなたのマシンからクッキーをコピーすることができるなら、これはまだ大きな穴を残します。彼らが自分にそれを送るならば、彼らは後日あなたのアカウントにアクセスできなかったでしょうか?
ユーザーに「このコンピューターを30日間記憶する」という利便性を維持しながら、このシナリオから保護するログインシステムを実装することは可能ですか?
はい、可能です。
トークンが、アカウントに対して保存された暗号で保護されたランダムなシーケンスを作成することによってサーバー生成された場合、このトークンは更新され、特定の間隔で再発行され、古いトークンは無効になります。
トークンはアクティブに使用された場合にのみ更新されるため、クライアントコンピューターがオフのときに古いトークンが無効になることはありません。このアプローチにより、コピーされたCookieは再利用できる時間が制限され、攻撃の危険性が制限されます。攻撃者が時間内にCookieを使用した場合、元のセッションは期限切れになり、実際のユーザーはログアウトされます(間隔の設定方法によって異なります)。アカウントが他の場所で使用されていることを示すメッセージが表示され、ユーザーに攻撃を警告することができます。
ただし、攻撃者が永続的なアクセス権を持ち、新しい識別子を取得できる場合、攻撃者はすでに勝利しています。上記は、トークンの1回限りの盗難に対してのみ保護されます。たとえば、ユーザーが画面のロックを解除したままで、攻撃者が物理的にアクセスでき、Cookieの値を盗むのに十分な時間しかなかった場合や、ブラウザでのコード実行である反射XSS攻撃によって値が盗まれた場合、攻撃は不可能です。簡単に繰り返す。
Rootアクセス権を持つ攻撃者は、通常のユーザーのCookieを取得できる場合とできない場合があります。 Chromeディスクに保存するときにCookieを暗号化し、キーがパスワードから派生するため、現在のユーザーだけがそれらを解読できるようにします。したがって、Cookie内のトークンへの攻撃はより困難になります。
ユーザーに「このコンピューターを30日間記憶する」という利便性を維持しながら、このシナリオから保護するログインシステムを実装することは可能ですか?
率直に言えば、それは不可能です。これは、認証システムが実行する、巨大で複雑な、単純に実行不可能なタスクになります。
あなたができることはすべて、ソフトウェア、オペレーティングシステム、およびネットワーク設定が被る可能性のある脆弱性に注意し、最終的な脆弱性から自分を保護し、さまざまなレベルの脅威を軽減する方法を考えることです レイヤードセキュリティ メカニズム: