ハッシュ化とは
ハッシュ化とは、ハッシュ関数と呼ばれる特殊な計算方法によって、一見ランダムに見える別の値(ハッシュ値)にデータを変換する方法です。ハッシュ値は復号できないため、パスワードを保管する際などに活用されています。
同じデータから得られるハッシュ値は常に同じです。この特徴から、ハッシュ値を比較すれば元のデータが同一か否かを判断できます。
例えば、正しいログインパスワードのハッシュ値と、入力されたパスワードのハッシュ値が同一であれば、入力パスワードが正しいものと判断可能。その結果、元のID情報を直接やり取りすることがない、秘匿性の高いログイン処理が実現します。
ソルト処理を行うのが一般的
ソルト処理とは、元のデータにランダムな文字列を付加してからハッシュ化することです。付加する文字列をソルトと呼びます。ソルト処理により、ハッシュ値から元のデータを推測されるリスクを軽減できます。
ハッシュ値から元のデータを直接復号することは不可能です。しかし、あるハッシュ値の元データが何であるか、第三者が知っている可能性があります。
ログイン認証を例にすれば、同じハッシュ値を持つ者同士は、お互いに使っているパスワードが同一であると分かってしまうでしょう。この問題を解決するために行われるのがソルト処理です。
元のデータに異なるソルトを加えてハッシュ化すれば、得られるハッシュ値はそれぞれ別のものになります。複雑なソルトを付加すれば、第三者と同一のハッシュ値が生成される可能性は極めて低くなります。
ハッシュ化と暗号化の違い
ハッシュ化も仕組みだけ聞くと暗号化と大差がないように感じますが、これらの大きな違いは、復号を前提としているかどうかです。
暗号化は復号する前提で行われます。正しい方法をとれば暗号文から元のデータを得ることは簡単です。したがって、データの送受信方法として使われますが、第三者による複号リスクもあるのが難点です。
一方、ハッシュ化は復号を前提としていません。そのため、第三者がハッシュ値から元のデータを割り出すことは極めて困難です。さらに、ハッシュ値を受け取った人だけでなく作業をした当人ですら復号はできないため、ハッシュ化は不可逆性を持つ点が大きな特徴といえます。あらかじめ双方が持っている情報が同一か確認するなど、復号が不要な場面で使われます。
ここまでの違いを踏まえて、自社ではどのような対策が必要か整理したい方は、無料診断ページもご活用ください。
ハッシュ化が使われるシーン
続いて、ハッシュ化が使われる場面を2つ紹介します。
HMACによるメッセージ認証
HMACは「Keyed-Hashing for Message Authentication code」の略で、メッセージ証明コードの1つです。1997年2月にIBM社によって発表されました。
参考:RFC 2104 - HMAC|Keyed-Hashing for Message Authentication
そもそもMACとは、データの認証や改ざん検知に使われるアルゴリズムです。MACにはさまざまなアルゴリズムがあり、HMACはそのうちハッシュ化技術を利用したものです。
元のデータと事後データから得たハッシュ値を比較し、両者が同じ値が確認できれば、データが改ざんされていないことが分かります。
具体的には、共通鍵とデータをまとめてハッシュ化し、そのハッシュ値と元のデータを送信します。受信者は受け取ったデータと自身が持つ共通鍵をまとめてハッシュ化し、得られた値が受信したハッシュ値と同一か確認します。このようにして、受信データの改ざんの有無がわかるのです。
文書の電子署名
電子署名とは、データ送信者が自身が正規の送信者であることを証明する技術です。ハッシュ化技術は公開鍵暗号と組みあわせて電子署名にも利用されています。具体的な手順は以下のとおりです。
- 1.データ送信者は以下の3つを送信する。
- ■元のデータ
- ■ハッシュ値を自身の秘密鍵で暗号化したもの
- ■秘密鍵とペアになる公開鍵
- 2.受信者は受信した公開鍵で暗号文を復号する。
- 3.受信者は受信した元のデータをハッシュ化し、手順2で得たハッシュ値と比較する。
手順2で復号が成功すれば、データ送信者が正規であると証明されます。なぜなら、受信者が持つ公開鍵で復号できるのは、それが正規の送信者だけが持つ秘密鍵によって暗号化されたことの証拠だからです。
そして、手順3で比較した2つのハッシュ値が同一であれば、データが改ざんされていないことが分かります。
ハッシュ化だけでは不十分?暗号化ソフトが必要なケース
ハッシュ化はデータの照合や改ざん検知に適した技術ですが、データそのものを安全に送受信・保管する用途には向いていません。そのため、実務においてはハッシュ化だけでなく、暗号化ソフトの導入が必要となるケースも多くあります。ここでは代表的なケースを紹介します。
機密データを安全に送受信する場合
顧客情報や契約書などの機密データをメールやファイル転送でやり取りする場合、第三者による盗聴や不正取得のリスクがあります。ハッシュ化ではデータの復元ができないため、このような用途には適していません。
暗号化ソフトを利用すれば、データを暗号化した状態で送信し、受信者のみが復号できるため、安全に情報をやり取りできます。
社内外でファイルを共有・保管する場合
クラウドストレージや社内サーバーにファイルを保存・共有する際も、情報漏えい対策が求められます。ハッシュ化は内容の一致確認には役立ちますが、データそのものを保護することはできません。
暗号化ソフトを活用すれば、保存データを暗号化し、不正アクセスが発生した場合でも情報の閲覧を防止できます。
PCやUSBなどの端末紛失・盗難に備える場合
ノートPCやUSBメモリの紛失・盗難は、情報漏えいの大きな原因の一つです。ハッシュ化だけでは、保存されているデータの中身を守ることはできません。
ディスク暗号化やファイル暗号化機能を持つ暗号化ソフトを導入することで、万が一端末が第三者の手に渡った場合でも、データの読み取りを防げます。
法令・ガイドラインへの対応が求められる場合
個人情報保護法や各種セキュリティガイドラインでは、重要データの適切な保護が求められています。特に個人情報や機密情報を扱う企業では、暗号化による保護が推奨・義務化されているケースもあります。
暗号化ソフトを導入することで、これらの要件に対応し、コンプライアンス強化にもつながります。
自社の用途に合った暗号化ソフトを効率よく比較したい方は、以下から資料をまとめて確認できます。
ハッシュ化と暗号化の違いを理解し、セキュリティを向上!
ハッシュ化とは、秘匿性を高める目的でデータを一定のアルゴリズムに従って変換することです。ソルトを加えて元のデータを推測されにくくするのが一般的です。
ハッシュ化は復号を前提としない点で暗号化と異なります。新規の情報は伝えられませんが、2つの情報が同一と確認できればよい電子署名やメッセージ認証で使われています。
以上を踏まえてハッシュ化を適切に利用し、自社のセキュリティ対策に活かしましょう。



