11/01/12 15:22:57 発信元:58.138.37.83 0
>>64
> で、鯖に入り込んで完全な暗号文を得ると鍵って解読されちゃうんじゃないの?
されない(一般的には)
> 「同じ鍵で暗号化された、平文と暗号文の組み合わせを無数に入手しても、
> 鍵の長さとアルゴリズムから考えて、復号化鍵を予測するのは不可能である」というならいいけど。
そのとおり(一般的には)
ここで、「一般的には」というのは平文の内容が十分散らばっていて予測不能なとき、であって、
平文のパターンが2の32乗以下、実査、日本初のアドレスだと大したレンジ幅ない、となると、
「クラックされて暗号化関数が奪われた場合(これは鯖側においてあるのでその可能性は高い)」
考えられる値→暗号化した後の文字列、の表を作られてしまう、ってこと。
それを避けるためには、暗号前の文章を予測不能な平文にしておく必要がある。
それがここでのメインテーマ(昨日来)。
67:名無しさん@お腹いっぱい。
11/01/12 17:19:05 発信元:58.88.137.173 0
これで同じIPからの書き込みでも書き込み日時によって可変になる (逆をやれば複合化可能)
リモホは誰かやってくれ
$id = "xxxxxxxx0"; #書き込みID
$btime = pack("L1",$time); #書き込み日時 unixtime
$ip = "192.168.11.2"; #書き込みIP
($ip1,$ip2,$ip3,$ip4) = split /\./,$ip;
$ip32bitbin = pack("C4",$ip4,$ip3,$ip2,$ip1);
$ip32bitstr = uc(unpack("H2",substr($ip32bitbin,3,1))).unpack("H2",substr($ip32bitbin,2,1)).uc(unpack("H2",substr($ip32bitbin,1,1))).unpack("H2",substr($ip32bitbin,0,1));
$xorip = $ip32bitstr ^ $id;
$xorip = $xorip ^ $btime;
$ipstr = unpack("H2",substr($xorip,3,1)).uc(unpack("H2",substr($xorip,2,1))).unpack("H2",substr($xorip,1,1)).uc(unpack("H2",substr($xorip,0,1)));
$ipstrをログのIP欄に書き出す
問題点はこのスレの住人なら暗号化方法が分かってしまってる
68:名無しさん@お腹いっぱい。
11/01/12 17:40:37 発信元:202.212.71.18 0
一般的なISPって長くてどれぐらいの期間ログ持ってるんだっけ、
その間割れない程度の強度があればいいのかな。
69:名無しさん@お腹いっぱい。
11/01/12 17:52:49 発信元:210.130.48.97 0
いわゆるプロバイダ責任制限法では規定は無いそうだけど、一般的には90日程度
は保存して欲しいと言う要請はあるらしい。
だから最低3ヶ月分はどこでも持ってるんだろうな。
70:名無しさん@お腹いっぱい。
11/01/12 18:14:42 発信元:210.135.98.43 (70297) P
刑事訴訟法改正案で90日ってことになっているからね。
71:名無しさん@お腹いっぱい。
11/01/12 18:18:51 発信元:210.135.98.43 (70297) P
どっかしらに妥協点はおくことになるんだけど、
侵入が前提の安全策を考えるってとき、ソース見りゃ分かる程度の
暗号だと、簡単すぎないかな。
ソースは最初に狙われるでしょ。
72:名無しさん@お腹いっぱい。
11/01/12 18:22:29 発信元:210.135.98.43 (70297) P
軽い時間帯にまとめて暗号化するとすると、
その時までの最大24時間くらいは、
軽い暗号をかけるか、
生を許容するか。
73:名無しさん@お腹いっぱい。
11/01/12 19:07:49 発信元:58.88.137.173 0
>>71
ハッキングした人がどれだけのスキルがあるかだよ
●ハッキングには詳しいけどプログラム読めない・(C言語からperl等)変換できない・プログラム書けない
●プログラム読める・書ける・変換できるけどハッキング知識無し
とか普通にいても変じゃない
大抵の場合
1つのファイル(URL)流出 -> ファイル解析 -> 他のファイル
こんな流れ
最初から全てのファイルがある場所が分かる人なんていない
74:名無しさん@お腹いっぱい。
11/01/12 19:13:43 発信元:58.88.137.173 0
>>72
それなら1時間毎にログファイル変えるとか?
この時間なら 2011011219.log のファイル名で保存
20~21時にファイル全体を暗号化
75:名無しさん@お腹いっぱい。
11/01/12 19:37:14 発信元:210.135.98.43 (70297) P
■ 暗号方式
(A) 難読化
・ソースを見られると解読
・軽い
(B) 共通鍵暗号
・暗号化と復号が同じ鍵なので、鍵を保存できない
└> 常駐プロセスがメモリ上で鍵作成、暗号化処理
├> それでも鍵は確保する必要
└> メモリの機密性
・比較的軽い
(C) 非対称鍵暗号
・暗号化と復号が別の鍵なので、暗号化鍵の扱いは杜撰でいい
・比較的重い
■ 暗号化時期
(A) 逐次
・ピーク負荷が上昇
(B) 鯖が軽い時にまとめて
・負荷分散
・暗号化まで最大24時間
└> それまでは (a) 生 (b) 別の軽い暗号化
■ 復号鍵の保存場所
(A) 各サーバ内に生
・侵入時にはログと同時に漏洩
(B) 各サーバ内に非対称鍵暗号化
・その復号鍵の保存場所で再帰
(C) 拠点サーバに保存
・拠点サーバの侵入で漏洩
(D) 作業者が各自で保有
・個人環境の信頼性は
・作業のたびに送信
・権限抹消された作業者から復号鍵を取りあげることができない
├> 鍵は適宜変わる
├> 作業時の認証はある
└> (a) 復号鍵は作業者別に暗号化して鯖保存、この復号鍵を持つ (b) 放置
76:名無しさん@お腹いっぱい。
11/01/12 19:54:32 発信元:210.135.98.43 (70297) P
一番堅牢っぽいのは、C-A-Da かな。
費用対効果は悪そう。
77:名無しさん@お腹いっぱい。
11/01/12 20:47:16 発信元:210.135.98.43 (70297) P
そもそも個人的には、2ch程度にログ暗号化なんていらないだろ
くらいに思ってるけど、それでも暗号化の必要があるとするなら、
B-Ba-C かな。
1日1回、毎回作る共通鍵で暗号化。常駐不要。
鍵は拠点サーバに送信。
暗号化までは生で妥協。
拠点サーバに置かれる鍵の数は、鯖数×保存日数。
ログ掘り作業は、拠点サーバで認証、各サーバから暗号化ログを取得し、
鯖・日に対応する鍵で復号、煮るなり焼くなり。
拠点サーバは各掲示板サーバより少し気を使う。
鯖パスはとにかく長くとか、qb6/7みたいな掲示板との混在はやめるとか、
全面basic認証とか。
78:名無しさん@お腹いっぱい。
11/01/13 01:24:19 発信元:219.30.41.43 0
>>75
■暗号化時期については祭りが起きた時などに暗号化のピーク負荷が跳ね上がる気がします
あとサーバー乗っ取られたという想定なので
■ 暗号化時期は(A) 逐次しかないんじゃないでしょうか
同じく■ 復号鍵の保存場所についても(A)(B)は選択肢から外れ
消去法でC-A-CまたはC-A-D
79:名無しさん@お腹いっぱい。
11/01/13 15:01:00 発信元:124.85.221.28 0
A-A の後 C-Bでいいんじゃね?
3番目はノータッチ
80:名無しさん@お腹いっぱい。
11/01/13 16:29:15 発信元:210.135.98.43 (70297) P
まあそうなんだけど、1日くらいいいかな、って。
ところで、非対称鍵は重いから鯖が軽い時にまとめて、という話(>>57-61)
だったのに、>>77では軽い時に共通鍵で、ということになっているのは、
まとめてやるなら鍵を常時持っておく必要がないから、そのとき限りの
共通鍵でいいやと思ったからなんだけど、でもどうせ軽い時間にやるし、
重い処理でも負荷がピークを超えることはないだろうから、鍵1つで扱いが
楽な非対称鍵でいいか、とふりだしに戻って思い直してみたり。
81:名無しさん@お腹いっぱい。
11/01/13 16:37:59 発信元:219.111.118.25 0
>>80
非対称鍵を採用すれば、片側は鍵自体も見ることを不可能にしてる製品も既に売られている。
鍵ペアをA・Bとして、Aは物理的に見ることができない(ハードとしてUSB経由でもらった平文を
暗号化/署名して返すだけ。鍵の値は誰も見ることができない)
鍵Bは通常の数値だから、見たり、コピーしたり可能だけど、今回はこっちも公開しない。
そして、完全秘密の鍵Aを使って暗号化
↓
おいちゃん以下数人だけが知ってる鍵Bで復号化
すればかなりセキュア
問題は、通常
鍵A→秘密鍵
鍵B→公開鍵
と称するので、「公開鍵」って聞いた途端に心理的に緩んじゃうんだよね。「まーバレてもいいか」的なw
ここがネック。
82:名無しさん@お腹いっぱい。
11/01/13 17:05:54 発信元:124.85.221.28 0
>暗号方式 (共通鍵暗号・非対称鍵暗号)
cgi(perl)内で使えなければダメ
なんて前提を忘れてる気がする
83:名無しさん@お腹いっぱい。
11/01/13 17:18:11 発信元:219.111.118.25 0
>>82
そんな前提(「絶対的必須」条件)ねーよ。
暗号化→まとめて非ピーク時間にcron
復号化→ローカルで処理、
でもおk
そりゃ、perlに実装できりゃいろいろ選択肢/応用増えるが、要件(要求仕様)ではない。
84:名無しさん@お腹いっぱい。
11/01/13 17:21:58 発信元:124.85.221.28 0
>>82
「まとめて非ピーク時間にcron」って前提じゃんか
85:名無しさん@お腹いっぱい。
11/01/13 17:23:28 発信元:219.111.118.25 0
>>84
おちつけw
86:名無しさん@お腹いっぱい。
11/01/13 17:58:10 発信元:124.85.221.28 0
どうせならさ
IP・リモホは別鯖で保存すればいいんじゃね?
そうすれば鯖別にログ内にIP保存して暗号化なんてことしないで済む
87:名無しさん@お腹いっぱい。
11/01/13 18:00:47 発信元:210.135.98.43 (70297) P
Perlでできないかは知らないけど、Perlである必要はないんじゃないの。
Cプログラムはいくつも動いているし。
88:名無しさん@お腹いっぱい。
11/01/13 18:06:04 発信元:202.212.71.18 0
新鮮なものが漏れてたら全然意味が無いわけでやるならlogbufferの段階でやるべき。
今のlogbufferって何で書いてあるか良く知らないけど。
89:名無しさん@お腹いっぱい。
11/01/13 18:12:13 発信元:124.85.221.28 0
>>87
言い出しっぺがやる法則
90:名無しさん@お腹いっぱい。
11/01/13 18:17:18 発信元:220.100.254.78 0
>>89
がんばって
91:名無しさん@お腹いっぱい。
11/01/13 18:31:30 発信元:124.85.221.28 0
C言語で書かれてるのをperlにするのは難しくない
perlで書かれてるものをC言語にするのは難しい
perl固有の特徴
・宣言無しで変数が使用可能 (もう1つあるけど略)
・仮想配列 ( $temp{$tmp} なんてもの 他の言語だと代用は可能だけど著しく面倒)
>>90
C言語で書くと書き込んでるのは>87
92:名無しさん@お腹いっぱい。
11/01/14 08:12:25 発信元:122.30.0.229 0
えーと、
過去にbbs.cgiをCで書くような提案があったけど
却下された経緯がある
ひ(ryがソースよめない(弄れない?)から なんて理由だった気がする
93:名無しさん@お腹いっぱい。
11/01/14 08:22:35 発信元:27.228.29.169 0
つまり今ならその障害はクリアされてると
94:名無しさん@お腹いっぱい。
11/01/14 08:31:07 発信元:122.30.0.229 0
>>93
FOX ★の中の人がC言語扱えれば移行されるかもしれない
注意として
>87が流出したbbs.cgiをC言語で書く必要がある
95:名無しさん@お腹いっぱい。
11/01/14 09:15:00 発信元:211.127.9.191 0
>>66
> 暗号前の文章を予測不能な平文にしておく必要がある。
「投稿番号と投降者名とメール欄と書き込み日時+IPアドレス」ではだめかしら?
投稿番号はなくてもいいと思うけど。
「板の名前・投稿日時・IPアドレス」だったら板の名前を工夫すれば文字数も揃えられる気がするけど・・
96:名無しさん@お腹いっぱい。
11/01/14 09:33:41 発信元:210.135.100.132 (766257) P
>>94
FOXはC言語はできるはずだよ
read.cgiいじってたりするし
97:名無しさん@お腹いっぱい。
11/01/14 09:59:03 発信元:210.135.98.43 (70297) P
read.cgi、offlaw.cgi、anydat.so、bbsd
>>95
本文等はスレ上に出ちゃってるというわけで、ランダムデータを混ぜようってな
話になっているわけだね。
暗号化が、投稿1件ずつか、ファイルごとか、というような部分でも事情は
違ってくるけど。
98:名無しさん@お腹いっぱい。
11/01/14 10:08:00 発信元:202.212.71.18 0
別に元管理人もC言語できなかったわけじゃないし…
スレリンク(operate板:752番)
99:名無しさん@お腹いっぱい。
11/01/14 10:10:02 発信元:58.138.12.51 0
なんでここの連中は、perl から C の任意のプログラムを spawn できるの知らないんだろ?
100:名無しさん@お腹いっぱい。
11/01/14 11:01:19 発信元:211.127.9.191 0
>>97
それは暗号化してあるデータがどのスレの何番目の書き込みかが分かっているって前提ですよね?
101:名無しさん@お腹いっぱい。
11/01/14 11:05:27 発信元:211.127.9.191 0
>>97
それと正規の手順以外で複合化しようとする輩に対抗するために
IPアドレス以外のデータを付与して文字数を大幅に増やすのはそれだけで複合化されにくくするメリットがあるような・・
102:名無しさん@お腹いっぱい。
11/01/14 12:27:34 発信元:58.138.12.51 0
>>101
> IPアドレス以外のデータを付与して文字数を大幅に増やすのはそれだけで複合化されにくくするメリットがあるような・・
根本的に勘違いしてるなw
<IPアドレス リモホ>だけ ← 2**32とおり。日本発信限定ならもっと小さい。
を
<乱数(2**992)><IPアドレス リモホ>←2**1024とおり。ブルートフォースで地球が破滅するまでに解くのは困難かとw
となる。だがしかし、
<固定文字列 ないし ”既に公開されてる文字列”><IPアドレス リモホ>←やっぱ2**32とおり。日本発信限定ならもっと小さい。
乱数の導入は必須。
なお時刻(ミリ秒単位)とかでもほとんど予測不能になる(もちろん時刻(ミリ秒単位)は公開しない)
総合すると、時刻を seeds にして→超簡単なアルゴリズムによる高速化乱数生成が吉。
103:名無しさん@お腹いっぱい。
11/01/14 12:38:27 発信元:122.30.0.229 0
>>97
$xxx =~ /([a-z0-9]+)\.2ch\.net\/test\/read.cgi\/([0-9A-Za-z]+)\/([0-9]+)/;
if(!$1 || !$2 || !$3) {&htmlOut("Good bye 1333 URLがおかしい、そんな板スレッドはない");}
$ita = $2;
$key = $3;
$cmd0 = $2 . "dat/$3";
$fName = "../../test/ggg/$cmd0" . ".cgi";
if(!(-e $fName)) {&htmlOut("Good bye 1444 ログがなかった。");}
このスレなら /test/ggg/sakhalindat/1294527532.cgi
場所は変更になってるだろうけどログ形式の変更はしてないはず
2chの書き込みログじゃなくapatchのログはどうするんだろうなw
>>100
書き込み日時・IDがあればどうとでもなる
104:名無しさん@お腹いっぱい。
11/01/14 13:02:57 発信元:113.197.243.196 0
>>102
> <乱数(2**992)><IPアドレス リモホ>←2**1024とおり。ブルートフォースで地球が破滅するまでに解くのは困難かとw
さすがにオーバースペック(ry
・暗号化1回につき、1ナノ秒(!)で済む高速マシンないしクラウド分散処理
・すべての可能性について作表するのに1万年(10^4年)とすると:
10^9(単位:ナノ)×60秒×60分×24時間×365日×10000年= 1.15 E+23
単位でいうと、E+21 がzetta=十垓 (兆→京→垓)
二進数で表すと
1.15 E+23 = 2^77
だから、ざっと80ビット程度ばらける乱数をインクルードしとけば生きてる間に作表はできまい。
105:名無しさん@お腹いっぱい。
11/01/14 13:10:36 発信元:113.197.243.196 0
この論点で2進化は意味ないか。
要するに、平文の IP、リモホ文字列 に前置(又は後置)して、23桁の乱数十進数(0~9)を置くか、
BASE64化して、13桁の乱数英数字(0~9、a~z、A~Z、+/)を置くか。
BASE64にしても桁数大差ないなw
106:名無しさん@お腹いっぱい。
11/01/14 13:11:49 発信元:122.30.0.229 0
>>102
>時刻(ミリ秒単位)は公開しない
実況板逝って来い。
107:名無しさん@お腹いっぱい。
11/01/14 13:24:21 発信元:113.197.243.196 0
>>106
実況板はログとってない
108:名無しさん@お腹いっぱい。
11/01/14 15:01:55 発信元:122.30.0.229 0
>>107
ニュー速板とか他にもあるだろ
109:名無しさん@お腹いっぱい。
11/01/14 15:09:29 発信元:122.30.0.229 0
>>107
これは何かな?
犯罪予告をするアフォな人。 part3
スレリンク(sec2ch板:2番)
110:名無しさん@お腹いっぱい。
11/01/14 15:57:02 発信元:123.221.184.37 0
スレの流れが狐さんが欲するものとだんだん離れていってる気がする
狐さんが欲しているのは「鯖にやさしい暗号化cgi」ではないかと。
暗号の強度が高くても鯖に負担を強いる方法じゃ却下だろうな
そして「投稿があったら1レスごとにその場でIPとホスト部分を暗号化」。
「あとでまとめて」なんて考えられない
あと、Cじゃ却下だろうな。Perlだ
「あとでまとめて暗号化~」「Cで~」なんて議論だったらするだけ無駄になるから
しない方がいいよ
111:名無しさん@お腹いっぱい。
11/01/14 20:02:34 発信元:122.30.0.229 0
>>110
そりゃ、>75のような技術的に可能な事を上げていくだけの人がいるからな
あとは一般的に強固な暗号化を好んで使う人が多い
無線LANでさえWEPはぼろくそ言われてるが(省略されましたw)
ソース見れば分かってしまうような単純な物で妥協しろや
IP・リモホだけじゃなくUAも暗号化した方がいいかも (for p2.2ch.bet向け)
112:偽FOX ★
11/01/15 05:53:41 発信元: 0
bbs.cgiはPealですし、
113:名無しさん@お腹いっぱい。
11/01/15 10:11:50 発信元:175.179.239.53 0
ちがうちがうperlや
114:名無しさん@お腹いっぱい。
11/01/15 10:19:41 発信元:123.48.61.219 0
>>112
peal
音節peal 発音記号/pi?l/音声を聞く音声を聞く
【名詞】【可算名詞】
1a
〔鳴り渡る鐘の〕響き 〔of〕.
b
〔雷・大砲・笑い声・拍手などの〕とどろき 〔of〕.
2a
(音楽的に調子を合わせた)ひと組の鐘.
b
鐘の奏鳴楽,鐘楽.
合ってるような間違ってるような・・・www
115:名無しさん@お腹いっぱい。
11/01/15 12:51:46 発信元:222.147.50.205 0
確定事項
・perl内だけで処理可能な物
・ログ書き込みの時に暗号化する (ログ書き込み以後に暗号化はしない)
狐さんの書いて無いこと
暗号化後の容量 (IPアドレスなら最大15Byteだけど暗号化後何Byteまで膨れ上がらせていいのか?)
追加インストール(perlのあれ)していいか?
116:名無しさん@お腹いっぱい。
11/01/15 13:38:36 発信元:210.135.98.43 (70297) P
所詮は、それぞれの要素に対して、どこで妥協するかという話でしかない。
117:名無しさん@お腹いっぱい。
11/01/15 16:09:09 発信元:202.212.71.18 0
bbs.cgiじゃなくてlogbufferとかにやらせるんじゃないの?
芋ログはbbs.cgiが直接書いてるとかなら無理だけど
118:偽FOX ★
11/01/15 16:22:54 発信元: 0
直接掻いています
apacheのログとは別のものです
いわゆる投稿ログです
119:名無しさん@お腹いっぱい。
11/01/15 17:00:15 発信元:210.130.48.100 0
つまりbbs.cgiのログ書き処理を変更しようと言う事ですね。
120:名無しさん@お腹いっぱい。
11/01/15 18:38:24 発信元:210.135.98.43 (70297) P
bbsd は bbs.cgi からデータを受け取ってファイル出力しているし、
まあ Perl でも暗号化はできるだろうし、
と。
121:名無しさん@お腹いっぱい。
11/01/15 18:43:53 発信元:210.135.98.43 (70297) P
bbsd は root 権限がいるからなのか、趣味に合わないからなのかで、
あまり(全く?)使われていないようだけど。
122:名無しさん@お腹いっぱい。
11/01/15 19:43:17 発信元:210.135.98.43 (70297) P
とりあえず
URLリンク(perldoc.jp)
これを DES でやってみたら意外に簡単だった。
DESは弱いらしいけど。
123:未承諾広告※ ◆BAILA6C886n4
11/01/15 21:31:38 発信元:219.117.239.35 0
鯖のアカウントを取られたらどうしようもないけれど、ディレクトリが見えちゃった(照)でも良ければ。。。
./test/tane
というファイルに『種』値を各鯖(各板)に書いて、、、
./test/.htaccess に
<Files tane>
deny from all
</Files>
とすれば、ひとまずhttp経由では中身までは見えなくなると思うのです。
その『種』をキーにして単純に暗号化するだけでもひとまずの効果は出ないかな?
♯漏れたときにはまたその時に考えようって事で♪
124:名無しさん@お腹いっぱい。
11/01/16 12:12:27 発信元:121.102.115.156 0
>>118
上の人が書いてるみたいに、「別処理じゃダメ」「Cで書いたコマンドだと使えない」って本当なの?
cron の設定とか狐さんできないの?
125:名無しさん@お腹いっぱい。
11/01/16 12:18:00 発信元:202.212.71.18 0
別処理かどうかはともかく1日1回のcronじゃ意味が無いって事なんじゃないの
126:名無しさん@お腹いっぱい。
11/01/16 12:28:37 発信元:121.102.115.156 0
>>125
1)そもそも cron だから1日1回なんて決まりないし
2)鯖乗っ取られたらリアルで(乗っ取られてから気づいて鯖電源落とすまでw)の投稿IP取られちゃん
だから、「最終cron から乗っ取り時点までのIP取られる」ということがさほど重要なこととは思えない。
3)むしろ、「負荷」考えたら、暗号化時間はずらした方が吉。リアルタイムにこだわって、鯖負荷低減の
ために、暗号強度下げるのは本末転倒。全ログ解読されかねない。
127:名無しさん@お腹いっぱい。
11/01/16 14:44:58 発信元:122.30.15.33 0
>>123
想定してるのは今回のハッキングと同様の事 (bbs.cgiとかの流出)
なんで、http経由を制限しても無意味
>>124
しつこいぞ
そんなにやりたっかたら自鯖でやってろ
128:名無しさん@お腹いっぱい。
11/01/16 15:12:59 発信元:122.30.15.33 0
>>126
スレタイを一億と2千万回読み直せ
翻訳されて分からなくなっていれば十分なんだよ
解読されにくくするとは書かれてない。
それに芋掘りとかbooの方から流出したらIP丸出しだからいくら暗号化強化しても無意味
129:名無しさん@お腹いっぱい。
11/01/17 10:42:22 発信元:113.197.193.189 0
やれやれ。結局、「cron じゃダメ」だの「Cだと採用されない」とか連呼してるのは能力の低い馬鹿1名だけか。
FOX★もこの馬鹿には同調してないし。
馬鹿を無視して、まとめるぞ:
【要求仕様】
> サーバ乗っ取られて書き込みログを見られてもokにしよう。
> IPアドレスとかリモホり部分っすね、
>
> これが出来たら、乗っ取られたっていいジャン! になる。
> 誰か方法考えてちょ
つまり、ログ盗まれても■解読できない■(我々が生きてる間に)ようにしる!
【現在出ている最有力案】
・リアルタイムでこれを満たすのは不可能
・したがって、鯖負荷の低い時間帯にまとめて処理
・暗号化はいわゆる公開鍵暗号方式と同じ技術=暗号鍵と復号鍵が別
・ただし、ブルートフォースかけられる可能性があるので公開鍵側も(積極的には)公開しない。
・また、IP・リモホ部分には、十進整数23桁程度 >>104-105 の乱数を暗号前に前置しておく。
”perl連呼馬鹿” は無視(透明あぼ~ん)して、この案をベースに意見クレクレ
130:名無しさん@お腹いっぱい。
11/01/17 10:46:31 発信元:220.210.183.230 0
> ・したがって、鯖負荷の低い時間帯にまとめて処理
ここだな。問題は。
cronが前提になってるぽいが、文字通り 「鯖負荷が低い時に自動ディスパッチ」 できないの?
Windows なんかの「アイドルタイム・ウィルスチェック」みたいやつ。
UNIXではどうやるんだたけ?
131:名無しさん@お腹いっぱい。
11/01/17 11:37:22 発信元:210.130.48.83 0
>>129
あなたにも同調されて無いですが?
> つまり、ログ盗まれても■解読できない■(我々が生きてる間に)ようにしる!
括弧内はあなたの勝手な後付では?
> ・リアルタイムでこれを満たすのは不可能
> ・したがって、鯖負荷の低い時間帯にまとめて処理
この時点で要求仕様から乖離している事が理解出来ない?
> ”perl連呼馬鹿” は無視(透明あぼ~ん)して、この案をベースに意見クレクレ
あなたもその馬鹿と一緒ですよ。
132:名無しさん@お腹いっぱい。
11/01/17 12:13:55 発信元:211.127.9.191 0
ここでそういう争いをしない方がいいよ。
夜勤さんはそういう騒動があるスレを一切無視して前に進む人だって、この板の住人なら知ってるんじゃないの?
133:名無しさん@お腹いっぱい。
11/01/17 14:54:51 発信元:123.198.147.37 0
とりあえず乗っ取られても大丈夫な暗号化芋の話で
Perlのモジュールが足りないなら入れればいい
後の事はニュー速に入れてみてからでもいいのでは
Cで書くとか定期実行とか方法変えるとか
専門板だけ実装という手もあるし
134:名無しさん@お腹いっぱい。
11/01/17 17:23:12 発信元:210.135.98.43 (70297) P
ここの議論結果が結論となるわけでなし。
ここでできるのは、選択肢と論点と考え方を提示することくらい。
135:名無しさん@お腹いっぱい。
11/01/17 17:27:57 発信元:211.127.9.191 0
と言うかよく考えたらこのスレの大前提である「書き込みログを見られない様に」って本当に必要なの?
今まで通り基本非開示で裁判所の命令とか荒らし対策とかで開示する、って運営じゃダメなの?
「基本非開示だけど外的要因で2ちゃんねるの意図ではなく開示されてしまうことがある」って書いておけば良いんじゃね。
というか書かなくてもよいんじゃね?あくまでも外的要因だから。「IP非開示は保証の限りではない」位で?
簡単に実装出来てかつ負荷無く動作するんなら有った方が良いんだろうけど・・・
それともやはり匿名性は可能な限り確保したいのかな。それが2ちゃんねるの売りでもあるから
136:名無しさん@お腹いっぱい。
11/01/17 18:08:58 発信元:114.165.66.156 0
>>133
(希望する機能がある)Perlのモジュールがあればいいのだが
Base64の機能があるとは知らず自前で作ってしまった
137:名無しさん@お腹いっぱい。
11/01/17 18:15:33 発信元:114.165.66.156 0
>>129
あんたがCで書け
責任取れ。
138:名無しさん@お腹いっぱい。
11/01/17 18:30:28 発信元:114.165.66.156 0
公開鍵方式 にこだわってる低脳なバカが一匹いるな
それにもう一匹に噛み付きまくってる
躾のなってない基地外か。
139:名無しさん@お腹いっぱい。
11/01/17 20:33:01 発信元:210.135.98.43 (70297) P
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)}
});
140:名無しさん@お腹いっぱい。
11/01/17 20:34:59 発信元:210.135.98.43 (70297) P
結果
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の方が重いのは、
URLリンク(perldoc.jp)
> 暗号と復号の処理は同等の(Cでコンパイルされた)SSLeayプログラムよりも
> 10分の1ほどの速度です。
> これをCで実装することによって改善することができるでしょう。
という部分の差ってことなのかな。
141:名無しさん@お腹いっぱい。
11/01/17 21:32:00 発信元:210.135.98.43 (70297) P
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)
大して変わらなかった。
142:名無しさん@お腹いっぱい。
11/01/18 16:22:05 発信元:114.165.61.214 0
>>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以外からの接続拒否
143:名無しさん@お腹いっぱい。
11/01/18 22:02:53 発信元:210.135.98.43 (70297) P
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)}
});
144:名無しさん@お腹いっぱい。
11/01/18 22:04:45 発信元:210.135.98.43 (70297) P
結果
短い方
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 が増えて、効率が下がったせいかな。
145:名無しさん@お腹いっぱい。
11/01/18 22:21:33 発信元:210.135.98.43 (70297) P
サーバ侵入に備えての暗号化で、復号鍵(とか復号に必要なもろもろ)を
サーバに保存するには、復号作業用サーバの安全性が問題になるわけだけど、
ここのところの各機能の開発状況を見ていると、qb7 が一般サーバより
安全になるとは思えないんだよねえ。
この先変わるのかな。
作業者に復号鍵を持たせるのは面倒じゃないか、
暗号化の重さに見合う利益はあるか、
侵入対策が侵入されたら解読される程度でいいのか。
何をしても費用対効果は悪いねえ。
146:未承諾広告※ ◆BAILA6C886n4
11/01/18 23:58:13 発信元:219.117.239.35 0
どれもまんどくさそうねぇ。。。
147:名無しさん@お腹いっぱい。
11/01/21 02:04:14 発信元:114.155.141.253 0
やっぱりログファイル丸ごと負荷の少ない時間に暗号化するのが現実的なのかな
OSの機能で暗号化するとおそらくハッキングに対しては無力だし、書き込みのたびにログを暗号化すると負荷がどれ位掛かるのか判らない
148:名無しさん@お腹いっぱい。
11/01/22 06:47:01 発信元:118.9.218.132 0
>>147
書き込みログの形式にもよるけどな
apacheのようなログであれば(時間毎などで)分割すればいいけど
2chブラウザが取得してるようなdatファイルに追記してるならファイル丸ごとなんてことは不可能
それに負荷が低い時にまとめてとあるけど
負荷が高いまま数十時間やられたらどうしようもないな
特に、実況板(ログとって無いとかほざくやつは実況板で犯罪予告してこいや)
149:名無しさん@お腹いっぱい。
11/01/23 03:41:12 発信元:210.135.98.43 (70297) P
(A)
投稿時には、1294604913_20110123.log のようなスレ・日単位で生ログファイルを作成。
暗号化時には、ファイルごと暗号化し、生ログを削除。
(B)
投稿時には、従来通りスレ単位の生ログファイルを作成。
暗号化時には、投稿1件分ずつ暗号化して、暗号化ログファイルに追記、生ログを削除。
Aだと、投稿内容とか暗号化の必要がないものも暗号化することになるし、
復号もファイル全体になるので、効率が悪いかな。
Bなら、ログの内からIPアド等の非公開部分だけ暗号化すればいい。
復号も投稿1件ずつすることが可能。
ランダムデータを付加するとしても、データ量はAよりは少ないか。
150: ◆A/T2/75/82
11/02/05 16:37:45 発信元:114.160.23.32 0
みんなの意見をいろいろ考えてみた。
まずは一歩踏み出してみることにしよう。
一歩目は、書き込みログが外に漏れても普通の人はよくわからなくする。
IPアドレスとリモホ(●やbeの情報を含む)の部分だけやってみるだす。
漏れても解析にそれなりの時間がかかるような方法にしてみるです
そのサーバが乗っ取られてもすぐには何もできないように他のサーバにアクセスしなきゃ
いけないっていうのもハードルが一つ上がるのでやってみようと思っていまーす
151:名無しさん@お腹いっぱい。
11/02/05 17:34:58 発信元:67.227.82.48 0
拡張子を.logにしない
おとりファイルを作る
152: ◆A/T2/75/82
11/02/05 18:43:25 発信元:114.160.23.32 0
myanmar yangon sakhalin @dso が自分でPerlのモジュールを入れられないなぁ
qb5 もかぁ・・・
こりゃちと面倒だなぁ
use Crypt::CBC ;
とかやりたいんだけど、Perlで CBCモジュールが入っていたらとかって
記述できるの?
153: ◆A/T2/75/82
11/02/05 19:10:21 発信元:114.160.23.32 0
toki , hibari , yuzuru のPerlを再インストールしなきゃならないらしい。
そのときはサーバ止める予定。
154: ◆A/T2/75/82
11/02/05 19:29:13 発信元:114.160.23.32 0
ふむふむ、こうやればいいのか
sub check_module {
my $module = $_[0];
# モジュールが存在すれば読み込む
eval "use $module;";
if ($@) {
return 0;
} else {
return 1;
}
}
155:名無しさん@お腹いっぱい。
11/02/05 22:09:58 発信元:220.107.3.28 0
これを実施したことによって影響でそうなのものは
Boo
Boo2BBQ
こらこら
この辺りかな
156:名無しさん@お腹いっぱい。
11/02/05 22:11:48 発信元:124.103.116.107 0
Rockは?
157:名無しさん@お腹いっぱい。
11/02/05 22:12:17 発信元:220.107.3.28 0
そうだった
ROCK周りもダメになるな
158:名無しさん@お腹いっぱい。
11/02/05 22:14:26 発信元:114.171.38.174 0
BBM
p2
とかは?
159: ◆SGypsyBBQM
11/02/05 22:40:05 発信元:211.1.219.232 0 BE:471367049-BRZ(10081)
書き込みログを利用しているものが影響するので、
BBM,p2 は問題ないです。 (共に登録するだけ)
160: ◆A/T2/75/82
11/02/05 23:17:26 発信元:114.160.23.32 0
この改造により修正したもの
1. わたしの芋掘り機
2. 削除人さん用芋掘り機
3. こらこら
4. boo (hatoに改造したのあります、配っていません)
の四つです。
まずこれらを全サーバに配ってきます。 (4は除く)
161: ◆A/T2/75/82
11/02/05 23:22:55 発信元:114.160.23.32 0
>>160 くばった
ではいよいよbbs.cgiを全サーバにくばりまーす
162: ◆A/T2/75/82
11/02/05 23:30:35 発信元:114.160.23.32 0
みごとに、ここdsoは500になっちゃった
元に戻した @dso
163:名無しさん@お腹いっぱい。
11/02/05 23:31:27 発信元:124.99.205.150 0
改造前と、改造後の報告は、混同しちゃだめ?
改造前のログは掘れる?
164:名無しさん@お腹いっぱい。
11/02/05 23:32:22 発信元:124.99.205.150 0
qb5もエラー吐いてるな
165: ◆A/T2/75/82
11/02/05 23:33:41 発信元:114.160.23.32 0
もとにもどした @qb5
このサーバPerlモジュールが足りないのよネ
それで >>154 っぱく作ったつもりなんだけど、うまくいかなかったと。
166:garnet ★
11/02/05 23:43:30 発信元: 0
がっくしでは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'));
}
}
}
}
167:名無しさん@お腹いっぱい。
11/02/05 23:46:38 発信元:180.0.150.47 0
libプラグマとかどうでしょ
use lib "/path/to/library";
あとopenはopen(fh, mode, filename);
168: ◆A/T2/75/82
11/02/05 23:48:22 発信元:114.160.23.32 0
てすと用のプログラムではうまく行ったのよ
たぶん speedy_cgi のせいだと思うのだ。
169: ◆A/T2/75/82
11/02/05 23:55:48 発信元:114.160.23.32 0
pinkにモジュール入れてもらうの忘れてた、
ということでpinkもbbs.cgi元にもどしましたー
170:garnet ★
11/02/05 23:55:59 発信元: 0
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));
}
}
171:garnet ★
11/02/05 23:58:33 発信元: 0
って、向こうでSunOSさんがやってました。。。orz
172: ◆A/T2/75/82
11/02/05 23:59:06 発信元:114.160.23.32 0
へへへっ
173: ◆A/T2/75/82
11/02/05 23:59:51 発信元:114.160.23.32 0
やってもらっちゃった。
そしてdsoでうまく動いた。
再度全サーバに配ってくる
174: ◆A/T2/75/82
11/02/06 00:03:50 発信元:114.160.23.32 0
配った。
175:名無しさん@お腹いっぱい。
11/02/06 07:26:14 発信元:61.202.71.102 0
現在、規制中でもfusianasanすれば書ける板に
fusianasanしても書けなくなっているようです
URLリンク(yuzuru.2ch.net)
176:garnet ★
11/02/06 07:56:58 発信元: 0
>175
携帯のcidrやってるので、ついでに見てみますー。
177: ◆SGypsyBBQM
11/02/06 08:12:32 発信元:211.1.219.232 0 BE:209495982-BRZ(10081)
規制関係ですね。
_BBS_ihou_\.ne.jp
スレリンク(ihou板:567番)
178: ◆SGypsyBBQM
11/02/06 08:19:21 発信元:211.1.219.232 0 BE:183310027-BRZ(10081)
しまった、、。 ●のままだ。
>>177 はなしで。
179:garnet ★
11/02/06 08:20:57 発信元: 0
access板をスルー処理が効いてなかったところがあったので、
スルーするようにコメントアウトしました。
現時点でoperateとaccessでfusianasanしたら書けるはずです。
で、もしaccess板でfusianasanしても書けないのが仕様だったら、
コメントアウトを外してください。。。
180:名無しさん@お腹いっぱい。
11/02/06 08:22:44 発信元:61.202.71.102 0
>>179
対応、乙でした
181:garnet ★
11/02/06 08:23:41 発信元: 0
s/accsess/accuse/g で。。。
(素で間違えた
182:名無しさん@お腹いっぱい。
11/02/06 08:30:53 発信元:210.135.98.43 (618493) P
>>179
対応をありがとうございました。書き込みできるようになったようです。
スレリンク(accuse板:721番)
183:未承諾広告※ ◆BAILA6C886n4
11/02/06 22:12:50 発信元:219.117.239.35 0 BE:1961036-PLT(23505)
cobra2245にもCrypt-CBC-2.30は入っていなかったのであった♪
なので、hato鯖は未対応中♪
184: ◆A/T2/75/82
11/02/06 22:13:50 発信元:114.160.23.32 0
よろしくお願いしまーす
185:名無しさん@お腹いっぱい。
11/02/06 22:15:46 発信元:61.89.15.136 0
さっきまで一瞬書き込みからIPアドレス見ようと思えば見れたわけか・・・w
今回Crypt-CBC-2.30は全鯖に入れるのか?というか入るのか?
186: ◆A/T2/75/82
11/02/06 22:17:44 発信元:114.160.23.32 0
pinkもCBCはいっていませーん
明日入れてもらう予定ではあります
187:garnet ★
11/02/06 22:24:16 発信元: 0
qb7と同じモジュールが入るのかしら?
use Crypt::Blowfish が有効なら喜び組(qb7では入ってるです)。
188:未承諾広告※ ◆bbq.muteQGCV
11/02/06 22:28:08 発信元:219.117.239.35 0 BE:6970188-PLT(23505)
@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貰っちゃいなっていうのは禁止♪
189: ◆A/T2/75/82
11/02/06 22:28:36 発信元:114.160.23.32 0
よくわからんけど、
190: ◆A/T2/75/82
11/02/06 22:29:25 発信元:114.160.23.32 0
ぼうはつした。
思想は・・・
191: ◆A/T2/75/82
11/02/06 22:34:37 発信元:114.160.23.32 0
作成の思想は、各サーバにログフィルをあさって
ipアドレスを探してくるスクリプトがある。
boo.2ch.netはそれぞれのサーバにそのipアドレスを問い合わせる。
私は hatoでその実験をしました。 つまり Cobra2245 にはCBCは入っている必要はないかと、
入っていないサーバはbbs.cgiを見てもらえば分かりますが、Cryptされた部分が
Cryptされずに生々しく入っているという話です。
それでsunOsさんにCrypt::CBCが入っているかどうかで動きを変えるというのを教えてもらいました。
192:未承諾広告※ ◆bbq.muteQGCV
11/02/06 22:48:28 発信元:219.117.239.35 0 BE:1960092-PLT(23505)
あ、今頃了解しました。早とちり(汗)
・・・のでbooのhato鯖対応復帰♪
193: ◆A/T2/75/82
11/02/07 17:22:01 発信元:114.160.23.32 0
>>192
hack72.2h.netを作ろうとしているので
新しい「串」が見つかったら呼んで欲しいのです。
hack72.2ch.net建設予定地
スレリンク(sakhalin板)
194:今日も雲孤 ◆bKaGbR8Ka.
11/05/24 02:25:22.40 発信元:118.3.231.160 0
フォレンジック分析から投稿者を守るためには、ログサーバを
海外に置いてログサーバのディスクを暗号化してからそこに
ログを置けばいいと思うのです。
195:名無しさん@お腹いっぱい。
11/05/26 07:11:36.20 発信元:124.103.41.137 0
もともと海外だろ