2chの書き込みに表示される
1 :以下、名無しにかわりましてVIPがお送りします。:2007/10/22(月) 18:44:24.33 ID:9gLPvVamOの「ID:9gLPvVamO」ってのを生成するのにもmd5(とsalt)を使っている。
細かい事は メモランダム : 2chトリップ_ にも2ch IDや2chトリップ変換と互換性があるPerlソースが出ているので、分かる人はそれを見ればOk。(4年前の桁数が増える前の情報だけど、基本は変わらない)
解説すると
- 掲示板の名前(newsなんちゃらとかUNIXとか。bbskey)
- ホスト名(host1.example.co.jpなどの逆引き名かIPアドレス。$ENV{'REMOTE_HOST'} )
- 日付(( localtime )[3] )
- あらかじめ2ch運営が生成しておいた16byteのランダム値。日付が変わるごとに次の値にする(rand)
このなかから「掲示板の名前」と「日付」は誰にでも完璧に推測できるし。「ホスト名かIPアドレス」も、自分のマシンであれば推測可能なので。「ランダム値」さえ割り出す事が出来れば、2chに書き込みする前にID:文字列を生成する事が出来る。(このランダム値のことを、この手のハッシュ関数を使うときはsaltと呼ぶ)
良く「2chのIDからIPアドレスが分かる」系の話があるけど、それを実現するのは原理的には難しい。
実際には281京4749億7671万0656個のランダム値を全て計算してつきあわせなければならないし。仮にランダム値が判明したとしても、さらに「ターゲットのホスト名かIPアドレス」を片っ端から全て計算してつきあわせる必要が有るので、今のパソコンぐらいじゃ24時間以内には計算が終わらないだろうなぁ。(概算していないから感覚だけど、たぶん地球が滅亡する年数ぐらいかかる?)
ちなみに2chトリップはID値よりも掲示板名などの要素が少ないし、ランダム要素も無いので割り出すのはもっと簡単だ。(それでも最新パソコンで計算には10年ぐらいかかるけど。あの「電車男」がbbspinkに誤爆したトリップが、第三者が計算で割り出したのではなく。電車男本人の誤爆の可能性が限りなく高いとオレが思ってるのは、数日ぐらい計算しても計算量的に不可能だから)



コメントを読む(3) [ コメントする ]