サイバーセキュリティにおけるハッシュとは
ハッシュとは、逆変換または復号化ができない一連の単なるテキストにデータを変換する一方向の数学関数です。
サイバーセキュリティのコンテキストでは、ハッシュは機密情報とデータ(パスワード、メッセージ、ドキュメントなど)を安全に保護する手段です。このコンテンツがハッシュアルゴリズムで変換されると、生成された値(つまりハッシュコード)は人間には判読できず、高度なテクノロジーを利用したとしても復号化は非常に困難です。
ハッシュは、特にリモートワークが広がり個人デバイスの使用が増大していることを考えると、組織にとって重要なサイバーセキュリティツールとなっています。このような傾向を受けて、組織では、シングルサインオン (SSO) テクノロジーを利用して、従業員のリモートワークを可能にし、操作性の不便さを軽減することが必要になっています。現在の企業にとってはこのことは不可欠ですが、攻撃者は、パスワードとユーザー認証情報を保存するということに潜む脆弱性を認識するようになりました。つまり、企業はそうした情報を安全に保護するために追加で措置を講じる必要があります。
ハッシュのコンポーネント
ハッシュには、主に次の3つのコンポーネントがあります。
- 入力キー
- ハッシュ関数
- ハッシュテーブル
| 入力キー | ハッシュ関数 | ハッシュテーブル |
|---|---|---|
| ハッシュ関数によって処理されてハッシュコードに変換される入力データまたはメッセージ。 | 入力データ(キー)を一意のハッシュ値に変換する数学関数。 | データを保存し、キーを値にマッピングするデータ構造。 |
ハッシュのタイプ
ハッシュは本質的に1つではなく、実際、さまざまなユースケースに適したさまざまなハッシュアルゴリズムがあります。ここでは、よく使用される4つのハッシュアルゴリズムについて説明します。
- LANMAN
- NTLM
- Scrypt
- Ethash
ハッシュアルゴリズム
LANMAN:Microsoft LAN Managerハッシュアルゴリズム (LANMAN) は、Microsoftが主にパスワードを保存する目的で開発したネットワークオペレーティングシステムであり認証プロトコルです。1980年代に導入されたLANMANは、今ではおおむね時代遅れと見なされますが、ハッシュアルゴリズムの例として最もよく知られているものです。
NTLM:Windows New Technology LAN Manager (NTLM) は、Microsoftが提供するセキュリティプロトコルスイートであり、ユーザーのアイデンティティを認証し、そのアクティビティの整合性と機密性を保護します。根本的にSSOツールであるため、チャレンジレスポンスプロトコルに依存しており、パスワードを送信しなくてもユーザーを確認できます。このプロセスは、NTLM認証と呼ばれています。
Scrypt:Scryptは、データやパスワードを暗号化キーに変換できる鍵導出関数 (KDF) およびパスワードベース鍵導出関数 (PBKDF) です。Scryptの主な目的は、ブルートフォース攻撃などの暗号攻撃に対して堅牢性の高い防御を提供することです。
Ethash:Ethashは、イーサリアム(Ethereum)ネットワークによって開発された「プルーフオブワーク」ハッシュアルゴリズムです。アルゴリズムは、イーサリアム暗号通貨ネットワークとそのブロックチェーンを保護し、プラットフォームトランザクションを検証するようにカスタムビルドされています。
サイバーセキュリティでのハッシュのユースケース
ハッシュは、多くのサイバーセキュリティアルゴリズムとプロトコルで重要な役割を果たします。最も基本的なレベルでは、ハッシュは機密データやテキストを判読できない値にエンコードする手段であり、その値をデコードするのは驚くほど困難です。
ここでは、サイバーセキュリティで最もよく使用されるハッシュのユースケースを3つ取り上げます。
- パスワードストレージ
- デジタル署名
- ファイルとドキュメント管理
パスワードストレージ
パスワードをプレーンテキストとしてシステム、アプリケーション、またはデバイス内に保存するのは非常に危険です。パスワードストレージソリューションでは、ハッシュを使用して、ログイン認証情報をエンコードし、ハッシュ値として保存します。以後ユーザーがシステムにアクセスしようとすると、このソリューションはハッシュ値とともにデータベースに入力されたパスワードを検証することでユーザーを認証します。
デジタル署名
デジタル署名は、メッセージ、ドキュメント、トランザクションの発生元、真正性、整合性の検証に使用される暗号化手法です。
ハッシュを使用してデジタル署名を作成するには:
- ハッシュ関数を元のメッセージに適用して安全なハッシュ値を作成します。
- 送信者側にある秘密キーを使用して、ハッシュ値を暗号化します。このプロセスにより、デジタル署名が作成されます。
- 受信者は、公開キーを使用してデジタル署名を復号化します。
- 次に受信者は、こうして生成されたハッシュ値を取得し、同じハッシュ関数を適用します。ハッシュ値が一致すれば、メッセージが改ざんされていないことと、指定された送信者によりメッセージが作成されたことが証明されます。
ファイルとドキュメント管理
デジタル署名は、Eメールやその他のデジタル通信を保護するためによく使用されますが、それだけでなくあらゆる種類の電子取引や電子文書の認証および検証にも使用できます。主に次の2つのユースケースがあります。
- ドキュメントの比較:ハッシュを適用すると、ハッシュ関数によって固定文字列値が生成され、この値が任意のタイプのドキュメントやファイルの一意の識別子として機能します。ドキュメントが何らかの方法でわずかでも変更されていれば、ハッシュ値も変わります。このため、ハッシュを利用すると、ファイルを比較して改ざんや侵害を受けていないことを迅速かつ効率的に確認できます。
- データ整合性の検証:ファイルやドキュメント内のデータの整合性を検証するには、ハッシュアルゴリズムを使用してチェックサムを生成します。これがデータセットの合計を反映したハッシュ値となります。データが共有または送信されるときに、このチェックサムが添付されます。これを受け取ったユーザーは、新しいチェックサムを作成して元のチェックサムと比較します。2つの値が一致すれば、データは安全と見なされます。
2024年版脅威ハンティングレポート
クラウドストライク2024年版脅威ハンティングレポートでは、245を超える現代の攻撃者の最新の戦術を明らかにし、これらの攻撃者がどのように進化し続け、正当なユーザーの振る舞いを模倣しているかを示します。侵害を阻止するためのインサイトをこちらから入手してください。
今すぐダウンロードサイバーセキュリティにおけるハッシュの利点
ハッシュは、サイバーセキュリティの数多くのプラクティスとプロトコルに不可欠な要素です。利点は次のとおりです。
- 強力なパスワードセキュリティ:ハッシュは、IAM(アイデンティティおよびアクセス管理) ツールの重大な要素です。ハッシュツールを使用することで、組織内のユーザーのアイデンティティを確認し、適切なアクセス制御を維持できます。これにより、パスワードスプレー攻撃や認証情報の窃取などのパスワードベースの攻撃を防ぐことができます。
- ファイルとデータ整合性:ファイル、ドキュメント、またはデータセットがハッシュされた後で、何か変更が加えられると、まったく異なる新しいハッシュ値が生成されます。これにより、アセットを追跡して変更されたかどうかを識別し、変更されていれば、侵害を受ける可能性があるアセットの使用をただちに停止できます。
- データセキュリティ:一方向のハッシュ関数をデコードするのは非常に困難であるため、サイバー犯罪者と不正なアクターがハッシュ値を利用することは事実上不可能です。つまり、正しくハッシュされていれば、データ侵害を受けたからといって必ずしも機密データを失うとは限りません。
- 安全な通信:ハッシュはデジタル署名の重要な要素であり、メッセージの内容と送信者のアイデンティティの両方を認証する場合に優先的に使用される方法です。
- 安全なダウンロード:ソフトウェアや大規模なファイルをダウンロードするときに、そのダウンロードのハッシュ値を検証してマルウェアに感染していないことを確認できます。
- 脅威検知の改善:ハッシュコードでは、システムやネットワーク内に存在する脅威を迅速かつ効率的にスキャンして検知できます。
ハッシュの制限
ハッシュは有用なツールですが、いくつかの制限があります。ここでは、サイバーセキュリティでハッシュを使用する場合の課題と欠点をいくつか取り上げます。
- 衝突:複数の入力から同じハッシュ値が生成されると衝突が発生します。大手企業をはじめ大量のデータを保存している企業が直面する課題であり、こうした衝突を防ぐソリューションを実装する必要があります。例えば、チェーン戦略というものがあり、ある企業がこれを実装するとハッシュテーブルのリンクリストに重複した値が追加されます。
- パフォーマンス:ハッシュには綱渡りのような側面があります。アルゴリズムは速度とメモリ使用量の両方を最適化するように設計されていますが、それと同時に企業が求めるデータ入力レベルもサポートする必要があります。これにより、アルゴリズムの設計と進化という点から複雑さが増大します。サイバーセキュリティという点では、アルゴリズムの処理速度が遅かったりバックログが多すぎたりすると、リスクが高くなる可能性があります。
- セキュリティリスク:ハッシュはデータを判読できないテキスト文字列に一方向に変換する仕組みであると定義されています。一般に、ハッシュ値をデータに変換し直すことはできません。ただし、高い能力を持つ攻撃者であれば、ハッシュ関数を発見または推測できる可能性があります。そうなると、ハッシュ値をリバースエンジニアリングしたり、偽の入力を作成してデータセットを改ざんしたりすることが可能になります。
ハッシュと暗号化
ハッシュと暗号化は同じ結果をもたらすように見えるかもしれませんが、実際には両者の機能は異なります。
主な違いは、ハッシュは常に一方向へのデータの変換を目的としていることです。ハッシュ値は一意のテキスト文字列であり、攻撃者は、ハッシュ関数を盗むか推測してデータ入力をリバースエンジニアリングしない限りデコードできません。
一方、データの暗号化は双方向のプロセスです。暗号化でも暗号化アルゴリズムを使用してプレーンテキストをエンコード形式に変換しますが、対応するデコードキーがあり、ユーザーはこれを使用すればデータを復号化できます。
もう1つの主な違いは、ハッシュではデータ、メッセージ、ファイルといったアセットを認証できる点です。ユーザーは、元のハッシュ値を受信者によって生成されたハッシュ値と比較することで、ユーザー間で送信されたデータがインターセプトされず、改ざんされていないことを確認できます。一方、データが暗号化されている場合、データを検証する方法はなく、データが変更されているかどうかを知る方法もありません。そのため、認証目的であればハッシュのほうが適切です。
Expert Tip
ハッシュの仕組みとハッシュを使用してサイバー攻撃から組織を保護する方法をご確認ください。CrowdStrike Universityではさまざまなコース、トレーニング、認定資格を提供しており、重大なサイバーセキュリティスキルを身につけることができます。詳しい情報と、コースやイベントの詳しいリストについては、CrowdStrike Universityにアクセスしてください。