X



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

レス数が1000を超えています。これ以上書き込みはできません。
1桃太郎 ★
垢版 |
04/12/02 19:52:43ID:???
peko鯖の稼動によりボトルネックの一つである事がより明らかになった
bbs.cgi作り直しプロジェクトです。

開発環境の工事現場
また挑戦。@2ch掲示板http://dso.2ch.net/myanmar/

関連は>>2-
04/12/16 18:43:41ID:wzeJsHm/
>>895
規制議論でYahooの人のIDが一ヶ月前と一緒だった記憶がある。
04/12/16 19:29:40ID:LwK82nGE
乱数の初期化が怪しいと思われ。
ちゃんとseed渡してるの?
(渡してないと毎回同じ乱数しか出ないかも)

と思ったら/dev/randomか・・・
04/12/16 19:35:49ID:B1hghx5+
IDとトリップについて馬鹿の俺が天才な君達に質問
http://science3.2ch.net/test/read.cgi/math/1091321525/
04/12/16 19:43:16ID:218ZprIG
固定IPで同じ板に毎日かいてて、IDにUDだしたことある人は、毎月1台UD用PC追加・・・?
うそーんw
04/12/16 22:39:23ID: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が被る確率は、遙かに少なくなっていると思うし。
・なんてったってアイドルだし(はぁと)
04/12/16 22:42:37ID:CjZAgPUC
>>904
逆算しやすそうですね。
04/12/16 22:49:36ID:45hy3iTA
>>904
それだとわからないのはuname -vだけ
(自分のIPやら日付やらpathやらはわかる)
だからIPからuname を総当りで求めて
検証が終わったらば他の人のIPも求まるだろう。
32ビット整数ぐらい割といける。

そのためのrandomですよ。
04/12/16 22:58:05ID:il+sol+9
$time/86400 て必ず余らない時が00:00:00なの?
04/12/16 22:58:06ID: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
04/12/16 22:59:28ID:YtBnLjWr
>>907
UTC だから、+ 9 * 3600 かもですm(_ _)m
04/12/16 23:33:09ID: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解析もできるんじゃないかなぁと。

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

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

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

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

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

http://ex9.2ch.net/test/read.cgi/net/1101449147/645
http://ex9.2ch.net/test/read.cgi/net/1101449147/668
04/12/17 05:27:08ID: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:11ID:???
>>932

net@ex9 も

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

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

前提条件の1、3については当時IDからIPアドレスが推定可能であったという
2chとしては致命的な欠陥が露呈した反動で厳しく考えていたということもあるかもしれません。
04/12/17 06:31:45ID: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時間で更新される)
04/12/17 06:41:54ID:lxK8tB0E
それって不具合なの?
むしろ匿名性の保障だと思うんだけど。
04/12/17 07:23:28ID:8XzIx/Kf
ひょっとしてバイナリデータを<>で読み込んでるせい?>異月同日に同じIDが出てしまうらしいバグ
\nが混じってたらそこでちょん切れちゃうもんね。
04/12/17 07:39:34ID:hwJlyrsu
>938
解析できないぐらい強ければ「別人なのに同ID」を回避して、かつ匿名性を保障できると思います。
04/12/17 07:43:24ID:QLF5cOPs
ふむふむ。。。
今日は忘年会なのでその最中に練ってみよう。こねこね。
04/12/17 07:55:58ID:vmuU5+9q
別な人なのに同じIDがあるほうが精神的に安心感があるんだけどな
04/12/17 08:44:55ID:HF3zdBbN
>>940
「別人なのに同ID」を回避するってことは
IDによる発言者特定能力を向上させるってことで
つまりあなたは「匿名性を今より下げろ」と言ってるわけで。
04/12/17 08:48:32ID:qi3emKIQ
自演がばれても強引に逃げ切れるからな
04/12/17 08:52:54ID:12mTv2X7
同一ID出たら
「同じIDキタ━━━━(゚∀゚)━━━━ッ!!」
でおkじゃないのか(´・ω・`)??
946FOX ★
垢版 |
04/12/17 12:25:41ID:???
そのへんの話しは、、、
思想の問題ですからねぇ

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

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

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

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

もう終わったようなのでどうでもいいか。
04/12/17 15:21:56ID: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;
}
04/12/17 15:27:20ID:???
うん・・・・確かにそんな気がしてきた(^_^;)
ランダムな日替わりシードがない場合に問題になる点
・逆算が可能・・・しかし多対一変換なのでIP特定不能
・他の日のIDとの比較が可能・・・しかし多対一変換なので65535通りの結果が・・・・
あれ?(^_^;)65535個の解答パターンマッチングでIP同定は可能なのか・・・・(^_^;)おしい
04/12/17 15:31:48ID:R2DZnuKy
>>936

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

ハッキングされれば、書き込みログ(規制議論板で行われてるログ開示のやつ)がとられちゃうんでは?
ハッキングされてもIDからIPアドレスをわからないようにしよう、というのは無駄なような気がします。
04/12/17 15:36:08ID: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;
}
04/12/17 15:46:20ID:???
>958
そなんだよね(^_^;)
ただハッキング等の「等」の部分がちょっとだけ安心ってくらいで。
04/12/17 16:41:03ID:f5F+79b8
多対1でも、絞り込めたら

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

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

>>961
w
04/12/19 00:37:20ID:bJgnyZ3f
>>961
漏れの鯖にはshouko.jpgなどない
04/12/19 13:05:46ID:vFRjseQ2
ヲチ板(net@ex9)にて、「日付が変わってもIDが変わっていない」という現象が起きているようです。
「日付が変わった直後の数分・数十分単位での遅れ」ではないようですが・・・

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

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

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

00:00にIDが変化するよりこの方が面白かったりして。
日付の変化でIDが変わると思い込んでいた、光臨電波さんが
自爆してくれましたから。
04/12/19 17:57:47ID:IX1QySir
bbs.cgi(Speedy版) を地震板に入れないの?
04/12/19 18:01:46ID:L5RYXUc8
自分が電波になったときのことを考えてもみろよ!!!
04/12/19 18:12:09ID:DRwUF8PU
ふむ
04/12/19 18:41:25ID:ErWKvE2v
>>974
どのスレですかい?
というか初めてヲチ板行ったけどえらく酷い板やね
04/12/19 19:28:02ID:i78ptJLc
つなぎかえれば変わるよね
04/12/19 19:43:21ID: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:18ID:0ryuxRoT
まずPerl使ってる時点でアレだと思うが…。

PHPとかJSPにしとけよ
04/12/20 01:15:13ID:c8t7lgDF
>>852
下から2行目;

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

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

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

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);
}
04/12/20 01:32:34ID:A4RIs66W
ccc
04/12/20 01:36:27ID:c8t7lgDF
>>983
そうですか・・・。

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

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

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

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

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

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

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

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

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

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

質問・雑談スレ86@運用情報板
http://qb5.2ch.net/test/read.cgi/operate/1103460767/l50
レス数が1000を超えています。これ以上書き込みはできません。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。