多くの場合、暗号化ソフトウェアはパスワードベースです。たとえ攻撃者があなたのコンピュータを入手したとしても、パスワードを知らなければデータを入手することはできず、ブルートフォーシングは実行不可能です。
Webサイトはパスワードを使用してユーザーを認証します。特に、ユーザーのパスワードのハッシュを保存します。攻撃者がサーバーにアクセスした場合、パスワードを入手することは困難ですが、実行可能です。それがハッシュが秘密にされている理由です。
どうしてこれなの?暗号化がハッシュよりも壊れにくい理由はありますか?
簡単な答えは、それはnotより弱いということです。単にパスワードベースの暗号化は、同等に設計されたパスワードベースの認証システムと同じように(安全ではない)安全です。
多くの場合、暗号化ソフトウェアはパスワードベースです。たとえ攻撃者があなたのコンピュータを入手したとしても、パスワードを知らなければデータを入手することはできず、ブルートフォーシングは実行不可能です。
力ずくの強制はなぜ実行不可能なのですか?これは主にシステムの設計ともちろんパスワードの強度に依存します。 「パスワード」で暗号化された暗号化平文は「ブルートフォース」に簡単です。さて、とにかくブルートフォースについて尋ねるときに「辞書攻撃」を含めると。
鍵を計算したら、暗号文が壊れていると想定する必要があります。ほとんどすべての平文には、推測が正しいことを検証するのに十分な構造が含まれています。通常、プロトコルは、パスワードを入力するときにユーザーが正しいことを要求します。
Webサイトはパスワードを使用してユーザーを認証します。特に、ユーザーのパスワードのハッシュを保存します。攻撃者がサーバーにアクセスした場合、パスワードを入手することは困難ですが、実行可能です。それがハッシュが秘密にされている理由です。
ハッシュは一般に秘密にされていません。パスワードやキーとしては扱われません。オフラインでの推測が可能なため、それらを漏らしたくない。しかし、それらを完全に秘密にしておくことができれば、パスワード自体を保存し、直接のパスワード比較を実行することもできます(もちろん、サイドチャネル攻撃から保護されています)。
別のセキュリティ層として直接利用可能であると想定されていないとしましょう。
どうしてこれなの?暗号化がハッシュよりも解読が難しい理由はありますか?
そうではありません。暗号化の場合、通常、暗号文は攻撃者が直接利用できます。暗号文の攻撃を開始するために特定のサーバーにアクセスする必要はありません。これは、パスワードハッシュの場合です。
言い換えれば、強化され正しく構成/プログラムされたサーバーが提供できる保護が不足しています。
ここで実際に2つの質問があると思います。
パスワードを使用してデータを暗号化できるのに、認証にはそれほど強力ではないのはなぜですか?
同じ暗号化キーを使用して1人のユーザーのすべてのデータを暗号化する場合、または何らかの安全なストレージがあり、使用したのと同じパスワードでこの1人のユーザーを認証するための安全な機能がある場合、セキュリティに違いはありません暗号化。ただし、これは通常、実際の設定ではありません。つまり、暗号化と認証はさまざまなシナリオで使用されます。
暗号化がハッシュよりも解読が難しい理由はありますか?
暗号化がハッシュやその逆よりも強力であるということではありません。ただし、メッセージの暗号化とパスワードの検証には異なる要件があります。実際、単純にパスワードストレージに暗号化を使用すると安全性が低下し、データ暗号化にハッシュを使用すると元のデータを復元できなくなります。
ハッシュと暗号化の違いについて説明する前に、いわゆる暗号化ハッシュ関数のいくつかのルールを定めることが重要です。ハッシュ関数[〜#〜] h [〜#〜]を暗号化ハッシュ関数にするには、2つの要件があります。
Webサイトbob.comがあり、アカウントを設定してログインしたいユーザーAliceがいるシナリオを想像してみましょう。フローは次のようになります。
今、ログインフロー:
アリスのパスワードの情報は失われませんが、直接使用できる形式ではないことに注意してください。ハッシュ化された情報をverifierとして使用できますが、パスワードを複製することはできません[〜#〜] p [〜#〜] Alice以外の気まぐれで入力します。具体的には、パスワードを推測して推測した場合[〜#〜] p [〜#〜]は、指定されたハッシュhとsalt [〜# 〜] s [〜#〜]の場合、暗号化ハッシュ関数で保証されているように、ランダムな推測よりも優れたアルゴリズムはありません。
暗号化には、元のデータを検索するための逆演算decryptionが必要であるというハッシュの難しさが追加されています。復号化するとき、ユーザーは、何らかの大きな鍵空間からランダムに(疑似)引き出された、何らかの形式の復号化鍵を提供する必要があります(すべての1024ビット文字列と考えてください)。ここで、暗号化スキームの要件の1つは、暗号化されたテキスト(つまり、暗号化されたメッセージ)が与えられた場合、キースペースのサイズが線形ではないことを推測できないようにすることです。この分析は上記のハッシュ分析に似ており、実際には、ハッシュと暗号化の両方で、復号化の難しさは使用するキーの長さ(またはハッシュの場合、メッセージの送信元のメッセージスペース)。
もちろん、これはAESなどの適切な暗号化アルゴリズムを想定しており、プロトコルの問題は考慮されていません。欠陥のあるプロトコルは、キースペース全体を試す際の「ショートカット」を提供するため、主に壊れやすいため、たとえば、 SO上の3DESに関するこの応答 を参照してください。