2008年7月11日金曜日

i-modIDが巷で問題になってるらしい



http://takagi-hiromitsu.jp/diary/20080710.html#p01


うはっ 解決法思いついた!


サイトにもID配ってxorとればいいんじゃね?




  • ユーザIDをUIDとする。

  • サイトのIDをSIDとする。

  • UID,SIDは誰にも解らない乱数だけとユニークなID

  • 実際に各サイトに渡すIDはSIDとUIDのxorの値


これなら、各サイトではユニークなIDだし。各サイトから真のUIDが解らないから完璧じゃね?























って書いて「おk、それもらった」と思った人は騙されやすい人です。


単純なxorだとUIDが解らなくても複数のサイトを持てばそのサイト間の関係はわかります


例えばSIDが1のサイトと0のサイトがあったとします。


試験用の端末UID=0をつかって両方をアクセスすると、SID=1の所にはID=1が記録されSID=0のところにはSID=0が記録されます。


違うSIDなら反転・同じSIDなら同じになるだけ。ビットが増えても同じ要領でビット同士を比較すればいいだけ。


コレを見れば解るようにお互いのサイトでビットが反転するかどうか一回チェックすればお互いのサイトでIDの融通ができます。


もう少し凝って、置換(ビットの入れ替え)を行ってみましょう。


xorをとるまえにSIDのサイトごとに与えられた置換ルールでビットの入れ替えを行います。


コレで解決!!














なわけないですな~


今度はUIDを複数用意します。同じSIDのサイトに2つのUIDでアクセスすると変化があるビットと無いビットがあります。


別のサイトで同じ事をします。サイトが違うので置換ルールも違います。従ってビット変化する場所も違います。


でも二つのサイトでのビット置換の関係付けのヒントは得られます。UID=0のサイトで変化したビットはUID=1のサイトでも変化します。


SIDがn個あればその組み合わせ(コンビネーションnの2)だけ変化有/無の組が作れます。


んでもってそれらの変化有り・無しを1/0とみたてて、and/orを駆使してあるビットが一つだけ1で他が全部0ってのをつくれればそのビットが他のサイトでどこに移動しているかが解ります。


一組のデータを使ってn・nビットの組み合わせあったのが平均的にみてn/2・n/2ビット組み合わせ問題に落ちます。


ということでSIDもそんなに必要なさげ。


ちなみに別に全部自分でUID用意しなくてもサイト構成を考えて誘導リンクを踏んで来た事がわかるようにしておけばOKです。みんなが情報を集めてくれます。(例えば適当なformをつくるとか)


エロサイト入口とかいて別のエロサイトランキングに飛ばすとか(笑)


置換ルールをUID・VID両方使って変化させればおkって思うかもしれないけど


解りやすくするために例えば3ビットの置換だったら102みたいに書くとするよ。(012が置換なし210がビット順番反転)


UIDとSID両方に異存する置換ルールを動的に生成すればいいんじゃね?って話もあがるかとはおもうんだが。。


どなんだろ


例えば3桁の置換ルールは012が置換なしで210がビットを逆順ソートというふうにnビットならn進数n桁で記述できるんだけど


ここにそのSIDでつくられた置換ルールがあったらさらにUIDで作られた置換ルールでそのSID置換ルールn桁を並び替えるって事になるね。


UID→V置換ルールをUのルールで置換してその置換ルールにかける→VIDとxor


ってのは


UID→Uのルールで置換→Sのルールで置換→SIDとxorと同じになるか??


これだとだめだよね


UID→Sのルールで置換→SIDとxor→Uのルールで置換ならOK???


ん?


UID→SIDとxor→Uのルールで置換は???


うーん、オイラの弱いおつむじゃUNオーエン二周聞いても間には解決策思いつかなかったよ。


難しいこと考えずに、全組み合わせのUIDとVIDに乱数当てはめるのが楽だし、見た目にも安心なんだけどね。まぁ無理か(ぉ


この手の難しいよね~昔一度その墓穴を掘ったなぁ。懐かしい。


今は存在しないサイトだし、そのIDは漏れてもとりあえず問題ないし気持ち悪いから隠しとくか程度のもだったからいいけど。二人のユーザ間でメッセージ交換するときのそのペアを示すIDとして使ってた。記憶があるような。





0 件のコメント:

コメントを投稿