最近、パスワードを覚えられないほど多くのアカウントを持っているという問題に気付きました。パスワードセーフを使用したくありません。別のコンピューターでアクセスできないためです。この金庫を紛失すると、すべてのログインが失われ、攻撃者が金庫を危険にさらすと、ログインデータが大量に取得されます。代わりに私は方法を望みました。方法で安全なパスワードを生成するには、常に再現でき、1つのパスワード/フレーズ/シークレットのみを覚えることができます。そのような方法を見つけるために、私は この質問 に尋ねました。
一方、友人と私はそのような生成方法を思いつきました。今、私はそれが安全でない場合、どのような弱点が含まれていて、どのようにそれを改善できるかを知りたいです。
私たちが思いついた方法には、1つの中心的な秘密が必要です。これは、他の誰にも知られていないテキストである必要がありますが、自分で覚えやすいです。詩のほうが覚えやすいかもしれませんが、個人的なものを作成して、誰もテキストに結論を出せないようにする必要があります。だから、誰もがこのテキストを知っているので、 Jabberwocky をとらないでください。 (ただし、例としてJabberwockyを選択します)。
次に、ログインが必要なプラットフォームの名前を取得します。それはHOMEPCやSTACKEXCHANGEのようなものです。アカウントの最初の文字を取り、それを秘密に含む最初の単語を検索します。 Jabberwockyの場合、「h」(HOMEPC)の最初の単語は「the」であり、「s」(STACKEXCHANGE)の最初の単語は「Twas」です。次に、次の文字を含む次のWordを取得します。このようにして、特定のパスワードを生成します。例は次のとおりです。
HOMEPC -> 'the toves gimble the vorpal Jabberwock'
STACKEXCHANGE -> 'Twas the and Jabberwock took time manxome Jabberwock with flame And through The'
秘密が十分に長くない場合は、最初からやり直してください。 platform-nameが短すぎる場合は、2〜3回かかります。同じように感じたとしても、パスワードは十分ではありません。
EBAYEBAY -> 'the gimble wabe mimsy were borogoves And my'
シークレットにはすべての文字を少なくとも1回含める必要があります(Jabberwockyはqとzをミスしています)。
この方法の弱点は何ですか?これによって生成されたパスワードを攻撃するにはどうすればよいでしょうか、さらに悪いことに、傍受された場合に他のパスワードを結論付けますか?
これは、パスワードの生成方法としては不十分です。
非常に長い秘密を覚える必要があります。これは、特に多くのエントロピーを持たせたい場合、ほとんどのユーザーにとって非常に困難です。
最も弱いリンクは何ですか?それはいつもと同じです:人間。最も弱いリンクは、詩(中心的な秘密)を選んでいる人間です。実際には、ユーザーの大部分が、比較的エントロピーの低い詩を選択するのではないかと思います。つまり、これはかなり小さな可能性の1つです。世界にはせいぜい2 ^ 20の詩があり、かなりの数のユーザーがそれらの2 ^ 20の詩の1つを使用する可能性があると思います。もしそうなら、これは弱い方法です。パスワードのいずれかを知っているWebサイトは、詩を復元して、他のすべてのサイトですべてのパスワードを推測できます。
また、あなたのことを何も知らず、あるサイトであなたのアカウントに侵入したい攻撃者は、人気の高い順に詩を試してみて、結果として得られる各パスワードを試すことができます。これが憂鬱なほど高い成功率で成功するだろうと考える正当な理由があります。たとえば、パスワードの調査を見てください(以下の参考文献を参照)。ユーザーのパスワードのかなりの部分を解読するには、一般的なパスワードの小さな辞書で十分であることがわかります。このスキームでは問題はさらに悪化すると思います。 6から8文字のパスワードを覚えようとするのは十分に悪いことです。詩全体を暗記しようとするのは恐ろしいことです。
これは、Googleで簡単に打ち負かされています。 HOMEPC、STACKEXCHANGE、およびEBAYのサイトパスワードの3つの例をリストしました。それらのサイトパスワードのいずれかを選択し、それをカットアンドペーストしてGoogleに貼り付けます。いずれの場合も、最初の応答はJabberwockyの詩です。したがって、いずれの場合も、単一のサイトパスワードを知っている人は、他のすべてのサイトパスワードを知ることができます。それは良くないね。これは多くのユーザーにとって一般的な問題であると予想します。単に例に特定するのではなく、非常に多くのユーザーに対して成功する問題です。
いつものように、この領域での難しい問題は使いやすさです。このスキームは、一般的なユーザーがうまく機能するように設計する必要があります。このスキームはその基準では不十分にランク付けされていると思います。
この問題に関しては、膨大な量の先行研究があります。これは難しい問題であることがわかりましたが、いくつかの非常に優れた解決策があります。 PwdHash(www.pwdhash.com)とPasspet(passpet.org)をご覧になることをお勧めします。それらのいずれかが合理的な解決策です。パスペットはおそらくより安全ですが、使用するのは難しいです。特にこの問題に関する以前の作業にまだ気付いていない場合は特に、自分で自作のソリューションを発明することはお勧めしません。
または、多くのブラウザーパスワードマネージャーは、(クラウドのストレージを使用して)複数のマシンまたは複数のブラウザー間で同期する機能を提供します。それらの1つを試してみませんか? (別のマシンで使用できないというあなたの声明は理解できません。良い解決策はすべて、複数のマシンからのパスワードを使用する方法を提供します。)
私はUser502に同意します。一般的なWebサイトのパスワードは問題ないかもしれません。しかしながら...
そのWebサイトがパスワードの有効期限と再利用なしを要求する場合、次のパスワードを選択するオプションはありません。対処できるものが欲しいです。
これは http://passwordmaker.org/ を複製する非常に難しい方法のように思えます。すべてのプラットフォームで利用でき(モバイルやWebベースを含み、私のように偏執狂の場合はサーバーにロードできます)、さまざまなバリエーションを使用するのが難しくなりすぎない限り、どのバリエーションでも簡単に使用できます。ルール。リモートPCで何度もJavaScriptジェネレーターを使用しました。デフォルトの設定を受け入れないサイトがある場合は、覚えておく必要があります。ユーザー名または修飾子を入力して、パスワードのローテーションを処理することもできます。
一方、あなたの方法は、サイトが短い最大パスワード長のみを受け入れるとすぐに失敗します。
パスワードの過負荷に苦しんでいるように思えます。
システムがどのようにセットアップされているか、またはシステムが何であるかは正確にはわかりませんが、パスワードにまったく基づいていない認証方法を常に検討することができます。
この時代のパスワードは、ブルートフォースに対して常に脆弱であるように思われ、ブルートフォースツールとレインボーテーブル(およびハッシュアルゴリズム内の衝突-つまりmd5とsha1)が利用可能であることを考えると、GPUのパワーを活用する機能は言うまでもありませんクラウドインフラストラクチャ-検討する必要があるかもしれません。
バイオメトリクスなど、本質的に「ブルートフォースできない」(単語の意味では)と見なされる他のコンポーネントに依存する他の認証方法を検討することもできます。
2要素認証も思い浮かびます。つまり、知っているもの(パスワード、ピンなど)と持っているもの(rsaデバイスなど)です。
ワンタイムパスワードも興味深いかもしれません。
この方法は暗号的に強力ではありません[1]が、Gawkerのようなデータベースをつかむカジュアルな攻撃を打ち負かすには十分に思えます。
FWIW、Webベースのパスワード管理オプションの調査 serverfault があります。
[1]あなたは英語でフレーズを選択しているので、エントロピーはおよそ 1文字につき1ビット であり、1つまたは2つからパスワードを明確に回復した後に誰かがパスワードを回復した場合、メソッドはかなり簡単に推測できます。認証に使用したサービス。
このスキームは、選択した中心的な秘密に大きく依存します。あいまいな詩のような日常のテキストを使用すると、文字ごとのエントロピーがほとんどない長いパスワードが生成されます。サイト名の文字の分布は歪んでおり、散文の単語の分布は非常に歪んでおり、自己相関しています。
適切な秘密があればそれはおそらく問題ないでしょう。そして練習すれば、文字による単語検索をかなり速く行うことができます。
Apgを使用して、(各Wordに相当なエントロピーを持つ)良い秘密を生成できます。パスワード全体でいくつかの単語を使用するので、それぞれの単語は短くすることができます。 3文字。また、デフォルトではapgは「発音可能な」パスワードを生成するため、ランダムな3文字の文字列よりもエントロピーがかなり少ないことに注意してください。
$ apg -m 3 -x 3
Kip
Ab7
Jiz
jun
ted
yuc
「発音可能」オプションをオフにすると、かなり難しくなります。
apg -m 3 -x 3 -a 1
KIX
%(F
^hg
_Jy
!fb
QT3
もちろん、これは詩より覚えるのが難しいです。基本的には、サイト名の各文字の前後に2つ(またはそれ以上)のランダムな文字を追加することになります。
これらのスキームは両方とも、私がたまたま見つけた別のスキームと似ています。 一枚の紙の上でパスワードを安全に保つ
パスフレーズ生成アルゴリズムは、あいまいなだけで安全です。攻撃者が1つまたは2つのパスフレーズを取得すると、パスフレーズ内の可能な単語のかなり良いサブセットが取得され、人間の言語はコンテキストによって部分的に回復できるため、パスフレーズは見かけほどのエントロピーを取得しません
オフラインパスワードマネージャーの欠点を回避する方法をいくつか提案します。たとえば、特殊文字や数字などを使用した強力な無関係のパスフレーズを3/4だけ覚えておくことができます。1つは安全のため、もう1つは電子メールアカウントと失うことのできない批評サービス用で、2要素も有効にしますそれらのサービスで可能な限り認証。次に、金庫をそれらの2要素アカウントの1つ(Googleドライブなど)にアップロードできます。また、私はあなたが知っているものだけを金庫のパスワードに追加または追加することをお勧めします。そのため、攻撃者がそれにアクセスした場合、彼は秘密なしにパスワードを使用できません。
攻撃者が安全な原因にアクセスできる場合でも、使用している特定のコンピューターまたは同様の状況からそれを削除するのを忘れた場合でも、秘密が必要です。そして、彼がそれを取得した場合でも、重要なアカウントにアクセスして他のアカウントを回復することができます