書き込みログのIP&リモホを見た目わからなくする方法を考えよう
サーバ乗っ取られて書き込みログを見られてもokにしよう。
IPアドレスとかリモホり部分っすね、
これが出来たら、乗っ取られたっていいジャン! になる。
誰か方法考えてちょ ここの議論結果が結論となるわけでなし。
ここでできるのは、選択肢と論点と考え方を提示することくらい。 と言うかよく考えたらこのスレの大前提である「書き込みログを見られない様に」って本当に必要なの?
今まで通り基本非開示で裁判所の命令とか荒らし対策とかで開示する、って運営じゃダメなの?
「基本非開示だけど外的要因で2ちゃんねるの意図ではなく開示されてしまうことがある」って書いておけば良いんじゃね。
というか書かなくてもよいんじゃね?あくまでも外的要因だから。「IP非開示は保証の限りではない」位で?
簡単に実装出来てかつ負荷無く動作するんなら有った方が良いんだろうけど・・・
それともやはり匿名性は可能な限り確保したいのかな。それが2ちゃんねるの売りでもあるから >>133
(希望する機能がある)Perlのモジュールがあればいいのだが
Base64の機能があるとは知らず自前で作ってしまった 公開鍵方式 にこだわってる低脳なバカが一匹いるな
それにもう一匹に噛み付きまくってる
躾のなってない基地外か。 use Benchmark;
use Crypt::CBC;
use Crypt::OpenSSL::RSA;
# CBC / Blowfish の準備
my $Blowfish = Crypt::CBC->new({'key' => 'angokey', 'cipher' => 'Blowfish'});
# RSA の準備
my $Rsa = Crypt::OpenSSL::RSA->generate_key(1024);
my $count = 100000;
my $UserInfo = 'user0721.isp.2ch.net<>127.0.0.1<>marumaru<>Monazilla/1.00';
timethese($count, {
'Nama' => sub{$UserInfo}, # 何もしない
'CBC-Blowfish' => sub{$Blowfish->encrypt($UserInfo)},
'OpenSSL-RSA' => sub{$Rsa->encrypt($UserInfo)}
}); 結果
CBC-Blowfish: 20 wallclock secs (15.98 usr + 3.30 sys = 19.28 CPU) @ 5186.18/s(n=100000)
Nama: 0 wallclock secs (-0.00 usr + 0.00 sys = -0.00 CPU) @ -28147497671065600000.00/s (n=100000)
OpenSSL-RSA: 8 wallclock secs ( 7.94 usr + 0.00 sys = 7.94 CPU) @ 12599.22/s(n=100000)
Blowfishの方が重いのは、
http://perldoc.jp/docs/modules/Crypt-CBC-2.08/CBC.pod
> 暗号と復号の処理は同等の(Cでコンパイルされた)SSLeayプログラムよりも
> 10分の1ほどの速度です。
> これをCで実装することによって改善することができるでしょう。
という部分の差ってことなのかな。 OpenSSL::Blowfish もあったので
# CBC / OpenSSL / Blowfish の準備
my $OsslBlowfish = Crypt::CBC->new({'key' => 'angokey', 'cipher' => 'OpenSSL::Blowfish'});
'CBC-OSSL-Blowfish' => sub{$OsslBlowfish->encrypt($UserInfo)}
を追加して試す。
結果
CBC-Blowfish: 19 wallclock secs (15.53 usr + 3.31 sys = 18.84 CPU) @ 5307.01/s(n=100000)
CBC-OSSL-Blowfish: 18 wallclock secs (14.50 usr + 3.28 sys = 17.78 CPU) @ 5623.66/s (n=100000)
Nama: 0 wallclock secs ( 0.00 usr + 0.00 sys = 0.00 CPU) @ 100000000.00/s (n=100000)
OpenSSL-RSA: 8 wallclock secs ( 7.83 usr + 0.00 sys = 7.83 CPU) @ 12774.66/s(n=100000)
大して変わらなかった。 >>139
文字数が多くなっただけ重くなるとか?
長いリモホ
CPE00248c15080f-CM0014e82750b2.cpe.net.cable.rogers.com
長いUA
Mozilla/5.0(iPad; U; CPU iPhone OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B314 Safari/531.21.10
極端に重くなるようだったら暗号化鯖でも作ってソケット経由で丸投げした方がいいかもしれん
複合化鯖はqb7以外からの接続拒否 use Benchmark;
use Crypt::CBC;
use Crypt::OpenSSL::RSA;
# CBC / Blowfish の準備
my $Blowfish = Crypt::CBC->new({'key' => 'angokey', 'cipher' => 'Blowfish'});
# RSA の準備
my $Rsa = Crypt::OpenSSL::RSA->generate_key(1024);
# CBC / OpenSSL / Blowfish の準備
my $OsslBlowfish = Crypt::CBC->new({'key' => 'angokey', 'cipher' => 'OpenSSL::Blowfish'});
my $count = 100000;
my $UserInfo = 'user0721.isp.2ch.net<>127.0.0.1<>marumaru<>Monazilla/1.00';
timethese($count, {
'CBC-Blowfish' => sub{$Blowfish->encrypt($UserInfo)},
'OpenSSL-RSA' => sub{$Rsa->encrypt($UserInfo)},
'CBC-OSSL-Blowfish' => sub{$OsslBlowfish->encrypt($UserInfo)}
});
$UserInfo = 'CPE00248c15080f-CM0014e82750b2.cpe.net.cable.rogers.com<>127.0.0.1<>marumaru<>
Mozilla/5.0(iPad; U; CPU iPhone OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B314 Safari/531.21.10';
timethese($count, {
'CBC-Blowfish' => sub{$Blowfish->encrypt($UserInfo)},
'OpenSSL-RSA' => sub{foreach($UserInfo =~ /.{1,86}/g){$Rsa->encrypt($_)}},
'CBC-OSSL-Blowfish' => sub{$OsslBlowfish->encrypt($UserInfo)}
}); 結果
短い方
CBC-Blowfish: 19 wallclock secs (15.73 usr + 3.00 sys = 18.73 CPU) @ 5337.89/s(n=100000)
CBC-OSSL-Blowfish: 17 wallclock secs (14.39 usr + 3.24 sys = 17.63 CPU) @ 5673.76/s (n=100000)
OpenSSL-RSA: 8 wallclock secs ( 7.83 usr + 0.00 sys = 7.83 CPU) @ 12774.66/s(n=100000)
長い方
CBC-Blowfish: 27 wallclock secs (23.77 usr + 3.20 sys = 26.97 CPU) @ 3707.96/s(n=100000)
CBC-OSSL-Blowfish: 25 wallclock secs (22.19 usr + 3.16 sys = 25.34 CPU) @ 3945.71/s (n=100000)
OpenSSL-RSA: 24 wallclock secs (23.95 usr + 0.00 sys = 23.95 CPU) @ 4174.67/s (n=100000)
まあ大きくなれば遅くなるわね。
RSAでは、一回分の大きさを超えてしまったので、分割して暗号化。
差が縮まったのは、このせいで padding が増えて、効率が下がったせいかな。 サーバ侵入に備えての暗号化で、復号鍵(とか復号に必要なもろもろ)を
サーバに保存するには、復号作業用サーバの安全性が問題になるわけだけど、
ここのところの各機能の開発状況を見ていると、qb7 が一般サーバより
安全になるとは思えないんだよねえ。
この先変わるのかな。
作業者に復号鍵を持たせるのは面倒じゃないか、
暗号化の重さに見合う利益はあるか、
侵入対策が侵入されたら解読される程度でいいのか。
何をしても費用対効果は悪いねえ。 やっぱりログファイル丸ごと負荷の少ない時間に暗号化するのが現実的なのかな
OSの機能で暗号化するとおそらくハッキングに対しては無力だし、書き込みのたびにログを暗号化すると負荷がどれ位掛かるのか判らない >>147
書き込みログの形式にもよるけどな
apacheのようなログであれば(時間毎などで)分割すればいいけど
2chブラウザが取得してるようなdatファイルに追記してるならファイル丸ごとなんてことは不可能
それに負荷が低い時にまとめてとあるけど
負荷が高いまま数十時間やられたらどうしようもないな
特に、実況板(ログとって無いとかほざくやつは実況板で犯罪予告してこいや) (A)
投稿時には、1294604913_20110123.log のようなスレ・日単位で生ログファイルを作成。
暗号化時には、ファイルごと暗号化し、生ログを削除。
(B)
投稿時には、従来通りスレ単位の生ログファイルを作成。
暗号化時には、投稿1件分ずつ暗号化して、暗号化ログファイルに追記、生ログを削除。
Aだと、投稿内容とか暗号化の必要がないものも暗号化することになるし、
復号もファイル全体になるので、効率が悪いかな。
Bなら、ログの内からIPアド等の非公開部分だけ暗号化すればいい。
復号も投稿1件ずつすることが可能。
ランダムデータを付加するとしても、データ量はAよりは少ないか。 みんなの意見をいろいろ考えてみた。
まずは一歩踏み出してみることにしよう。
一歩目は、書き込みログが外に漏れても普通の人はよくわからなくする。
IPアドレスとリモホ(●やbeの情報を含む)の部分だけやってみるだす。
漏れても解析にそれなりの時間がかかるような方法にしてみるです
そのサーバが乗っ取られてもすぐには何もできないように他のサーバにアクセスしなきゃ
いけないっていうのもハードルが一つ上がるのでやってみようと思っていまーす
myanmar yangon sakhalin @dso が自分でPerlのモジュールを入れられないなぁ
qb5 もかぁ・・・
こりゃちと面倒だなぁ
use Crypt::CBC ;
とかやりたいんだけど、Perlで CBCモジュールが入っていたらとかって
記述できるの? toki , hibari , yuzuru のPerlを再インストールしなきゃならないらしい。
そのときはサーバ止める予定。 ふむふむ、こうやればいいのか
sub check_module {
my $module = $_[0];
# モジュールが存在すれば読み込む
eval "use $module;";
if ($@) {
return 0;
} else {
return 1;
}
} これを実施したことによって影響でそうなのものは
Boo
Boo2BBQ
こらこら
この辺りかな 書き込みログを利用しているものが影響するので、
BBM,p2 は問題ないです。 (共に登録するだけ) この改造により修正したもの
1. わたしの芋掘り機
2. 削除人さん用芋掘り機
3. こらこら
4. boo (hatoに改造したのあります、配っていません)
の四つです。
まずこれらを全サーバに配ってきます。 (4は除く) >>160 くばった
ではいよいよbbs.cgiを全サーバにくばりまーす みごとに、ここdsoは500になっちゃった
元に戻した @dso 改造前と、改造後の報告は、混同しちゃだめ?
改造前のログは掘れる?
もとにもどした @qb5
このサーバPerlモジュールが足りないのよネ
それで >>154 っぱく作ったつもりなんだけど、うまくいかなかったと。 がっくしではPerlモジュールの処理をこんな風にしていたり。
sub EnableGzip
{
foreach (@INC) {
if (open(LIB, '<' . $_ . '/Compress/Zlib.pm')) {
my $is_zlib = grep(/sub memGunzip/, <LIB>);
close(LIB);
if ($is_zlib) {
$CONFIG{'enable_gzip'} = 1;
return(require('Compress/Zlib.pm'));
}
}
}
}
libプラグマとかどうでしょ
use lib "/path/to/library";
あとopenはopen(fh, mode, filename); てすと用のプログラムではうまく行ったのよ
たぶん speedy_cgi のせいだと思うのだ。 pinkにモジュール入れてもらうの忘れてた、
ということでpinkもbbs.cgi元にもどしましたー 166はSpeedyでも動くコードだったり。汎用っぽくしてみた。
my $is_CryptCBC = &LoadModule('Crypt::CBC');
sub LoadModule
{
my $module = shift;
$module =~ s/::/\//g;
if (my ($path) = grep(-f "$_/$module", @INC)) {
return(require($path));
}
} って、向こうでSunOSさんがやってました。。。orz やってもらっちゃった。
そしてdsoでうまく動いた。
再度全サーバに配ってくる 現在、規制中でもfusianasanすれば書ける板に
fusianasanしても書けなくなっているようです
http://yuzuru.2ch.net/accuse/ >175
携帯のcidrやってるので、ついでに見てみますー。 しまった、、。 ●のままだ。
>>177 はなしで。 access板をスルー処理が効いてなかったところがあったので、
スルーするようにコメントアウトしました。
現時点でoperateとaccessでfusianasanしたら書けるはずです。
で、もしaccess板でfusianasanしても書けないのが仕様だったら、
コメントアウトを外してください。。。 s/accsess/accuse/g で。。。
(素で間違えた cobra2245にもCrypt-CBC-2.30は入っていなかったのであった♪
なので、hato鯖は未対応中♪ さっきまで一瞬書き込みからIPアドレス見ようと思えば見れたわけか・・・w
今回Crypt-CBC-2.30は全鯖に入れるのか?というか入るのか? pinkもCBCはいっていませーん
明日入れてもらう予定ではあります qb7と同じモジュールが入るのかしら?
use Crypt::Blowfish が有効なら喜び組(qb7では入ってるです)。 @cobra2245
%perl -e 'use Crypt::CBC'
Can't locate Crypt/CBC.pm in @INC (@INC contains: perlのpathがずらずら) at -e line 1.
BEGIN failed--compilation aborted at -e line 1.
%perl -e 'use Crypt::Blowfish'
Can't locate Crypt/Blowfish.pm in @INC (@INC contains: perlのpathがずらずら) at -e line 1.
BEGIN failed--compilation aborted at -e line 1.
だす♪
♯以下root貰っちゃいなっていうのは禁止♪ 作成の思想は、各サーバにログフィルをあさって
ipアドレスを探してくるスクリプトがある。
boo.2ch.netはそれぞれのサーバにそのipアドレスを問い合わせる。
私は hatoでその実験をしました。 つまり Cobra2245 にはCBCは入っている必要はないかと、
入っていないサーバはbbs.cgiを見てもらえば分かりますが、Cryptされた部分が
Cryptされずに生々しく入っているという話です。
それでsunOsさんにCrypt::CBCが入っているかどうかで動きを変えるというのを教えてもらいました。 あ、今頃了解しました。早とちり(汗)
・・・のでbooのhato鯖対応復帰♪ >>192
hack72.2h.netを作ろうとしているので
新しい「串」が見つかったら呼んで欲しいのです。
hack72.2ch.net建設予定地
http://dso.2ch.net/test/read.cgi/sakhalin/1297008073/
フォレンジック分析から投稿者を守るためには、ログサーバを
海外に置いてログサーバのディスクを暗号化してからそこに
ログを置けばいいと思うのです。 アメリカは暗号化解除を強要できるらしいからダメダナ _
|O\
| \ キリキリ
∧|∧ \ キリキリ
ググゥ>(;⌒ヽ \
∪ | (~)
∪∪ γ´⌒`ヽ
) ) {i:i:i:i:i:i:i:i:}
( ( ( ´・ω・)、
(O ⌒ )O
⊂_)∪