「ハッシュ化とは?」今さら聞けない!基本の『キ』
日々急速な進化を遂げるデジタルマーケティング業界。
皆さんも、毎日のように各社から発信されるニュースで最新情報をキャッチアップしたり、実務上デジタルマーケティングに関わることも多いかと思います。
このコーナーでは、皆さんがニュースや業務で触れるデジタルマーケティングに関する多くのサービスで頻繁に目にする・・・けれども、"基本"であるがゆえ、詳しく説明されることが少ない「単語」や「仕組み」について、初心者にもわかりやすく説明していきます。
ハッシュ化=ルールに基づき、別の値に置き換えること
ハッシュ化とは、ある特定の文字列や数字の羅列を一定のルール(ハッシュ関数)に基づいた計算手順によって別の値(ハッシュ値)に置換させることをさします。
・・・なんだか堅苦しくてピンとこないので、例をあげてみましょう。
りさ子さんという女性がいたとします。りさ子さんは、ビデオリサーチのアンケートモニターに登録しています。アンケートモニター用のマイページにアクセスするためには、メールアドレスとパスワードが必要です。たとえばこのパスワードが「RISAKO1234」としたとき、ハッシュ関数を使ってハッシュ値「Oidw98-do0f116-aonlz」に置き換えることができます。
"置き換え"という言葉が意味する通り、ハッシュ化することでできたハッシュ値:「Oidw98-do0f116-aonlz」は、あくまでりさ子さんのパスワード「RISAKO1234」を置き換えたものであり、違う値に変更したわけではないため、2つの値は意味としては同じということになります。
「暗号化」との違いは?
パスワードを読めないように変換しておく・・・この方法で多くの方が思い浮かべるのは、「暗号化」だと思います。暗号化を図で例示してみると、以下のような形です。
「暗号化」は、特定のルール(アルゴリズム)に従い、その情報を外から見られないようにすることをさします。
先ほどの「ハッシュ化」との違いは何でしょうか?
その違いは、「元に戻せるかどうか」です。
暗号化された情報は、その保有が許された人しか知りえない"鍵"を使用することで、元に戻すことができます。
一方で、ハッシュ化した場合は、ハッシュ化作業を行った人も含めて、誰も元に戻すことができない"不可逆的な置き換え"となります。
ハッシュ化/暗号化、それぞれに適した利用シーン
ハッシュ化と暗号化、2つともパスワードなどの大事な情報を他人に悪用されないようにする際に有用な考え方です。では、それぞれどのようなシーンに向いているのでしょうか。
【ハッシュ化が適するシーン】
「その値を元に戻す必要性がないシーン」です。代表的な例が、前述の例でも登場している『パスワードの保管』です。
ネットショッピングや銀行・証券等の大事な個人情報を含むウェブサービスでは、自分の情報を参照する際にログインIDとパスワードを必要とすることがほとんどです。
万が一ハッキングなどでパスワード情報が流出しても、パスワードをハッシュ化しておけば、ハッカーはパスワードを"復元"することができないため、セキュリティ上安全を保つことができます。
ちなみに・・・
皆さんは、何らかのウェブサービスで会員登録した後、再度時間がたってからそのサイトにログインする際にパスワードを忘れてしまった経験はありませんか。
多くのサイトでは、パスワードを忘れた場合の対処法として、『パスワードをリセットして、再設定する』よう指示していると思います。
この時、あなたの会員情報を管理しているサイト側であれば、『あなたのパスワードは●●●です』とメールなどで再度お知らせすることができるのでは?と思う方もいるかもしれません。
なぜサイト側がこう言わないかというと、サイト側でも、あなたのパスワードは分からないので再度お知らせすることができないから・・・なんですね。
サイト側があなたのパスワードをハッシュ化して保管している場合、ハッシュ化後のパスワードは"元に戻せない"がゆえ、パスワードのリセットと再設定が必要になるのです。
【暗号化が適するシーン】
暗号化が適するシーンはハッシュ化の逆で、「その値を元に戻す必要がある」場合です。
代表的なのが、SSLです。たとえばネットショッピング時にクレジットカード決済を行う際、サイト上にクレジットカード番号など極めて秘匿性の高い情報を入力しますよね。ここで入力したあなたのクレジットカードに関する情報は、ネットショッピングの運営会社に確実に伝えなければいけない情報です。
ですが、あなたが入力時に使用したパソコンやスマホなどのブラウザから運営会社に通信を行う間で誰かがハッキングをかけてくるかもしれません。
ここで、クレジットカード情報を暗号化し、ネットショッピングの運営会社だけが持っている"鍵"を使わないとあなたのクレジットカード情報を見られないよう通信することで、安心してネットショッピングができるようになります。
※SSLについて詳細が知りたい方は、こちらをご参照ください。
誰でもわかる SSL (HTTPS) 通信の仕組み [図解] (外部サイトにリンクします)
おわりに
ハッシュ化/暗号化、いずれもセキュリティの観点で非常に重要な考え方となります。昨今企業間でのデータ連携が盛んにおこなわれていますが、それぞれの企業が保有する会員IDなども、ハッシュ化したうえで相手方の企業に渡すことで、万が一相手方の企業が渡された会員IDを悪用しようとしてもできないようにしておくのが基本です。
デジタルマーケティングに従事している方にとっては必須の知識と言えますので、ぜひしっかりと覚えてください。
【こちらもおすすめ!】