bbs.cgi再開発プロジェクト4

このエントリーをはてなブックマークに追加
832FOX ★
file i/o を減らすのだ 第八弾(ID生成ルーチン)

1) 毎回 HDD にアクセスしているのを何とかしたい、
2) 毎月同じIDになるのを何とかする?
3) あとなんかあったっけ?

今 コード出します。
833FOX ★:04/12/14 14:36:21 ID:???
{

#IDを生成する
use Digest::MD5;
my $md5 = Digest::MD5->new;

use Digest::MD5 qw(md5_hex);
#my $idnum = md5_hex($ENV{'REMOTE_ADDR'});
my $idnum = md5_hex($GB->{IDNOTANE});

$idnum = substr($idnum,-4);

$md5->add($idnum);
$md5->add($GB->{FORM}->{"bbs"});
#$md5->add(substr($GB->{DATE},6,2));
my $md5datefile = "$GB->{PATH}/md5.cgi";
if(-e $md5datefile){
open(MD5FILE,"<$md5datefile");
my $md5line = <MD5FILE>;
close(MD5FILE);
my ($md5date,$md5number) = split /<>/,$md5line;
if($md5date eq $GB->{MD5DATE}){
$md5->add($md5number);
}else{
open(MD5FILE,">$md5datefile");
my $data = "";
sysopen(RANDOM, "/dev/random", O_READ) || die "cannot open /dev/random $!\n";
sysread(RANDOM, $data, 16);
close(RANDOM);
print MD5FILE "$GB->{MD5DATE}<>$data";
close(MD5FILE);
$md5->add($data);
}
}else{
open(MD5FILE,">$md5datefile");
my $data = "";
sysopen(RANDOM, "/dev/random", O_READ) || die "cannot open /dev/random $!\n";
sysread(RANDOM, $data, 16);
close(RANDOM);
print MD5FILE "$GB->{MD5DATE}<>$data";
close(MD5FILE);
$md5->add($data);
}
chmod(0777,"$md5datefile");
my $idcrypt = $md5->b64digest;
$idcrypt = substr($idcrypt,0,8);
834動け動けウゴウゴ2ちゃんねる:04/12/14 16:37:18 ID:dKRMgTcD
こんな感じ?

use Digest::MD5;
use Digest::MD5 qw(md5_hex);

my $md5datefile = "$GB->{PATH}/md5.cgi";

if (!defined $FOX->{MD5NUMBER}) {
# まだ読み込まれていない
open(MD5FILE, "<$md5datefile");
my $md5line = <MD5FILE>;
close(MD5FILE);
($FOX->{MD5DATE}, $FOX->{MD5NUMBER}) = split(/<>/, $md5line, 2);
}

if ($FOX->{MD5DATE} ne $GB->{MD5DATE}) {
# 日付が変わったので作り直し
my $data = '';
sysopen(RANDOM, '/dev/random', O_READ) || die "cannot open /dev/random $!\n";
sysread(RANDOM, $data, 16);
close(RANDOM);
open(MD5FILE, ">$md5datefile");
print MD5FILE "$GB->{MD5DATE}<>$data";
close(MD5FILE);
chmod(0777, $md5datefile);
$FOX->{MD5DATE} = $GB->{MD5DATE};
$FOX->{MD5NUMBER} = $data;
}

#my $idnum = md5_hex($ENV{'REMOTE_ADDR'});
my $idnum = md5_hex($GB->{IDNOTANE});

my $md5 = Digest::MD5->new;
$md5->add(substr($idnum,-4));
$md5->add($GB->{FORM}->{"bbs"});
#$md5->add(substr($GB->{DATE},6,2));
$md5->add($FOX->{MD5NUMBER});
my $idcrypt = substr($md5->b64digest, 0, 8);
835▲:/usr/local/bin/ch2 -o i686 ◆P8fXJj6wwo :04/12/14 17:08:51 ID:krSF+CYt
mod_md5fileなんてつくったらどうだろうかと言ってみるテスト
836▲ 某ソレ511:04/12/14 17:22:01 ID:VWWSBm/+
やぱ、プロセス最初の起動で
2つのデータを読み込む、あたりが一番楽だと思う。

と思ったら、>>834で十分だいじょぶっぽいか。
837動け動けウゴウゴ2ちゃんねる:04/12/14 17:22:56 ID:yW1G096m
言い出しっぺの法則
838マァヴ ★:04/12/14 17:27:14 ID:???
ああ、なつかしのID生成ルーチン(^_^;)
ID生成ルーチンのセオリーとしては
「ルーチンを公開しても、リモホやIPが推測できない」
です。
839動け動けウゴウゴ2ちゃんねる:04/12/14 17:43:03 ID:HEqRaqNj
マァヴ ★(^_^;)
キタキタキタキタ━━━(゚∀゚≡(゚∀゚≡゚∀゚)≡゚∀゚)━━━━!!!!!!!!!!
840FOX ★:04/12/14 17:48:04 ID:???
>>834 みたくして、

日付の変わる 24時のあたり大丈夫ですかねぇ

a) bbs.cgi は何十本も常駐している。
b) 寿命は現在10分である

というあたり、
841:04/12/14 17:55:02 ID:kwpC6qYO

 1)どこぞのexで実験する
 2)じっけん じっけん
 3)おやつは300円までですよ
842動け動けウゴウゴ2ちゃんねる:04/12/14 17:58:21 ID:dKRMgTcD
>>840
投稿のたびに日付チェックするので大丈夫、なはず……。
843FOX ★:04/12/14 17:59:13 ID:???
んじゃ dsoで、そしてex9へ
844未承諾広告※ ◆TWARamEjuA :04/12/14 18:27:42 ID:mhtbHAbI
うぅむ、、、/dev/randomからの採取は、crondで毎日00:00に採取して、ファイルにして保存。
bbs.cgiで、1回取得しておけばSpeedyに引っかかって、ごっつぅえぇ感じになるかと♪
845FOX ★:04/12/14 18:53:07 ID:???
ccqccc
846FOX ★:04/12/14 19:12:17 ID:???
dso に入れてみたぞ

てすと てすとー

あんま自信ないので一日放置してみる < dso
847FOX ★:04/12/14 19:15:35 ID:???
コードをさらしておこう
848FOX ★:04/12/14 19:18:22 ID:???
$FOX 初期化時

$FOX->{$GB->{FORM}->{'bbs'}}->{MD5NUMBER} = &foxInitMD5id($GB->{FORM}->{'bbs'},$GB->{MD5DATE});
$FOX->{MD5DATE} = $GB->{MD5DATE};

bbs.cgi が呼ばれるたびに、

$FOX->{$GBX->{FORM}->{'bbs'}}->{MD5NUMBER} = &foxCheckMD5id(
$GBX->{FORM}->{'bbs'},
$GBX->{MD5DATE},
$FOX->{$GBX->{FORM}->{'bbs'}}->{MD5NUMBER},
$FOX->{MD5DATE});

ID 生成時

my $idcrypt = &foxGetMD5id(
$GB->{FORM}->{'bbs'},#bbs
$GB->{MD5DATE},#日付
$FOX->{$GB->{FORM}->{'bbs'}}->{MD5NUMBER},#
$GB->{IDNOTANE}#
);


849FOX ★:04/12/14 19:19:05 ID:???
sub foxCheckMD5id
{
my ($bbs,$md5date,$num,$dateFox) = @_;
if($dateFox eq $md5date)
{
return $num;
}
return &foxCreateMD5id($bbs,$md5date);
}
850FOX ★:04/12/14 19:19:15 ID:???
sub foxGetMD5id
{
my ($bbs,$md5date,$num,$tane) = @_;
my $id = "FOX";

use Digest::MD5;
use Digest::MD5 qw(md5_hex);

my $idnum = md5_hex($tane);
my $md5 = Digest::MD5->new;
$md5->add(substr($idnum,-4));
$md5->add($bbs);
$md5->add($num);
$id = substr($md5->b64digest, 0, 8);

return $id;
}
851FOX ★:04/12/14 19:19:24 ID:???
sub foxInitMD5id
{
my ($bbs,$md5date) = @_;
my $md5datefile = "../$bbs/md5.cgi";

if(open(MD5FILE, "<$md5datefile"))
{
my $md5line = <MD5FILE>;
close(MD5FILE);
my ($a, $b) = split(/<>/, $md5line, 2);
return $b;
}
return &foxCreateMD5id($bbs,$md5date);
}
852FOX ★:04/12/14 19:19:36 ID:???
sub foxCreateMD5id
{
my ($bbs,$md5date) = @_;
my $md5datefile = "../$bbs/md5.cgi";
my $data = "ABCD";

sysopen(RANDOM, '/dev/random', O_READ) || die "cannot open /dev/random $!\n";
sysread(RANDOM, $data, 16);
close(RANDOM);

open(MD5FILE, ">$md5datefile");
print MD5FILE "$md5date<>$data";
close(MD5FILE);
chmod(0777, $md5datefile);

return$data;
}
853動け動けウゴウゴ2ちゃんねる:04/12/14 19:29:10 ID:dKRMgTcD
日付が変わったときに$FOX->{MD5DATE}を更新してないような気がする。
854FOX ★:04/12/14 19:32:22 ID:???
おおっ
855FOX ★:04/12/14 19:34:04 ID:???
>>848のbbs.cgi が呼ばれるたびにの部分を変更

$FOX->{$GBX->{FORM}->{'bbs'}}->{MD5NUMBER} = &foxCheckMD5id(
$GBX->{FORM}->{'bbs'},
$GBX->{MD5DATE},
$FOX->{$GBX->{FORM}->{'bbs'}}->{MD5NUMBER},
$FOX->{MD5DATE});
$FOX->{MD5DATE} = $GBX->{MD5DATE};
856FOX ★:04/12/14 19:34:27 ID:???
あつっ

これじゃまずいか。。。
857FOX ★:04/12/14 19:37:04 ID:???
ん?
そうでもないか?

なんか今日は調子悪いなぁ
こんな日は飲んだくれるに限るか、

>>855 になってます
おかしいとこ指摘よろしく〜
858FOX ★:04/12/14 19:55:01 ID:???
ex9 にいれてみるー

今晩、観察しててね
859動け動けウゴウゴ2ちゃんねる:04/12/14 19:57:18 ID:rV+STh14
>>858
つ[ヘパリーゼ]

いってらっしゃ〜い。
860動け動けウゴウゴ2ちゃんねる:04/12/14 22:27:28 ID:oYltBmUn
日付が変わったら無条件でmd5.cgiを作り直すのは
マズいような気がしてきた。
861動け動けウゴウゴ2ちゃんねる:04/12/14 22:32:17 ID:oYltBmUn
sub foxCheckMD5id
{
my ($bbs,$md5date,$num,$dateFox) = @_;
if($dateFox eq $md5date)
{
return $num;
}

my $md5datefile = "../$bbs/md5.cgi";
if(open(MD5FILE, "<$md5datefile"))
{
my $md5line = <MD5FILE>;
close(MD5FILE);
my ($a, $b) = split(/<>/, $md5line, 2);
if ($a eq $md5date) {
return $b;
}
}
return &foxCreateMD5id($bbs,$md5date);
}
862動け動けウゴウゴ2ちゃんねる:04/12/15 00:05:56 ID:MQM0IwBG
http://dso.2ch.net/test/read.cgi/myanmar/1101908313/291-296

日付の変わり目でIDが不安定になる模様。
863動け動けウゴウゴ2ちゃんねる:04/12/15 00:11:05 ID:aNf3D1eM
日付が変わってもIDが変わらないんですが仕様でしょうか
864動け動けウゴウゴ2ちゃんねる:04/12/15 00:15:25 ID:+e2zWYHe
ex7も日付の変わり目にIDが2回変わりました
865動け動けウゴウゴ2ちゃんねる:04/12/15 00:38:51 ID:gwIGlcO3
ex9の格闘技板ですが、日付変わってもID変わってません。
866FOX ★:04/12/15 05:37:18 ID:???
さて
どこに隙があるんだ?

ex7は旧来のままなんで「気のせい」ということで
よろしく
867動け動けウゴウゴ2ちゃんねる:04/12/15 10:29:18 ID:2HN9RP7L
>>866
どうせまたおまいがやったんだろ。
正直に言っちゃえよ、楽になるぞ。
868動け動けウゴウゴ2ちゃんねる:04/12/15 10:48:46 ID:nPZRecg/
かつどん、食うか?
869:04/12/15 14:18:29 ID:JexvqC49
 1)0時付近で変わっても気にしない
 2)自作自演昨日として宣伝
 3)Bananaはmaido3まで
870FOX ★:04/12/15 14:22:30 ID:???
>>861
ふむふむ

これにして今晩観察@ex9
871動け動けウゴウゴ2ちゃんねる:04/12/15 16:10:11 ID:lA5kU79o
旧式のID機能でも
23:59:59以前 -> 0:00:00ジャスト -> 0:00:01以降
で変化したことなら目撃したことあるよ
872動け動けウゴウゴ2ちゃんねる:04/12/15 17:15:52 ID:W8RTaBgB
>>871
それは/dev/urandom から取ってきたのを保存するファイルにロックをかけてないからでしょ?
873某ソレ47 ◆ap/yuix/tw :04/12/15 17:33:45 ID:9MQ67KRG
「IDは日付が変わるぐらいに変わります」でいいと思うけどな。
874動け動けウゴウゴ2ちゃんねる:04/12/15 17:44:55 ID:w6sVvVK6
・FreeBSD 5.xなら/dev/urandomよりも/dev/randomのほうが良いかも

・種ファイルをhogehoge_date "+%Y%M%d"という感じであらかじめ23:55ぐらいに自動生成してもいいのかも
日付が変わる時のロックがいらない。

・ロックファイルを作るときに、openした直後にunlinkするというTipsがある。
プロセスが異常終了したらOSによりunlinkされるし、動作中はunlinkされないので便利。
ttp://ns1.php.gr.jp/pipermail/php-users/2004-November/024120.html
875動け動けウゴウゴ2ちゃんねる:04/12/15 17:47:23 ID:w6sVvVK6
>874
あー間違えた。
date -v+1d "+%Y%M%d"のフォーマットで。という意味ね。
Perlで書き直す必要はあるけど。
876動け動けウゴウゴ2ちゃんねる:04/12/15 20:23:42 ID:Q4upOPsT
自動生成するんなら、シェルスクリプトにしてcronすればいい
877ひろゆき@どうやら管理人 ★:04/12/16 01:29:06 ID:???
headad.txtを読み込んでいない気がします。
http://life7.2ch.net/mental/index.html
878動け動けウゴウゴ2ちゃんねる:04/12/16 01:46:13 ID:QShzd4gV
そりゃあてぇheada
879FOX ★:04/12/16 05:59:16 ID:???
>>887
更新してからのタイムラグがあるという事ではなくて
実際に全然反映されていないですか?

もしタイムラグ(最大10分の設定)だったら
我慢できませんかねぇ?

全く反映されていない場合はなおすですー
でも今みると反映されているような、
880動け動けウゴウゴ2ちゃんねる:04/12/16 06:00:52 ID:WspjtZWV
未来レスハケーン!!
881FOX ★:04/12/16 06:01:57 ID:???
あっちゃ
882動け動けウゴウゴ2ちゃんねる:04/12/16 08:05:42 ID:B1hghx5+
ドンマイ
883 ◆MOMOwomoIk :04/12/16 08:29:08 ID:BfLokOIn
887のレスに弊社の社運を感じる。
884動け動けウゴウゴ2ちゃんねる:04/12/16 11:43:24 ID:/xbD7FnK
>850
my $idnum = md5_hex($tane);
$md5->add(substr($idnum,-4));

substrの-4って何だろう
IDの種類を制限するためのものだろうか
885未承諾広告※ ◆TWARamEjuA :04/12/16 12:35:25 ID:YtBnLjWr
>>884
65536種類に限定しているので、ごく希に違うホストなのに同じIDが出てアタフターな事が起こっているようなのです。
886 :04/12/16 14:01:03 ID:jwRKr/sP
>885
もしIDが(1日,1板で)65536種類に限定されているとするならば、
2つの別々のホストから同じIDが出る確率は(1日あたり)次の通りとなる

住人数  確率
   2:  0.0015%
  50:  1.8523%
 100:  7.2784%
 150: 15.6881%
 200: 26.2109%
 250: 37.8447%
 300: 49.6112%
 400: 70.4809%
 500: 85.1681%
1000: 99.9529%

…………到底 'ごくまれ' とはいえないな
単に '気づかないことが多い' だけだったのか
887動け動けウゴウゴ2ちゃんねる:04/12/16 14:17:41 ID:/1N3Xz1b
>>877
888FOX ★:04/12/16 14:20:53 ID:???
ID 生成部変更するなら今がチャンス !!
この機械を逃がすと・・・ 二度と変更されないかもだ
889動け動けウゴウゴ2ちゃんねる:04/12/16 14:24:02 ID:tP8FWzwJ
マッシーン
890某ソレ47 ◆ap/yuix/tw :04/12/16 14:25:05 ID:WAdG0w73
perl分からないよう。
この際IDの桁数を増やすとかどうでしょ。
891▲ 某ソレ511:04/12/16 14:56:50 ID:wMv6nQa3
s/a/あ/g;

ごめんなさい冗談ですすいませんで
892▲:/usr/local/bin/ch2 -o i686 ◆P8fXJj6wwo :04/12/16 15:02:14 ID:RQPFC9I6
890=891?
893動け動けウゴウゴ2ちゃんねる:04/12/16 16:35:56 ID:Ld17EnIJ
IDをIPの上位から生成するのはどうだろう。
繋ぎ換えでは変え難くなるし、ご近所さんが判って楽しい。
894動け動けウゴウゴ2ちゃんねる:04/12/16 17:46:11 ID:LwK82nGE
>>ヤクザ
いや、同じになったら意味ないでしょ。凄いことになっちゃうぞ。

IDは12桁ぐらいがいいかなぁ。長すぎてもあれだし。
あとついでだから日付だけじゃなくて年月も入れようぜ。
895FOX ★:04/12/16 17:52:30 ID:???
ちなみに
毎月同じ日にちの日は同じIDになるという噂があるど、

本当なの?
そして、なぜそうなるの?
896動け動けウゴウゴ2ちゃんねる:04/12/16 18:03:13 ID:YM1r77H0
中の人がわからんでどうする(^^;
897動け動けウゴウゴ2ちゃんねる:04/12/16 18:04:27 ID:1oNy+G3M
そういやなぜだろう……。
日替わり乱数が入ってるはずなのに。
898動け動けウゴウゴ2ちゃんねる:04/12/16 18:06:41 ID:Nkl1nYMn
固定IPだと毎月同日同板は同じIDになることあります。なんどか体験しました。
899FOX ★:04/12/16 18:08:36 ID:???
自分で書いたコードでさえ・・・なのに
いわんや・・・おや
900t522193.ipgw.phs.yoyogi.mopera.ne.jp ◆arc/U573Xw :04/12/16 18:43:41 ID:wzeJsHm/
>>895
規制議論でYahooの人のIDが一ヶ月前と一緒だった記憶がある。
901動け動けウゴウゴ2ちゃんねる:04/12/16 19:29:40 ID:LwK82nGE
乱数の初期化が怪しいと思われ。
ちゃんとseed渡してるの?
(渡してないと毎回同じ乱数しか出ないかも)

と思ったら/dev/randomか・・・
902動け動けウゴウゴ2ちゃんねる:04/12/16 19:35:49 ID:B1hghx5+
IDとトリップについて馬鹿の俺が天才な君達に質問
http://science3.2ch.net/test/read.cgi/math/1091321525/
903動け動けウゴウゴ2ちゃんねる:04/12/16 19:43:16 ID:218ZprIG
固定IPで同じ板に毎日かいてて、IDにUDだしたことある人は、毎月1台UD用PC追加・・・?
うそーんw
904未承諾広告※ ◆TWARamEjuA :04/12/16 22:39:23 ID:YtBnLjWr
sub Make_ID($$$){
# 引数は・・・
# 板名
# time 値
# IPアドレス
# 返り血はID文字列
use Digest::MD5;
my ($BBS_name, $time, $IP_Address) = @_;
my $ID_2ch = Digest::MD5->new();
$ID_2ch->add(qx|uname -v|); # 鯖固有の文字列とか。
$ID_2ch->add($BBS_name); # 板のディレクトリ名ね。
$ID_2ch->add(int($time/86400)); # 純粋に日を基準単位に。
$ID_2ch->add($IP_Address); # 丸ごと豆乳。
return substr($ID_2ch->b64digest,-9,8); # ちょんぎるして戻るり。
}

・/dev/random にアクセスしないのでHDDにも優しいかな?
・uname -v の値を知っている人は、★の中の人「だけ」だと思うし。
・IDが被る確率は、遙かに少なくなっていると思うし。
・なんてったってアイドルだし(はぁと)
905動け動けウゴウゴ2ちゃんねる:04/12/16 22:42:37 ID:CjZAgPUC
>>904
逆算しやすそうですね。
906動け動けウゴウゴ2ちゃんねる:04/12/16 22:49:36 ID:45hy3iTA
>>904
それだとわからないのはuname -vだけ
(自分のIPやら日付やらpathやらはわかる)
だからIPからuname を総当りで求めて
検証が終わったらば他の人のIPも求まるだろう。
32ビット整数ぐらい割といける。

そのためのrandomですよ。
907動け動けウゴウゴ2ちゃんねる:04/12/16 22:58:05 ID:il+sol+9
$time/86400 て必ず余らない時が00:00:00なの?
908未承諾広告※ ◆TWARamEjuA :04/12/16 22:58:06 ID:YtBnLjWr
>>906
> だからIPからuname を総当りで求めて
総当たりって!?うちの林檎機でもこれだけの文字列が出てくるけれども、、、

Macintosh:~ root# uname -v
Darwin Kernel Version 7.6.0: Sun Oct 10 12:05:27 PDT 2004; root:xnu/xnu-517.9.4.obj~1/RELEASE_PPC

あんぽんたんにでもわかりやすい解説キボンヌですm(_ _)m
909未承諾広告※ ◆TWARamEjuA :04/12/16 22:59:28 ID:YtBnLjWr
>>907
UTC だから、+ 9 * 3600 かもですm(_ _)m
910動け動けウゴウゴ2ちゃんねる:04/12/16 23:33:09 ID:45hy3iTA
uname -v だと公開してしまうと
ある程度書式がありますよね。

FreeBSDなら
FreeBSD 5.1-RELEASE-p8 #0: Sat Sep 27 11:17:53 GMT 2003
見たいな感じで

頭から言うと
FreeBSDは変わらないし、
バージョンだって10.20とかないし、
RELEASEでないとしてもSTABLEとかあるていどきまってるし、
年月日では
月はAprとかDecとかしか入らないとか
曜日はSunとかMonだとか
などと考えると組み合わせの数は現実的になりますよ。
そうするとOS頻繁に変えるとかいうんでなければ解析は可能でしょう。

んでunameが割れると今度はそっちにあててIP解析もできるんじゃないかなぁと。

っと長い割には判りにくいかもです。すいません。
911動け動けウゴウゴ2ちゃんねる:04/12/16 23:34:41 ID:il+sol+9
>>909
そこは足したり引いたりすればいいのか。

>>908
rootの中の人がうっかりuname -aの結果を書いたら祭り始まりの合図。
912動け動けウゴウゴ2ちゃんねる:04/12/16 23:37:54 ID:CjZAgPUC
まぁなんというか
静的な鍵の秘匿は難しいということで。
913root▲ ★:04/12/16 23:43:50 ID:???
>>911
うわ。
914動け動けウゴウゴ2ちゃんねる:04/12/16 23:52:59 ID:JGTpjxlP
>911
unam -a は、かなりの頻度で後悔されてます。

http://www6.big.or.jp/~beyond/bbsnews/proxy/operate/1093068260/
の215とか
915動け動けウゴウゴ2ちゃんねる:04/12/17 00:31:03 ID:hwJlyrsu
uname -aなんてホストごとの有効な違いが40bitぐらいしかないんじゃないの?

1024bitぐらい豪快にランダムのシードを用意しないとダメ。
パソコン数台で解析できる。
916動け動けウゴウゴ2ちゃんねる:04/12/17 00:38:35 ID:9Quw5NEA
っていうか、何でそんな逃げ方するんだろう
917FOX ★:04/12/17 01:16:42 ID:???
そもそも現在のやり方が決まった経緯は知っておいてくださいー
918動け動けウゴウゴ2ちゃんねる:04/12/17 01:19:13 ID:G5OuaUnj
>>917
教えてー
919マァヴ ★:04/12/17 01:37:16 ID:???
おいらかな?(^_^;)もしかして
920マァヴ ★:04/12/17 01:41:24 ID:???
1 旧IDはIPアドレスの特定が結構できてしまった
2 そこで新しくID生成ルーチンを作ろうと思った
3 しかしおいらにはそのスキルはなかった(^_^;)
4 どうせならルーチンを公開しても耐えられるもののほうがいいわけで・・・
5 スキルのある人よろしく・・・と公募した(ちょうどこのスレッドの展開みたいなもんですな(^_^;))
6 で、32bit総当り検索に耐えるために
  @非公開の鍵を使うことで、推定を難しくした(しかし、これだけではちと不安)
  AIPアドレスが違っても、ある程度の数の同じIDが出るようにした(つまりIPアドレスは特定不能)
って感じだったように覚えてます(^_^;)

って、そういう話じゃなくて?(^_^;)
921動け動けウゴウゴ2ちゃんねる:04/12/17 01:52:52 ID:Nh9fz2o6
IP:IDを多対一対応にすることで一の側からの元IP特定を防いだんか
922マァヴ ★:04/12/17 01:55:47 ID:???
>921
そゆことです(^_^;)なのである程度の重複は避けられないんだな。
923動け動けウゴウゴ2ちゃんねる:04/12/17 01:57:28 ID:9Ffq8Qsa
IDが同じになるのも別に悪いことじゃないと思います。
924動け動けウゴウゴ2ちゃんねる:04/12/17 01:58:39 ID:dhpgCm/v
ある程度っつっても相当稀なわけだし、構わないでしょ。
要は毎回呼ばれるような無駄な負荷を無くすのが今回の目的?
925マァヴ ★:04/12/17 02:00:22 ID:???
>924
多分・・・
1 ファイルオープンがもったいない(負荷軽減)
2 異月同日に同じIDが出てしまうらしいバグ対策
の2点かと(^_^;)
926FOX ★:04/12/17 02:00:57 ID:???
>>832 今回の目的
>>835 付随するお題
927動け動けウゴウゴ2ちゃんねる:04/12/17 02:57:29 ID:dBNnjMc9
928マァヴ ★:04/12/17 03:35:04 ID:???
当時のおいらってなんか頭の回転よかったらしい(^_^;)
今や何を話しているのか理解できん
929動け動けウゴウゴ2ちゃんねる:04/12/17 04:33:43 ID:PSEHRzSe
ひょっとして今起こっている「日付が変わってもIDが変わらない(ことがある)」ってのは
「異月同日に同じIDが出てしまうらしいバグ」の同工異曲かな?
今のIDルーチンには $md5->add(substr($DATE,6,2)); が入ってないから。
930動け動けウゴウゴ2ちゃんねる:04/12/17 04:42:47 ID:PSEHRzSe
ってことはたぶんmd5.cgiに日付だけ入ってて乱数部分が空っぽだったりすることがあるんじゃなかろうか。
931FOX ★:04/12/17 04:46:24 ID:???
f1 , intro @ex9 を見てきたけど
md5.cgi の中は 2004_12_04<>xxxxxxx になっているようです
932動け動けウゴウゴ2ちゃんねる:04/12/17 05:08:03 ID:JztV9bUh
933動け動けウゴウゴ2ちゃんねる:04/12/17 05:27:08 ID:hwJlyrsu
>IPアドレスが違っても、ある程度の数の同じIDが出るようにした(つまりIPアドレスは特定不能)

これって要するに
・まず自分のIPで書き込みをしてIDを出す
・出てきたIDと自分のIPでブルートフォース解析する
ってのに対処するため?

ブルートフォース耐性が最速のXeon Dual 1台で3年ぐらいの耐久度があれば多対1にする必要はないんじゃないかなぁ。
256bit AESあたりで落とし戸暗号化してしまえと。
IPアドレスは固定IPを持っている奴が解析するとして確定ずみ。
アルゴリズムも公知にしないと穴が怖い。

だから暗号鍵を256bitぐらいの大きさにしておけば良い、あらかじめ全部の暗号鍵をテーブル計算するのも難しいし。
なんだったら1024bit暗号にしておけば、世界中のHDDをあわせてもテーブル作れないし。
934FOX ★:04/12/17 05:44:11 ID:???
>>932

net@ex9 も

0004_12_16<>xxxxxxx の形になっているようです
935FOX ★:04/12/17 05:45:13 ID:???
>>933

〜〜をするためにってのも書いてもらえると
私にも理解できるかも知れません
936マァヴ ★:04/12/17 06:13:03 ID:???
>933
むずかしいことはよーわからんのだけど(^_^;)現在のIDは
1 秘密鍵はハッキング等によって取得される可能性がある
2 秘密鍵があれば、どのような経路をたどったとしても2^32の試行で結果が一致するIPアドレスをはじき出せる
3 IDの生成ルーチンは公開に耐えるものにする。
という前提で作られています。
結果
1 毎日変わる不定値の種を使う(最悪でも1日分の解析しかできない)
2 多対一に均等劣化した情報でIDを生成する(IPアドレスを特定できなくする)
という2つの防御策を組み込んだわけです。

前提条件の1、3については当時IDからIPアドレスが推定可能であったという
2chとしては致命的な欠陥が露呈した反動で厳しく考えていたということもあるかもしれません。
937動け動けウゴウゴ2ちゃんねる:04/12/17 06:31:45 ID:hwJlyrsu
>1 毎日変わる不定値の種を使う(最悪でも1日分の解析しかできない)
えーと基本的には1は同意です。

2についてです。多対1をやめて暗号鍵のbit数を増やして1対1にすることで、
「別人なのに同ID」という不具合を回避できるのではないかと思っています。

>1 秘密鍵はハッキング等によって取得される可能性がある
についてですが、/etc/sshd/sshd_*_keyと同じ程度の危険性しかないと思います。
仮にハッキングに成功したとしても、24時間で更新されてしまうのであれば
IDからIPを現実的な速度で解析するチャンスはその日だけとも考えられますし。
(IP→IDへはSHAなりMD5なりのハッシュで一瞬のうちに計算できるが。
逆の方向はは2^32をすべて計算して一致するIDを求めるしかない。
そしてそのハッシュのシードは24時間で更新される)
938動け動けウゴウゴ2ちゃんねる:04/12/17 06:41:54 ID:lxK8tB0E
それって不具合なの?
むしろ匿名性の保障だと思うんだけど。
939動け動けウゴウゴ2ちゃんねる:04/12/17 07:23:28 ID:8XzIx/Kf
ひょっとしてバイナリデータを<>で読み込んでるせい?>異月同日に同じIDが出てしまうらしいバグ
\nが混じってたらそこでちょん切れちゃうもんね。
940動け動けウゴウゴ2ちゃんねる:04/12/17 07:39:34 ID:hwJlyrsu
>938
解析できないぐらい強ければ「別人なのに同ID」を回避して、かつ匿名性を保障できると思います。
941未承諾広告※ ◆TWARamEjuA :04/12/17 07:43:24 ID:QLF5cOPs
ふむふむ。。。
今日は忘年会なのでその最中に練ってみよう。こねこね。
942動け動けウゴウゴ2ちゃんねる:04/12/17 07:55:58 ID:vmuU5+9q
別な人なのに同じIDがあるほうが精神的に安心感があるんだけどな
943動け動けウゴウゴ2ちゃんねる:04/12/17 08:44:55 ID:HF3zdBbN
>>940
「別人なのに同ID」を回避するってことは
IDによる発言者特定能力を向上させるってことで
つまりあなたは「匿名性を今より下げろ」と言ってるわけで。
944動け動けウゴウゴ2ちゃんねる:04/12/17 08:48:32 ID:qi3emKIQ
自演がばれても強引に逃げ切れるからな
945動け動けウゴウゴ2ちゃんねる:04/12/17 08:52:54 ID:12mTv2X7
同一ID出たら
「同じIDキタ━━━━(゚∀゚)━━━━ッ!!」
でおkじゃないのか(´・ω・`)??
946FOX ★:04/12/17 12:25:41 ID:???
そのへんの話しは、、、
思想の問題ですからねぇ

別スレでじっくり話し合ってもらって
このスレでは実装の話しということで、

>>939
なのか?
947動け動けウゴウゴ2ちゃんねる:04/12/17 13:13:02 ID:iN005kvY
ID生成サーバをつくってもいいかもしれないと言ってみるテスト
948動け動けウゴウゴ2ちゃんねる:04/12/17 14:37:54 ID:f5F+79b8
板ごとに何かわからない鍵の部分が必要って事でしょ?
サーバー毎になると同じサーバー内の板を「神のIDキター」とか言いながら
走り回る奴が出ると。

サーバーが落ちた時にIDが変わってもいいのなら、
メモリの上に置くのが現実的かなぁ。
949FOX ★:04/12/17 14:40:04 ID:???
特に問題ないようなので
これで fix と、

次回は何年後かな?
950動け動けウゴウゴ2ちゃんねる:04/12/17 14:42:48 ID:MkYoPPBn
i/oについても今のままでいいの?
951FOX ★:04/12/17 14:43:23 ID:???
というと?
952動け動けウゴウゴ2ちゃんねる:04/12/17 14:46:01 ID:MkYoPPBn
i/oが前よりも減ったのかなと
953FOX ★:04/12/17 14:49:28 ID:???
実装されたソースはこのスレに出ているだす。
954動け動けウゴウゴ2ちゃんねる:04/12/17 14:52:13 ID:MkYoPPBn
単純にリーモトアドレスの一部分とサーバ名と年月日を種に
crypt使ってIDを生成すればいいのではないかなとか
これならi/oなしだし
955動け動けウゴウゴ2ちゃんねる:04/12/17 15:09:47 ID:LJld9HgJ
>>904
のやつみたいなかんじかな。
上のほうで解析とか色々あったけど
重複いっぱいあるなら完全に解析はむりだから
良いんじゃないかという気もする。

もう終わったようなのでどうでもいいか。
956動け動けウゴウゴ2ちゃんねる:04/12/17 15:21:56 ID:MkYoPPBn
>>955
たしかにそんな気もするが何かのネタにでもなればいいか

#!/usr/local/bin/perl

ID();
print "$ID\n";
exit;

sub ID
{
$server="operate";
$time= localtime(time);
$H="211.132.146.94";
@I= split(/\./,$H);
$host= substr($I[3],-2) . substr($I[2],-2) . substr($I[1],-2);
$tane= $host . $server;
$ID= substr(crypt(crypt(crypt($str,$time[5]),$time[4]),$time[3]),-8);
$ID=~ s/\./+/g;
return $ID;
}
957マァヴ ★:04/12/17 15:27:20 ID:???
うん・・・・確かにそんな気がしてきた(^_^;)
ランダムな日替わりシードがない場合に問題になる点
・逆算が可能・・・しかし多対一変換なのでIP特定不能
・他の日のIDとの比較が可能・・・しかし多対一変換なので65535通りの結果が・・・・
あれ?(^_^;)65535個の解答パターンマッチングでIP同定は可能なのか・・・・(^_^;)おしい
958某ソレ47 ◆ap/yuix/tw :04/12/17 15:31:48 ID:R2DZnuKy
>>936

> 1 秘密鍵はハッキング等によって取得される可能性がある
> 2 秘密鍵があれば、どのような経路をたどったとしても2^32の試行で結果が一致するIPアドレスをはじき出せる

ハッキングされれば、書き込みログ(規制議論板で行われてるログ開示のやつ)がとられちゃうんでは?
ハッキングされてもIDからIPアドレスをわからないようにしよう、というのは無駄なような気がします。
959動け動けウゴウゴ2ちゃんねる:04/12/17 15:36:08 ID:MkYoPPBn
まちがえてるし・・
IPは下三つの2桁のみ使用なので逆算は無理のはず

#!/usr/local/bin/perl

ID();
print "$ID\n";
exit;

sub ID
{
$server="operate";
$time= localtime(time);
$H="211.132.146.94";
@I= split(/\./,$H);
$host= substr($I[3],-2) . substr($I[2],-2) . substr($I[1],-2);
$tane= $host . $server;
$ID= substr(crypt(crypt(crypt($tane,$time[5]),$time[4]),$time[3]),-8);
$ID=~ s/\./+/g;
return $ID;
}
960マァヴ ★:04/12/17 15:46:20 ID:???
>958
そなんだよね(^_^;)
ただハッキング等の「等」の部分がちょっとだけ安心ってくらいで。
961動け動けウゴウゴ2ちゃんねる:04/12/17 16:41:03 ID:f5F+79b8
多対1でも、絞り込めたら

ちょっとこれ見てよ。これが証拠。
http://localhost/images/shouko.jpg

とかやってうっかりアクセスするような事があったら
962マァヴ ★:04/12/17 17:08:04 ID:???
>961
localhostを見せられても・・・・(^_^;)
963動け動けウゴウゴ2ちゃんねる:04/12/17 17:10:56 ID:QQyWdoF1
リンク先でIP抜かれるのは明らかに2ちゃんねるのせいじゃないな。
自分の無知を棚上げして2ちゃんねるのせいにしようとする人は後を経たないけど。
964▲:/usr/local/bin/ch2 -o i686 ◆P8fXJj6wwo :04/12/17 18:20:57 ID:iN005kvY
(私のいない)今夜中には次スレでつかね

>>961
w
965動け動けウゴウゴ2ちゃんねる:04/12/19 00:37:20 ID:bJgnyZ3f
>>961
漏れの鯖にはshouko.jpgなどない
966名無しさんの助言 ◆JogenOuJ66 :04/12/19 13:05:46 ID:vFRjseQ2
ヲチ板(net@ex9)にて、「日付が変わってもIDが変わっていない」という現象が起きているようです。
「日付が変わった直後の数分・数十分単位での遅れ」ではないようですが・・・

ひょっとして、「日替わりの種」が変わってないのかな?
967動け動けウゴウゴ2ちゃんねる:04/12/19 13:32:18 ID:+bvhVPBV
>>966
サカ板もです。
ex9はみんな変わらなくなってしまっているみたいですね。
968動け動けウゴウゴ2ちゃんねる:04/12/19 16:22:45 ID:P57iDQ2u
ここ2〜3日日付が変わってもすぐにIDが変わらない人が続出してるんですが
何かあったのでしょうか。
数分たったら変わってるようですけど。
とりあえず実況のいくつかの鯖で確認しています。

ちなみにこんなスレも立ってる

日付が変わってもID変わらなくなった。
http://qb5.2ch.net/test/read.cgi/operate/1103382206/
969動け動けウゴウゴ2ちゃんねる:04/12/19 16:29:35 ID:y0gTuPMa
foxInitMD5idにdateのチェックが入っていない気がする。
970名無しさんの助言 ◆JogenOuJ66 :04/12/19 16:42:53 ID:vFRjseQ2
私が確認したスレでは、朝の10時半頃になっても「前日と同じID」で発言してる人がいました。
何なんでしょうね・・・
971名無しさんの助言 ◆JogenOuJ66 :04/12/19 16:43:25 ID:vFRjseQ2
あ、ちなみに今はもう変わっているようです。
連投スマソ。
972動け動けウゴウゴ2ちゃんねる:04/12/19 16:47:42 ID:P57iDQ2u
>>970
深夜ではなくて?
973動け動けウゴウゴ2ちゃんねる:04/12/19 16:57:14 ID:+bvhVPBV
サッカー日本代表板は24時間たってもまだID変わりません…
974動け動けウゴウゴ2ちゃんねる:04/12/19 17:24:13 ID:oUX46L4v
ex9 ヲチ板ですが、なんか12:00ぐらいにIDが変化している感じです。

00:00にIDが変化するよりこの方が面白かったりして。
日付の変化でIDが変わると思い込んでいた、光臨電波さんが
自爆してくれましたから。
975動け動けウゴウゴ2ちゃんねる:04/12/19 17:57:47 ID:IX1QySir
bbs.cgi(Speedy版) を地震板に入れないの?
976動け動けウゴウゴ2ちゃんねる:04/12/19 18:01:46 ID:L5RYXUc8
自分が電波になったときのことを考えてもみろよ!!!
977動け動けウゴウゴ2ちゃんねる:04/12/19 18:12:09 ID:DRwUF8PU
ふむ
978動け動けウゴウゴ2ちゃんねる:04/12/19 18:41:25 ID:ErWKvE2v
>>974
どのスレですかい?
というか初めてヲチ板行ったけどえらく酷い板やね
979動け動けウゴウゴ2ちゃんねる:04/12/19 19:28:02 ID:i78ptJLc
つなぎかえれば変わるよね
980動け動けウゴウゴ2ちゃんねる:04/12/19 19:43:21 ID:G7bl1l+3
つなぎ変え+IDが固定されてる+IDが1対1対応の場合
数日前の誰かと同じIDを出したとき、
その投稿のIPが自分のIPと同一であることが確かめることができるね。

あっ、日付が変わってもID変わらなくなった話はこっちでね。
       ↓
http://qb5.2ch.net/test/read.cgi/operate/1103382206/
981動け動けウゴウゴ2ちゃんねる:04/12/20 00:58:18 ID:0ryuxRoT
まずPerl使ってる時点でアレだと思うが…。

PHPとかJSPにしとけよ
982動け動けウゴウゴ2ちゃんねる:04/12/20 01:15:13 ID:c8t7lgDF
>>852
下から2行目;

rerurn と $data の間にスペースがないけど問題ないですか?

983FOX ★:04/12/20 01:31:40 ID:???
>>982
それは投稿したときになっているだけのような、

984FOX ★:04/12/20 01:31:55 ID:???
こうすればいいのかな?

sub foxInitMD5id
{
my ($bbs,$md5date) = @_;
my $md5datefile = "../$bbs/md5.cgi";

if(open(MD5FILE, "<$md5datefile"))
{
my $md5line = <MD5FILE>;
close(MD5FILE);
my ($a, $b) = split(/<>/, $md5line, 2);
if($a eq $md5date){return $b;}
}
return &foxCreateMD5id($bbs,$md5date);
}
985動け動けウゴウゴ2ちゃんねる:04/12/20 01:32:34 ID:A4RIs66W
ccc
986動け動けウゴウゴ2ちゃんねる:04/12/20 01:36:27 ID:c8t7lgDF
>>983
そうですか・・・。

$GBX->{MD5DATE}はいつ更新されるんですか?bbs.cgiが呼ばれる度?
987FOX ★:04/12/20 01:55:25 ID:???
Tiger全部
news18/19 live16 hobby7 life7 game9/10 ex7
Cobra全部
live8
Banana一台
ex9

のbbs.cgi を -M64 で統一した。
988root▲ ★:04/12/20 01:56:49 ID:???
>>987
了解です。

ちとしんどくなってきたんで、
# ひととおりoperateのスレ巡回したら、今日は負け組みへと。
989動け動けウゴウゴ2ちゃんねる:04/12/20 02:24:00 ID:kemRGws1
>>981
処理時間
PHP>Perl>>>>>>>>>>JSP

しかし中の人はJSP(J2EE)書けないらしい・・・
990FOX ★:04/12/20 02:25:40 ID:???
わたし
JSP 聞いたことも無い
PHP 名前は知っているけど、一度も書いたことが無い
Perl 書いたことはあるが、文法すら知らない、

な状態です
991動け動けウゴウゴ2ちゃんねる:04/12/20 02:42:54 ID:Sh0Xrvwv
>981
PerlよりPHPの方が軽くて速いは本当?(CGI編)
http://www.hippo2000.info/perl/tbench.htm

Perlだからといって遅いわけではない。
「Perlは無条件に遅い」と思っている奴はmod_perlを知らない古い伝説を聞きかじりしているだけ。
もちろんPerlを速く書くにはコーディング能力がそれなりに高い必要はあるが。
992動け動けウゴウゴ2ちゃんねる:04/12/20 05:28:25 ID:17NZO5ne
>>991
じゃ俺は無敵だな
今からスタイルノートでHTMLから勉強してくるよ
993FOX ★:04/12/20 06:21:47 ID:???
SpeedyCGI での Signal の受け取り方どうやるか知ってる?
994動け動けウゴウゴ2ちゃんねる:04/12/20 07:03:58 ID:kemRGws1
スケーラビリティ
JSP>>>>>>>>>>Perl=PHP

スループット
JSP>>>>>>>>>>Perl=PHP

正規表現の自由度
PHP>Perl>JSP

適当なWebアプリケーションサーバでも買ってもらいましょう
ttp://www.beasys.co.jp/products/weblogic/server/index.html
995動け動けウゴウゴ2ちゃんねる:04/12/20 07:05:31 ID:kemRGws1
ちなみに Amazon.com は上の製品でできてます。(Amazon.co.jpは違う)
996動け動けウゴウゴ2ちゃんねる:04/12/20 07:09:28 ID:kemRGws1
社員乙(お約束)
997動け動けウゴウゴ2ちゃんねる:04/12/20 07:11:39 ID:xXkdr1qa
ってかFOX さんは、少なくとも20個くらいは
言語知ってる結構凄腕のプログラマだと思ってた

ちゃうのん?
998動け動けウゴウゴ2ちゃんねる:04/12/20 07:25:46 ID:wlKcM/4M
JSPなんてみんなしょうがなくて使ってると思ってたのに、信者がいるとは・・・
俺的には、Velocity+Turbineだな
999動け動けウゴウゴ2ちゃんねる:04/12/20 07:26:57 ID:W3HLUHRQ
JSP+Struts 派
1000動け動けウゴウゴ2ちゃんねる:04/12/20 07:27:32 ID:f2q8ac+W
次スレ立てる前に一時避難、ってことで。

質問・雑談スレ86@運用情報板
http://qb5.2ch.net/test/read.cgi/operate/1103460767/l50
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。