それらはディスクで暗号化されていますか?どうやって?たとえば、誰かがLive CDから起動してハードディスクをマウントした場合、それらは安全ですか?
暗号化キーはどのように生成されますか? WindowsとLinuxでは違いますか?
Chromeでパスワードを暗号化するために使用されるキーについて特に興味があるようです。
答えは:
すべてのパスワードは、異なるランダムキーで暗号化されます。
暗号化されたパスワードはSQLiteデータベースファイルに保存されます。
%LocalAppData%\Google\Chrome\User Data\Default\Login Data
SQLite Database Browser または SQLite Maestro のようなものを使用して表示できます。これが私のLogin Data
ファイルのスニペットです。
Origin_url username_value password_value
======================================== ============== ========================
http://thepiratebay.org/register [email protected] 01000000D08C9DDF0115D1118C7A00C04FC297EB01000000BB0E1F4548ADC84A82EC0873552BCB460000000002000000000003660000C0000000100000006811169334524F33D880DE0C842B9BBB0000000004800000A00000001000000043C8E23979F5CC5499D73610B969A92A08000000EE07953DEC9F7CA01400000098B5F0F01E35B0DC6BBAFC53A9B1254AC999F4FA
パスワードは暗号化されたデータの塊であることがわかります。新しいパスワードを暗号化するおおよそのアルゴリズムは次のとおりです。
そしてChromeはそのblobをSQLiteデータベースに保存します。
しかし、あなたの質問に答えるために:暗号化キーはどこから来たのですか?
各パスワードは、ランダムに生成された異なるキーで暗号化されます
もちろん、技術的な詳細は省きました。 Chromeはパスワード自体を暗号化しません。Chromeは、何かを暗号化するために使用されるマスターキーを持っていません。ChromeはWindowsが暗号化を行います。
Windows関数 CryptProtectData
があり、任意の任意のデータを暗号化するために使用されます。呼び出しの詳細はそれほど重要ではありません。しかし、プログラミング言語としてある程度解読できる疑似言語を発明した場合、Chromeは次のように呼び出します。
CryptProtectData(
{ cbData: 28, pbData: "correct battery horse staple" },
"The password for superuser.com and all the glee therein",
null, //optional entropy
null, //reserved
null, //Prompt options
0, //flags
{ cbData: pbData: }); //where the encrypted data will go
したがって、パスワード:
correct battery horse staple
01000000D08C9DDF0115D1118C7A00C04FC297EB01000000BB0E1F4548ADC84A82EC0873552BCB460000000002000000000003660000C0000000100000006811169334524F33D880DE0C842B9BBB0000000004800000A00000001000000043C8E23979F5CC5499D73610B969A92A08000000EE07953DEC9F7CA01400000098B5F0F01E35B0DC6BBAFC53A9B1254AC999F4FA
パスワードを入力する必要がないことに気づくでしょう。 Windowsがそのすべてを処理するためです。最終的には:
したがって、誰かがあなたのパスワードを知る唯一の方法は、彼らがあなたのパスワードを知っているかどうかです。
パスワード 暗号化されています であり、SQLiteデータベースに保存されています。
ここで重要なのは
CryptProtectData
です。これは、データを暗号化するためのWindows API関数です。この関数で暗号化されたデータはかなりしっかりしています。それは、最初にそれを暗号化した同じマシン上で同じユーザーによってのみ復号化できます。
それらは「暗号化」されていますが、それは可逆暗号化です。 Chromeは、保存されたサイトに未加工のパスワードを送信する必要があるため、Chromeはそれを復号化して使用できるため、他の人も使用できます。パスワードの保存は100%安全ではありません。
Google Chromeパスワードは暗号化され、SQLite DBに保存されますが、ChromePassなどの特別なパスワード回復アプリケーション( http://www.nirsoft.net/utils /chromepass.html )またはSecurePassword Kit( http://www.getsecurepassword.com/ )
Macでは、WindowsのCryptProtectData関数に相当するのが、OS Xのキーチェーンの「Chrome Safe Storage」のパスワードにアクセスすることです。