web-dev-qa-db-ja.com

独自のハッシュアルゴリズムを開発して、簡単なパスワードから強力なパスワードを作成するとどうなりますか?

私はこのアイデアを思いつきましたが、それが良いか悪いかわからないので、あなたが助けることができるかもしれません。私の目標は、メインアカウント(Gmail、Skypeなど)に非常に強力なパスワードを作成することです。すべてのアカウントに、20文字より長く、小文字と大文字の文字、数字、特殊文字を含む異なるパスワードを設定したい。それを達成するにはどうしますか?

そのようなパスワードを1つでも覚えておくことはかなり不可能です。そのため、このアイデアを思いつきました。簡単なパスワード(3文字または4文字でも)を強力なパスワードに変換する(シンプルで秘密の)ハッシュアルゴリズムを開発したらどうなるでしょうか。

そのシナリオでは、Gmailの「犬」、Yahooの「黒」などを覚えておけば十分です。ログインする必要がある場合は、コピーして貼り付けるよりも、簡単なパスワードを変換する手作りのスクリプトで処理するだけです。

この方法はいくつかの理由で素晴らしいと思います:

ハッシュアルゴが不可逆的で秘密である場合、強力なパスワードを(多くても)持つことで「簡単なパスワード」を理解する方法はありません(いずれにせよ、誰かがGmailのすべてのメインアカウントをハッキングできた場合、本当に不幸なはずです。フォーラム、インスタントメッセージングなど)

私の "最終パスワード"は何年もの間完全に保護されている間、私はすべての私のアカウントについて非常に簡単な単語を覚えておかなければならない

うまくできていれば、スクリプトを作成する代わりに、簡単なハッシュアルゴを記憶して紙に書いておくことができます(最終的に盗まれる可能性があります)。非常に優れたなだれ効果を必要としないため、アルゴリズムは簡単にできます(数万、おそらく数年で100または200のパスワードを作成することはありませんか?

クラッカーがハッシュアルゴリズムの数式を理解できたとしても、アルゴリズムに公開されているRainbowテーブルはありません。あなたのgmailアカウントが非常に貴重なので、だれでも作成し始めることができるとは私は非常に疑っています。この方法は、日常のパスワードのみを対象としています。NSAが関係するリスクの高い状況ではありません。また、公開アルゴリズムではないため、アルゴリズムはユーザーのパスワードにのみ関連しているため、この方法は適切です。MD5何千ものウェブサイトで使用されているので、人々はそれを解読するために時間/お金を浪費し始めました。私の個人的なアルゴは私のものなので、誰もそれを解読するためにお金を投資することに興味はありません

あなたの意見は何ですか?

PS。私の非常に悪い英語すみません:)

2
Ross Genee

独自の暗号をロールバックしないでください。

それは誤った安心感にあなたを落ち着かせ、あなたがそれを公開して他の人々がそれを使い始めた場合、有害になるかもしれません。ハッシュアルゴリズムの強みは、その設計の不透明性に起因するものではありません。それどころか、それはそれを見る千人の専門家の心から利益を得ます。

しかし、あなたの基本的な考えにはメリットがないわけではありません。ただし、ハッシュ化された単語をパスワードとして使用する場合は、knownである検証済みのハッシュアルゴリズムを元に戻すのが難しい場合もあります。

クラッカーがハッシュアルゴリズムの式を理解できたとしても、アルゴリズムに公開されているRainbowテーブルはありません

ちなみに、ソルトを適切に使用することで、この問題は公開アルゴリズムでは完全に無効になります。

10
executifs

あなたのハッシュアルゴリズムが不可逆的で秘密の場合

これは常に悪い設計習慣です。このアルゴリズムが攻撃者に知られると(そして知られると)、すぐにあなたは運命を破られます。したがって、すべての設計は、アルゴリズムが攻撃者に知られていると想定する必要があります。鍵はアルゴリズムではなく秘密にしておく必要があります。鍵は簡単に置き換えることができますが、アルゴリズムはできません。

この分野に精通している場合を除き、独自の「強力な」ハッシュを作成して公開しないでください。他の人々は、彼らが「安全」であると考えてあなたのアルゴリズムを使用してしまうかもしれません。

覚えやすいものが欲しいなら、短い詩を書いてください。これにより、安全に十分なビットが提供され、簡単に呼び出すことができます。

6

追加のエントロピーソースを使用せずに脆弱なパスワードを強化することはできません。ハッシュによってエントロピーが追加されることはないため、結果として得られるパスワードは、最初に入力したパスワードと同じくらい脆弱です。

また、「秘密」のハッシュアルゴリズムを使用することは、アルゴリズムを秘密にしておくことだけにセキュリティを置いているため、悪い判断です。つまり、誰かとそれについて話し合ったり、他の人にアルゴリズムへのアクセス権を与えることはできません。漏洩した場合は、すべての機密性がアルゴリズムの動作範囲内にあるため、完全な設定を変更する必要があります。これは、あいまいさによるセキュリティと呼ばれます。

6
martijnbrinkers

これは、パスワードマネージャーと実際の強力なパスワードを使用するのではなく、良い考えです。 「ハッシュ」アルゴリズムを頭の中で実行できる場合、それは単に安全ではなく、[〜#〜] will [〜#〜]はかなり単純な分析攻撃に対して脆弱です。複数の反復を伴うアプリケーションを必要とするほど複雑である場合、単純な分析攻撃に対して脆弱である場合とそうでない場合がありますが、はるかに提供されるパスワードマネージャーを使用するよりも難しくありません[〜#〜 ] far [〜#〜]優れたセキュリティ。

覚えておくべき重要なことは、派生したパスワードは、元のパスワードよりも意味のあるほど安全ではないということです。パスワードが単純に始まり、派生アルゴリズムが発見された場合、単純なパスワードに対してRainbowテーブルを作成することは簡単になり、それらはすぐに明らかにされます。

あなたがテストとレビューに投資するために数十万ドルを費やす暗号学者でない限り、既存のハッシュよりも安全なアルゴリズムを形成するつもりはありません。また、大きな弱点がないことを少しでも確信できるでしょう。

とにかく、保護しているのが特に高いセキュリティを必要としない個人アカウントである場合、誰かがシステムを理解しようとする可能性は(たとえそれが比較的簡単でも)、おそらくかなり長い間最小限です。あなたは犯罪者のハッカーだけを心配していて、高リスクのターゲットではないので、その意味で[〜#〜] if [〜#〜]あなたは実際には低価値のターゲットであり、使用していません価値のあるアカウントであれば、単純なパスワードを使用するよりもセキュリティが少し向上する可能性がありますが、具体的には、熱心な攻撃者に対してはほとんど効果がありません。

確立された標準を使用することは、十分に設計されており、数十億とは言わないまでも数百万ドルの検証が行われているため、単により優れた、より強力で安全な方法です。

3
AJ Henderson

私は実際にこれを実行して、本当にばかげた一連のパスワードの複雑さと文字の制限を回避しました。これは一般的にbadの考えです。それでも、自分の脳に損傷を与えたパスワード要件のために部分的にハッキングされたとしても、それらは正しく機能します。

0
Joshua