web-dev-qa-db-ja.com

いつパスワード暗号を使用し、いつ通常のパスワードを使用する必要がありますか?

選択したWordに独自の「暗号化」スキームを追加してパスワードを保護し、パスワードを作成する方法について this 記事の説明に遭遇しました。

たとえば、私の暗号が4つのゼロを追加することだった場合、アルファベットのすべての単語を逆の文字に切り替えて、お気に入りの番号を添付します。

  • Google = 0000tlltov7
  • スタック= 0000hzxp7
  • 等...

ここでの考え方は、パスワードではなく単に暗号を覚えることです。平文はウェブサイト/会社の名前(Apple、Microsoft、Google)から来ています...しかし、これはパスワードを作成するよりも良い方法ですか?

確かに、すべてのパスワードは一意であり、総当たりすることは非常に困難ですが、スキームがすべてを公開します。攻撃者が私のスキームを発見した場合、彼らは私のパスワードをすべて知っていたでしょう。いつパスワード暗号を使用するのが良いですか?通常のパスワードを使用するほうがよいのはいつですか?

2
Gavin Youker

これは以前にここで尋ねられたことがないようですが、良い複製を見つけることができませんでした。

パスワードマネージャーは、ランダムに生成された長いパスワードと組み合わせると、「すべての卵を1つのバスケットに入れて、そのバスケットを本当に保護する本当によく」パスワードの長さとランダム性により、ブルートフォース攻撃や辞書攻撃から保護されます。また、ランダム性により、1つのサイトがパスワードを安全に保存しないパスワード共有攻撃も防止されます。もちろん、主要な攻撃ベクトルは、パスワードマネージャーデータベースにアクセスする攻撃者です。この時点で、攻撃者はあなたのeveryアカウントにアクセスします。

ランダムに生成されたこれらの長いパスワードをすべて覚えている場合は、違反するデータベースはないので、より良い方法です。しかし、ほとんどの人はこれを行うことができません。

別の方法として、アルゴリズムを使用して、サイトのオンデマンドでパスワードを再現可能に生成することができます(多くのオプションが 実際に記憶できる適切なパスワードを作成する方法は何ですか? ) 。これらには、侵害可能なデータベースがないという利点があります。したがって、問題は、パスワードのデータベースを回避することの利点が、ランダムに生成されたパスワードから再現可能なスキームに移行することの欠点よりも重要かどうかです。

スキームが平文を見たときに明白である場合(例:siteName + accountName)、次に、安全でないサイトで1回の違反があった場合、偶然にパスワードを見たすべての攻撃者に対してアカウントのセット全体が開かれます。これは、セキュリティの観点から明らかにかなりひどいです。ほとんどのスキームはそれは明らかではありませんが、攻撃者がリバースエンジニアリングできないように賭けています。議論の余地はなく、特定のスキームにも依存します。攻撃者が複数のサイトからプレーンテキストのパスワードにアクセスできるようになると、リバースエンジニアリングが成功する可能性が大幅に高まることは注目に値します。

再現可能なパスワードスキームのもう1つの問題は、サイトのパスワードを変更する簡単な方法が提供されないことです。再現可能であり、新しいパスワードを生成するには、追加の情報を統合する必要があります(ある種の「ラウンド ")、それを保存または記憶する必要があります。

パスワードマネージャーの使用と再現可能なパスワードスキームは、どちらも理想的なパスワード記憶オプションからのセキュリティダウングレードです。これらはどちらも、多くのアカウントで同じ安全でないパスワードを使用するというほとんどの人が行うことよりもはるかに優れています。どちらが「より良い」かは、パスワードマネージャーの詳細とそれを比較するスキーム、および心配している攻撃に大きく依存します。

短い答え:悪いアドバイス。

そんなことしないで。例えばから回復された単一のパスワードパスワードのリストを公開したパスワードデータベースハックは、すぐにセキュリティを破ります。このようなものを推薦することは、完全に失望します。

それがなくても、攻撃者はおそらく両方を実行します。一般的なパスワードに基づく単純な辞書攻撃と、ユーザー名、サイト名、ユーザーの誕生日などの変更に基づく少し高度な辞書攻撃です。

さまざまなWebサイトごとに強力なパスワードを作成するか、ユニバーサル暗号を使用するほうがよいでしょう。

明らかに、はい。ランダムなパスワードは暗号化されても安全ではありません。ランダムな文字のソースをパスワードジェネレータとして使用してください。 Linuxでは、dd if=/dev/urandom bs=1 count=256|md5sumは素敵なパスワードジェネレータです(ランダムに 正確に /dev/randomと同じです)。

1
Marcus Müller