平成29年秋  セキュリティ午後

学生さん  
(No.1)
設問1の(4)で、
「ハッシュ化アルゴリズムを使って仮IDから元の会員番号を逆引きする。」と答えたのですが、バツでしょうか?

ハッシュ値が不可逆性をもつことは知っていたのですが実務経験ないこともあり、なぜ出来ないのかが分からず…

どなたか教えていただけると助かります。
2021.09.15 20:12
AgentTakaさん 
AP シルバーマイスター
(No.2)
学生さん
こんばんはー、またまたまたまたAgentTakaでーす。わっはっはっはー、しつこいかな?
うーん、頑張ってますねー、いい志です!

さて、ハッシュ関数は元の文字列からある規則に従って変換を行って元の文字列には戻れないものだと認識するところから始めましょうか。これを不可逆性と言っているんですねえ。
じゃあ、ハッシュ変換された文字列から元の文字列を割り出せないなら、いろんな文字列から同じハッシュ値になるまで試してやろうじゃないか、というのが今回の状況設定です。
だからハッシュ関数に頼らずに元となる文字列は出来るだけ桁が多くいろいろな英数字や大文字小文字、数字や特殊記号なども含めて複雑にしておくことが大事なんですが、あんまり複雑にし過ぎても利用者が覚えきれないので会員番号やパスワードをPCに付箋紙で貼って誰からも丸見えの逆効果になることもございます。難しいですねえ、大人の社会って。だからわたしはずっと子供でいてよかったと思っています。わははは
いかがでしょうか。
2021.09.15 20:46
GinSanaさん 
AP プラチナマイスター
(No.3)
1回こっきりのハッシュ化で、会員番号(6桁の数字だから000000-999999で1,000,000通り)をハッシュ化しようって話から始まったら、攻撃者のやることはその数字に対してMD5、SHA-1、SHA-2、SHA-3とかのメジャーどころをその数だけやってリスト化してぶつければいいだけなので、まあそういうことです。ハッシュ化したやつから遡りはできなくても会員番号は察しがつくだろ、と。

>なぜ出来ないのかが分からず
むしろできたら大変で、2011年に物分かりの悪いオーストラリアの裁判官がMD5にケチつけて技術者からするとバカじゃねえの?みたいになったことはあります。
www.itmedia.co.jp/enterprise/spv/1109/10/news001_2.html
ハッシュ値の有効性  ITに疎い裁判官が起こした問題

ハッシュという単語自体  つぶす  という意味がある通り、ハッシュ化の際に元データの情報を欠落させてしまう処理があるから、戻しようがないんですね。
論理演算(XORとか)やシフト演算の繰り返しでひたすら圧縮していくんですが(知りたかったらbusyboxのサイトにsha1sumのソースがおいてあるからそういうので学んでください  あくまで知りたければです)、
基本情報をやり直している気分になりますが、たとえば1234という値を12 と23に分け、ビット単位にXORすると 46(101110)になるわけです。が、46 という値から1234は一意には求められないので、そういう特徴を使って圧縮しまくっているわけです。
2021.09.15 21:50
学生さん  
(No.4)
お二人ともありがとうございます。

メッセージ読んで、自分でもなぜこんな答えを書いてしまったのか…恥ずかしくなってきましたw

不可逆性であることだけでなく、その場合どのように元の数字列を突き止めるか、そこまでの知識も蓄えていきたいと思います。

分かりやすい解説ありがとうございます。
2021.09.16 05:30

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。

その他のスレッド


Pagetop