監査証跡とは、組織内でのすべてのアクションや操作の記
更新日:2024年12月6日
ハッシュ化は、サイバーセキュリティの分野で幅広く応用されています。 しかし、その主な用途は、第三者がデータを傍受してもそれを理解できないようにするために、データを「スクランブル」することです。 ところで、パスワードのハッシュ化とは正確には何であり、なぜそれに注目すべきなのでしょうか。
ハッシュ化とは、アルゴリズムを使用してデータを所定の長さにマッピングするプロセスのことです。 これは、ハッシュ値(あるいはハッシュコード、ハッシュサム、ハッシュダイジェスト)として知られています。 ハッシュ化が暗号化とよく似ていると思われるなら、その通りです。 アプローチは似ていますが、意図した結果は異なります。
ここでは、パスワードのハッシュ化とは何か、そしてハッシュ化がデータを保護する仕組みについて、さらに詳しく説明します。
パスワードのハッシュ化とソルト化のそれぞれの暗号化の違いとは?
ハッシュ化について理解していただいたところで、ハッシュ化、ソルト化、暗号化の違いを理解することが重要です。 ソルト化は、サーバーがパスワードにランダムでユニークな文字列を追加してからパスワードをハッシュ化させるプロセスです。 これにより、たとえシステム内のすべてのユーザーが同じ平文のパスワードを使用していた場合でも、すべてのパスワードハッシュがユニークであることが保証されます。
ソルト化の仕組みを視覚的に表現したものをご覧ください。
User 1 plaintext password: trustno1
MD5 hash (no salt): 5fcfd41e547a12215b173ff47fdd3739
User 1 “salt”: lAt3i
MD5 hash (salt + trustno1): e49a19f5b3b1743ec9d8c13662a21892
User 2 plaintext password: trustno1
MD5 hash (no salt): 5fcfd41e547a12215b173ff47fdd3739
User 2 “salt”: wS>Zd
MD5 hash (salt + trustno1): 0caf49e6119c7629dbdf6776864de9b6
ご覧のように、両方のユーザーが同じパスワードを使用する場合でも、ソルトによってハッシュが全く異なることが保証されるため、サイバー犯罪者がハッシュをリバースエンジニアリングすることはほぼ不可能になります。 このため、ソルト化はパスワードをハッシュ化する際のベストプラクティスなのです。
暗号化はハッシュ化と似たプロセスですが、意図した生成物は異なります。 暗号化されたデータは、ある時点で復号化されることが意図されています。これが、鍵を使用する理由です。 対照的に、ハッシュ化されたデータは読み取り可能なフォーマットに変換されることを意図していません。
パスワードがハッシュ化される仕組み
ハッシュ化の仕組みを段階的に概説したものを以下に示します。
- データの入力:最初のステップは、ハッシュ化したいデータを選択することです。 これには、パスワードやファイル、メッセージ、写真、その他の重要なデータなどが当てはまると考えられます。
- ハッシュ化アルゴリズムを選択する:MD5、SHA-257、SHA-5など、多数のハッシュ化アルゴリズムから選択できます。 アルゴリズムを選択する際に考慮すべき要素は、その安全性とパフォーマンスレベルです。
- ハッシュの計算:アルゴリズムを選択すると、それが入力されたデータを一連の関数を使用して処理し、ユニークなハッシュ値を作成します。
- 出力の受信:ハッシュ値が受信され、それをパスワードストレージシステムのようなデータベースに保存することができます。
ハッシュ化アルゴリズムとは?
ハッシュ化アルゴリズムが、テキストを暗号文(通常はすべての文字列が一定の長さのランダムな文字や数字で構成される理解不能な文字列)に変換するフィルタを介して実行されることで、テキストを変換させます。
パスワードのハッシュ化は、サーバーがパスワードを平文で保存しないことを保証することによってセキュリティを強化します。パスワードの平文値を知っているのはエンドユーザーだけです。
MF5ハッシュアルゴリズムの仕組みを視覚的に示したものをご覧ください。
Plaintext password: trustno1
MD5 hash: 5fcfd41e547a12215b173ff47fdd3739
パスワードをほんの少し変更するだけでも、ハッシュが完全に変わります。 パスワードの最初の文字を大文字にするだけで、どうなるかをご覧ください。
Plaintext password: Trustno1
MD5 hash: 44ec94bbfc520c644ce2748eb3bdef6d
パスワードなどをハッシュ化させるメリット
パスワードなどをハッシュ化させるメリットには、以下のようなものがあります。
データの整合性
ハッシュ化は、データの生合成を測定するために使用される一般的な方法です。 元のハッシュ値と、受信または保存されたハッシュ値とを比較することで、送信中に改ざんされたかどうかを確認できます。 データにわずかな変更があった場合でも、ハッシュ値が全く異なる結果となるのです。 これは、侵害されたデータがあるかどうかを見極めるためにも役立ちます。
迅速なデータ取得
ハッシュ化のおかげで、データの処理や取得にかかる時間が短縮されました。 これは、鍵をハッシュ値にマッピングするデータ構造のハッシュテーブルを介して行われます。 各データは鍵と独自に結び付けられており、ハッシュ関数は鍵をハッシュコードに変換します。 このコードは、ハッシュテーブルに保存されたインデックスを決定するために使用されます。これにより、データへのアクセスが効率よく迅速に行われることを保証します。
ストレージスペースの削減
ハッシュ化のもう1つの利点は、データの重複を排除する機会を特定するのに役立つため、ストレージスペースを節約することです。 データの重複排除とは、重複したデータを削除してストレージ利用を最適化するプロセスです。 異なるハッシュ値を比較することで、システムはどの資産が同一であるかを判断し、それらを削除してストレージを解放することができます。
パスワードの保護
ハッシュ化は、パスワードマネージャーのようなパスワード保護ツールの重要な要素です。 これらのツールを使用することで、ユーザーのパスワードは不可逆的なハッシュ値に変換されます。これは、平文鍵の代わりにデータベースに保存されます。 そのため、ハッシュ値が侵害されるようなことが発生した場合でも、サイバー犯罪者に元のパスワードを取得されにくくなるのです。
ハッシュ化の制限について
ハッシュ化の大きな制限の1つは、ハッシュ衝突のリスクです。 ハッシュ衝突は、2つの文字列が同一のハッシュコードを生成することで発生します。 たとえば、パスワードの「trustno1」と「Trustno1」が同じハッシュ値を生成する場合、これはハッシュ衝突になります。 このような衝突が発生した場合、サイバー犯罪者は元のパスワードと似たパスワードでログインして同じハッシュを生成することでコンピューターを操り、アクセスを許可させることができます。
上記の例で言及したMD5ハッシュアルゴリズムは、ハッシュ衝突の可能性が高いことが知られています。そのため、もはや非暗号目的以外には使用されないことに注意することが重要です。
まとめ:Keeper®はパスワードのハッシュ化とソルト化を活用して強力な暗号化で保護します
Keeperを使用してパスワードを安全に保存すると、256ビット認証鍵がPBKDF2-HMAC_SHA256とランダムなソルトを使用してマスターパスワードから取得されます。 ここから、SHA-256を使用して認証鍵をハッシュ化することで、認証ハッシュが生成されます。 ユーザーがログインするにあたり、認証ハッシュはCloud Security Vaultに保存された認証ハッシュと比較されます。
パスワードをハッシュ化し、安全に保管するために、Keeperのようなパスワードマネージャーを利用するのも一つのアイデアです。
この機会に、Keeper パスワードマネージャーの30日間の個人プランフリートライアルまたは、14日間のビジネスプランのフリートライアルを試してみてはいかがでしょうか。