日本語

開発者ツール · SHA ハッシュ計算ツール

ハッシュは暗号化ではありません: SHA-256 ハッシュを復号化できない理由

· なぜそれが重要なのか

暗号化 セキュリティ エンコード

ハッシュ関数に入力が流入し、ダイジェストに向かう矢印は前方を向いていますが、後方に戻る矢印はありません
オリジナル ToolAcre ベクトル イラスト

キーも逆関数もありません。ハッシュは一方向関数です。この投稿では、暗号化との違い、ハッシュ検索サイトがハッシュを逆にするように見える理由、それが個人データのハッシュに何を意味するかについて説明します。

これらのハッシュを復号化してください - ハッシュとは何かについての誤解を明らかにするチケット

いくつかの SHA-256 ハッシュを復号化するよう求めるサポート チケットが到着します。これを読んだ開発者は、ハッシュとは何かについての誤解を疑っています。この混乱は当然です。ハッシュと暗号化には両方とも暗号アルゴリズムが含まれており、どちらもスクランブルされたように見える出力を生成し、両方ともセキュリティに関連しています。しかし、それらは根本的に異なるツールです。暗号化は元に戻すことができます。ハッシュ化はそうではありません。この違いは、両者を混同すると実際のセキュリティ システムが破壊されるほど重要です。チケットは、システム設計に影響を与える共通の理解のギャップを表しています。

ハッシュ関数は一方向関数です。入力をハッシュしてダイジェストを取得することはできますが、ダイジェストから入力を復元するキーや逆の操作はありません。これは制限やバグではありません。それはハッシュの定義的なプロパティです。 ToolAcre SHA ハッシュ計算ツールは、貼り付けたテキストのダイジェストを生成します。ボタンが存在しないため、「復号化」ボタンはありません。この操作は選択によってではなく、数学によって元に戻すことができません。リバース機能がないことは、要求できる機能ではありません。

暗号化にはキーとその逆があります。ハッシュにはどちらもありません - わかりやすく言うと定義上の違いです

暗号化の動作は異なります。暗号化アルゴリズムは平文と鍵を受け取り、暗号文を生成します。暗号文はスクランブルされており、キーがなければ解読できません。重要なのは、同じキーで暗号文を復号して平文に戻すことができることです。暗号化は設計により元に戻すことができます。データの機密性を保つために暗号化します。もう一度読むために復号化します。暗号化の安全性は、キーが秘密であるかどうかに依存します。キーの所有者だけが変換を元に戻すことができます。

ハッシュにはキーも反転もありません。何かをハッシュして固定長のダイジェストを生成します。同じ入力からは常に同じダイジェストが生成されます。異なる入力は異なるダイジェスト、つまり衝突耐性のプロパティを生成します。ただし、ダイジェストを取得して入力を生成することはできません。この関数は一方向にしか進みません。後で復号できるようにデータを暗号化する必要がある場合、ハッシュは間違ったツールです。検証またはコンテンツのアドレス指定のためにデータのフィンガープリントが必要な場合は、ハッシュ化が適切です。適切なツールを選択するには、違いを理解する必要があります。

ハッシュ ルックアップ サイトの仕組み — 復号化ではなく、一般的な入力の事前計算された辞書

この区別は非常に重要であるため、パスワード検証のセキュリティの基礎となります。サーバーはパスワードを保存しません。パスワードをハッシュ化した結果を保存します。ユーザーがログインすると、サーバーはユーザーの送信をハッシュし、保存されている値と比較します。サーバーが侵害され、そのデータベースが盗まれた場合、攻撃者はパスワード自体を取得するのではなく、ハッシュのみを取得します。ハッシュの一方向の性質は、攻撃者がハッシュからパスワードをリバース エンジニアリングできないことを意味します。システムのセキュリティはこの特性に依存します。

サーバーが代わりに暗号化を使用した場合、つまりパスワードを暗号化し、それを復号化できた場合、キーを盗む侵害によってすべてのパスワードが即座に公開されてしまいます。ハッシュが選択されるのは、特に元に戻せないためです。これが、パスワード システムが暗号化ではなくハッシュを使用する理由です。不可逆性は制限ではありません。それがセキュリティ モデル全体です。暗号化されたパスワード データベースは、暗号化が元に戻せるため、ハッシュされたデータベースよりも基本的に弱いです。

低エントロピー入力が弱点 — 電子メール アドレス、電話番号、または短い PIN のハッシュ化がほとんど保護にならない理由

ハッシュ検索サイトは、復号化されたかのような錯覚を作り出すために存在します。これらのサイトは、一般的な入力とそのハッシュの事前計算されたテーブルをホストします。 「レインボー テーブル」は、事前に準備された辞書です。テーブルには、最も一般的な 1,000 個のパスワードのハッシュ、特定の長さまでのすべての英数字の組み合わせ、または複数の言語の単語リスト全体が含まれる場合があります。サイト運営者はすでにハッシュ作業を実行し、結果を保存しています。誰かが検索サイトにハッシュを送信しても、サイトでは何も復号化されません。テーブル内でハッシュを検索するだけです。ハッシュが存在する場合、つまり辞書の単語またはパスワード パターンがたまたま一致した場合、テーブルは元の入力を返します。この技術に詳しくない人にとっては、これは魔法の復号化のように見えますが、単なるデータベースの検索にすぎません。サイトはハッシュを元に戻しません。事前に計算された値と比較しています。

実用的な例 — 推測可能な値をハッシュし、辞書がそれをどのように復元するか、長いランダム値を復元できないかを示します。

これが、低エントロピー入力が脆弱である理由です。 「password」などの一般的なパスワード、または誰かの電子メール アドレスなどの予測可能な値をハッシュする場合、検索サイトがすでにそのハッシュを計算して保存している可能性が十分にあります。ルックアップは元の値を即座に返します。 256 文字のランダム文字列をハッシュする場合、その特定のハッシュが事前計算される検索サイトは地球上にありません。入力が辞書にないため、検索サイトは何も返しません。ハッシュのセキュリティは、入力のエントロピーに完全に依存します。

ToolAcre SHA ハッシュ計算ツールは、これを直接示します。一般的な単語をハッシュ化し、決意を固めた攻撃者が独自の辞書サービスを実行すれば、それを調べることができます。長いランダム値をハッシュすると、大規模な辞書にもそれが含まれる可能性は低くなります。ハッシュの決定性 (同一の入力から同一の出力が得られる) により、辞書攻撃が可能になります。これは、ハッシュが検証に役立つ理由でもあります。ルックアップを有効にする同じプロパティにより、検証も有効になります。

実際に暗号化が必要な場合 — データを取り出す必要がある場合、およびハッシュが間違ったツールである場合

実際に暗号化が必要な場合、つまり機密データを送信して後で復元する必要がある場合、暗号は適切なツールです。 AES は対称暗号化の最新の標準です。1 つのキーが共有され、平文の暗号化と暗号文の復号化が行われます。 RSA または楕円曲線暗号は非対称暗号化に使用されます。公開キーで暗号化され、秘密キーで復号化されます。これらのツールは設計上、元に戻すことができます。セキュリティは、不可逆性ではなく、鍵の秘密性によってもたらされます。間違いは、暗号化が必要な場合にハッシュを使用することです。クレジット カード番号を後で検証するためにハッシュ化した場合、それを復号化する方法はありません。個人識別子をハッシュし、後でそれを回復する必要がある場合、ハッシュ化は間違った選択でした。このような状況では暗号化が必要になります。

実用的な例では、2 つの用途を明確に区別しています。あなたは、お互いや自分のスタッフに対して秘密にしなければならないユーザー ID のリストを持っています。 AES で暗号化して結果を保存します。後でユーザーを検索する必要がある場合は、ユーザーを復号化して読み取ります。ハッシュ化は機能しません。一度ハッシュ化されると、ID は永久に失われます。対照的に、ユーザーにはパスワードがあります。それらをハッシュして保存します。ユーザーがログインすると、ユーザーの送信をハッシュし、保存されている値と比較します。パスワード自体を回復する必要はありません。暗号化は間違っています。初期設定後は、プレーンテキストのパスワードは使用できません。

これでカバーされないもの — キー付きハッシュ設計とソルト付きハッシュ設計。ハードルは上がりますが、別のトピックです。

ソルティングとキー付きハッシュは、どちらもダイジェストを暗号化に変換しないため、別個に扱う必要があります。ソルトは、同等の低エントロピー入力から異なる保存レコードを生成し、キーは有効な認証値を計算するユーザーを制限できます。出力は非可逆のままです。回復の試みは、逆を適用するのではなく、候補入力をテストすることによって続行されます。

パスワード ハッシュではソルトだけでなく意図的なコストも追加されますが、HMAC では秘密キーを使用してメッセージを認証します。 ToolAcre はどちらの操作も実装しません。これらをこの記事の外に置くことで、プレーンな SHA-256 と即席のプレフィックスをレビュー済みのパスワード レコードまたはメッセージ認証構造と同等のものとして記述するという危険なショートカットを回避できます。

要点: 一方向のみ — ToolAcre SHA ハッシュ計算ツールはダイジェストを計算します。逆ボタンは存在できないため、ありません。

ToolAcre SHA ハッシュ計算ツールは、ハッシュの動作を示します。テキストを貼り付け、ダイジェストを取得し、完了します。逆転は不可能であり、意図されていません。このツールは、「復号化」機能が存在できないため、その機能の提供を正しく拒否します。暗号化が必要な場合は、適切な暗号を使用してください。反転がないことはツールの制限ではありません。それはハッシュに関する数学的事実です。一方向関数は、元に戻すことができないからこそ、強力なツールとなります。彼らは取り消すことができない方法でデータをコミットします。オリジナルを明らかにすることなく検証を提供します。これらにより、データベースが盗まれた場合でも安全なパスワード システムが可能になります。ソルトが適用され、コストが適切に調整されたパスワード ハッシュは、推測によって元に戻すことが不可能になります。不可逆性がセキュリティメカニズムです。

ToolAcre SHA ハッシュ計算ツールは、ブラウザー独自の Web Crypto 実装によって、一方向で目的を持って適切に計算されるダイジェストを計算します。検証または整合性のためにハッシュする必要がある場合は、それを使用してください。データを秘密にして後で取り出す必要がある場合は、暗号化が最適なツールです。不可逆ハッシュと可逆暗号化の違いを理解することは、セキュリティと実際に必要なことを実行するシステムを構築するための基礎です。