私たちは、パスワードに対する脅威と考えられる対抗手段を分析することにより、ソリューションの検索を開始します。
脅威#1はサイト自体であり、登録時にパスワードを送信する必要があります。 これらのサイトの管理者と技術サポートは、暗号化されていないパスワードを見ることができます。つまり、アカウントを持っている他のサイトでそれを使用することもできます。
脅威#2は、伝送チャネルでパスワードを傍受する機能です。 HTTPSを使用するサイトはほとんどありませんが、ほとんどの場合、フォームからすべてのデータをクリアテキストで送信するだけです。 つまり、コーヒーショップのどこかのフォーラムにログインすることにした場合、ラップトップを使用してそこに座ってネットワークを聞いている人は誰でもパスワードを見ることができ、このパスワードを別の場所に適用しようとします。
これらの脅威を無効にするには、異なるサイトのパスワードが異なることを確認する必要があります。 問題は、それらをすべて記憶する方法、またはそれらをどこに保存するかです。
サイトごとに異なるパスワードを生成および記憶する方法の1つは、「 頭にパスワードを保存する簡単な方法 」という記事で説明されています。 この方法では、1つのパスワードマスク(たとえばrtYG!)を覚えておく必要があり、サイト名からバリエーションを取得する方法を考え出します。
例:
サイト | パスワードオプション1 | パスワードオプション2 |
---|---|---|
Flickr | brtYG!3写真 | brtYG!3Fr |
brtYG!3ジョブ | brtYG!3Ln | |
ズベルバンク | brtYG!3money | brtYG!3Sk |
この方法の問題は、この方法の全体的な強度がパスワードの変動部分の強度によって決まることです。 Flickrサイトの管理者は、「photo」または「Fr」が自分のサイトのパスワードのバリエーションであると推測でき、他のサイトのバリエーションをピックアップすることは難しくありません。 さらに、このパスワード生成方法では、パスワードの定期的な変更が必要なサイトで問題が発生します。
したがって、すべてのパスワードが完全にランダムであり、互いに無関係であることが非常に望ましいです。 しかし、すぐに問題が発生します:それらをどこに保存するのですか?
パスワードストレージサービスがどのように機能するのかわからないので、私はパスワードストレージサービスを信頼しないとすぐに言います。 また、有料サービスの場合、未払いのためにすべてのパスワードを失う危険性がまだあります。 したがって、次の要件を満たす独自のソリューションを開発することが決定されました。
- 解決策は無料であり、可能な場合は永遠である必要があります
- このソリューションでは、暗号化されていない形式でのネットワークを介したパスワードの送信を除外する必要があります
- 誰とでもあいまいなトラフィックの交換はありません
- 追加のソフトウェアをインストールするのではなく、ブラウザのみをインストールする必要があります
- ソリューションはクロスプラットフォームでなければなりません
私たちはそのような解決策を見つけることができました;それは以下で構成されています:
1.サイトのパスワードの名前をトークンに変更します。 トークンはランダムに生成され、通常のパスワードよりもはるかに長くなる可能性があり、モニター画面で見ると記憶できません。
2. 1つの複雑なマスターパスワードを考案して記憶します。これを使用して、すべてのトークンを暗号化および復号化します。
3.すべてのトークンは、オンラインストレージ(メール、Googleドキュメントなど)、またはローカルの次の形式のテキストファイルに保存されます。
サイト | ユーザー | 暗号化されたトークン |
---|---|---|
youtube.com | myytusername | U2FsdGVkX1 / cCpnVmQ1sz13pqQXJYtQ3bTjcjw / HYak = |
livejournal.com | myljusername | U2FsdGVkX19HWMhtmjfdLagxpBfUcnJmFkezYgdnBrs = |
4.暗号化と復号化は、GibberishAES JavaScriptライブラリを使用するAES-256 + Base64アルゴリズムを使用して実行されます。 すべての計算はブラウザで実行され、データはどこにも送信されません。
この方法に関するいくつかの注意:
-スキーム全体では、オンラインストレージのパスワードとトークンのマスターパスワードの2つのパスワードを保存する必要があります。 これらのパスワードは異なっている必要があります。
-オンラインストレージを選択する場合、ストレージにアクセスしないとサイトにアクセスできないことに注意する必要があります。そのため、ストレージは信頼性が高く、稼働時間が長いことが望ましいです。
-暗号化されたトークンを使用してファイルのコピーを作成する必要があります。ファイルが失われると、パスワードを回復できないためです。
- このページなどのブラウザで暗号化および復号化できます 。 妄想であるため、私は自分のために独自のミニマルなAES-256オンラインページを作成しました。 ローカルで保存および使用できる3つのファイルで構成されます。
-必要に応じて、Unixコマンドラインのページからトークンを暗号化または復号化することもできます。
openssl enc -a -aes-256-cbc(STDIN暗号化)
openssl enc -d -a -aes-256-cbc(STDIN復号化)
-ランダムトークンは、オンライン(たとえば、 こちら )、オフライン( こちらからindex.htmlおよび2つのJavaScriptファイルをダウンロード)、またはUnixコマンドラインから生成できます。
openssl rand -base64 12
このパスワード管理方法が読者に役立つことを願っています。