X


◆ 全サーバトリップ統一作戦

■ このスレッドは過去ログ倉庫に格納されています
1動け動けウゴウゴ2ちゃんねる
垢版 |
03/10/27 18:10ID:d3gW7L58
現在三つに分かれているトリップの仕様を統一しようという作戦

>>2-5辺りも読んでください。
2動け動けウゴウゴ2ちゃんねる
垢版 |
03/10/27 18:10ID:d3gW7L58
104 :鳥屋? ◆TMMMMMMMMM :2003/10/26(日) 19:55 ID:OYk5PAwE
例によってむっちゃ忙しくてアレなのだが、ココで俺意見出しつつ
まとめてみます。ご意見ご希望ご感想pls

・基本は旧鯖仕様
 経緯を見るからに、新鯖仕様は鬼っ子。
対応ツールも、流出互換スクリプトも、旧鯖仕様ベースなので
それに合わせるのがよかろう。
(したらば系のことは、俺が興味ないので忘れる)

 できることならば旧鯖トリップはことごとく通ってほしいのだが、
先頭文字に限っては、特殊文字をいくつか導入し、
それに抵触するトリップを使ってる連中には、半角カタカナに置換する
ことで対処してもらう。

32のつづき
垢版 |
03/10/27 18:11ID:d3gW7L58
・付加機能案(1) 任意Salt
例) #$ABcccccccc
1文字目が $ だった場合、2,3文字目の BC をSaltとみなして
4文字目以降のcccccccccをキーとして扱う。BCの扱いは旧鯖仕様にしてしまう。
(俺的には、鳥屋っぽい新々鯖キーを量産できるので大歓迎)
先頭が $ トリップを使ってた香具師は、半角カタカナ 、 でガマンしてもらう。

・付加機能案(2) 玄人向け生キー
例) ##DEADBEEFCAFEABED2710
1文字目が # だった場合、続く16文字の16進数をキー
さらに4文字の8進数もしくは2文字の英数字が存在したらSaltとして扱う。
全空間から余すことなく拾いたいトリップ野郎(俺もだよ漏れも)向けの機能。
先頭が # トリップを使ってた香具師は、半角カタカナ 」 でガマンしてもらおう。

実装はまた後日。たぶん簡単だろうが検証してるヒマがない。
4関連スレ
垢版 |
03/10/27 18:11ID:d3gW7L58
bbs.cgi 再開発プロジェクト
http://qb3.2ch.net/test/read.cgi/operate/1053067870/l50
◆ 移転ですー
http://qb3.2ch.net/test/read.cgi/operate/1066993274/l50
03/10/27 18:56ID:kCrk2mEm
トリップの歴史のようなもの(激しく添削キボンヌ)
基本。
 「name#trip」と名前欄に入力。name はそのまま出力。'#' 以降を分解。

●初代?
 製塩方法が、
  my $change_salt = substr($handle_pass, , 1) . "H";
 となっていたために、$change_salt は 'ripH' に。
 しかし、crypt で有効な塩は、2 文字分(正確には 12 ビット)
 なので、 3 文字目以降は意味を為していない。
 出力は crypt 出力文字列の後ろから 8 文字分。
  $handle_pass = substr(crypt($handle_pass, $change_salt), -8);
 結果、
 「name#trip」は、
 name ◆pdoZ.tHU
 と出力された。

●2代目?
 割れを防ぐ意味?で出力を 10 文字に増殖。
  $handle_pass = substr(crypt($handle_pass, $change_salt), -10);
 結果、
 「name#trip」は、
 name ◆hEpdoZ.tHU
 と出力された。

●3代目?(現状?)
 製塩時にフィルターが追加された?
 my $salt = substr($key."H.", 1, 2); →トリップ文字列の末尾に 'H.' を追加してから、先頭から2文字目と3文字目を抽出。
 $salt =~ s/\W/\./go; → 'a-zA-Z0-9_' 以外は '.' に変更。
 ★旧仕様のトリップ文字列では出力が違うものが出てきた。
 ★新々鯖(FreeBSD) では、'_' を内部で変換せずにエラーとして判断するために、crypt の返り値が undef (未定義値) となるために
、トリップが表示されない不具合が出た。
03/10/27 19:04ID:ORpxxm18
>>5
順序としては、製塩方法が変わってから、10桁化したんだったと思う。
2代目と3代目が逆ということになるかな。

初代は</b><b>がついてなくて、トリップ文字も太字のままだったね。
懐かしい。
03/10/27 20:39ID:m/mfc4Ea
>>5
>●初代?
> 製塩方法が、
>  my $change_salt = substr($handle_pass, , 1) . "H";
> となっていたために、$change_salt は 'ripH' に。
> しかし、crypt で有効な塩は、2 文字分(正確には 12 ビット)
> なので、 3 文字目以降は意味を為していない。

my $change_salt = substr($handle_pass, , 1) . "H";
の所なんですけど、
substr の第二引数が省略されてるので、取り出し始めるインデックスが
0(最初)で、取り出す文字数が1文字ってことかと。
そうすると、$change_salt は 'tH' になると思います。
そのスクリプトの方があってればの話ですけど、、
03/10/27 21:13ID:kCrk2mEm
>>7
#!/usr/local/bin/perl

$a = "triptrip";
$b = substr($a, , 3) . "H";

printf "[$a] [$b] %s",substr(crypt($a, $b), -8);
exit;
# 結果は [triptrip] [ptripH] eOG.wRhM

実際に動かしてみると、2 番目の引数が undef になるので省略されたとして、
3 番目の引数が offset にされちゃうようです。@ Perl 5.6.1 の場合
03/10/27 21:29ID:kCrk2mEm
とりつぷテスト
03/10/27 21:49ID:m/mfc4Ea
>>8
おぉ、そうだったんですか。。
というか、substr の第二引数は省略できないですね。

確かめもせずに申し訳ない。。
何でそんなコードになってたんだろう、、
03/10/27 21:57ID:kCrk2mEm
>>10
あ、いへいへとんでもないです(汗)
ただこのあたりの実装方法が曖昧になっているようですね。

uma系鯖では tripkey のない場合の対処がややこしそうですね。
現に、 uma系鯖では tripkey のない場合、# が出てくるのも謎だし。。。@本来はマッチしないので出てこないはず?

さてさて、bbs.cgi の現状のトリップ回路は公開されているのでしょうか?
03/10/27 22:06ID:CZH0FpX5
とりあえず記念真紀子。
03/10/27 22:25ID:m/mfc4Ea
>uma系鯖では tripkey のない場合の対処がややこしそうですね。
>現に、 uma系鯖では tripkey のない場合、# が出てくるのも謎だし。。。@本来はマッチしないので出てこないはず?

これって、名前欄に「名前#」って入れるって事ですかね?
03/10/27 22:29ID:7FIU3vix
おつかれさまー

ところで、こんなトリップも出せることに気づいたのですが、
今回考える新仕様では、これに対応する必要ないっすよネ?

…いや、対応は造作もないのだが。
03/10/27 22:39ID:kCrk2mEm
uma 系鯖での現状での不具合。
1. トリップキーがないと # が出て来ちゃう。
(凡例:この書き込みの名前欄参照)
 要因:現在不明(^-^;;)

2. _ の扱いでトリップが消える。
 塩に '_' が含まれていたりキーに '_' が含まれていたりいろいろ。
(凡例:#______ のように '_' が 6 つ以上連なってもトリップが消えるみたい。
 要因:crypt()での振る舞いが違うため。

対策?
1. uma系鯖に限って、
 ・crypt する前にキーが存在しないときは何らかのキーを与える。
 ・crypt() の返り値が undef の時に何かキーを与えてみる。
 ・もしくはトリップを作らなくするとか?→名前部分だけ返す。

2. [./0-9A-Za-z] にマッチしない文字を別の文字に変更する。
 ・'.' が妥当?
 ・もしくは他の文字を与える?

こんな所でしょうか。
これが解決できれば、鳥屋TMさんの提案されている塩指定も盛り込めるのではないかと。

>>13
そのとおりです。名前欄に '#' のみでもOKです。
>>14
わー(汗)@ラストに '1'
03/10/27 22:44ID:m/mfc4Ea
1は、全サーバそういう仕様だと思いますー。
#(.+) の時にトリップ作る仕様になってますから。
03/10/27 22:49ID:kCrk2mEm
>>16
大いなる勘違いをしていました(汗)
って事でこの件は無かったことに(苦笑)
03/10/27 22:49ID:7FIU3vix
いったん自宅に帰ろう。

>>15
(1)に関しては、どちらかというとトリップ仕様の範囲外。
想像ではPerlのバージョン依存。
トリップキー抽出部を見せてもらわないことには何とも言えず。

(2)を解決し、ついでに「新鯖トリップ問題」を解決し、
ついでについでに玄人仕様を盛り込んだのが、>>2-3案です。

新鯖トリップ問題に関しては要望があれば解説します。

(ずーっと、流出スクリプトのトリップ生成部が2chで使われてるものと
同じだと思いこんでたので、いろいろ誤解してたのだが、すべて解決!)
03/10/27 22:51ID:cghP2zya
>>14
うほっ

どうやってんだ…
03/10/27 22:56ID:m/mfc4Ea
ちなみに、今動いてるのは、>>5の初代と二代目を足したものです。
03/10/27 23:07ID:kCrk2mEm
さてと、それではお塩に関しては、
$salt =~ tr/:;<=>?@[\\]^_`/ABCDEFGabcdef/;
$salt =~ tr/[\.\/0-9A-Za-z]/\./c;
でよいのかな?
03/10/27 23:14ID:kCrk2mEm
>>18
判りやすく解説キボンヌですm(_ _)m
03/10/27 23:23ID:sIZmBxA6
記念ヽ(・∀・)ノ ●ウンコー
03/10/27 23:28ID:qdVcqFdp
>>21
それで旧鯖仕様互換にできるのだけど
さて、新鯖トリップを活かしたい人をどうしよう

というために、Salt任意指定があればいいなと思うワケです。
03/10/27 23:35ID:CZH0FpX5
>>24
とりあえず新鯖専用トリップの人を冷遇するのは反対。
なのでその案に賛成かな。
03/10/27 23:38ID:qdVcqFdp
新鯖トリップ問題

【現象】 2002秋以降に新設された鯖で、一部のトリップが
従来と互換のない出力になり、鳥屋が困り果てて右往左往した。
(後半は余計だ)

sakuraに設置されていた鯖も、新鯖と同様の振る舞いをしていた
(ただしトリップは8桁のまま)

具体的には、Saltに一部の記号・漢字・半角カナが含まれてる
トリップが該当。

【原因】
crypt(3)に範囲外のSaltを与えていた bbs.cgi スクリプトと、
範囲外Saltに対して実装依存の振る舞いをする各ライブラリの
crypt(3) との食い合わせ。

Saltは、1文字あたりで、 . / 0-9 A-Z a-z を、0-63 の数字に変換
するのだが、この変換ロジックの手抜きにより、実装依存の挙動が生まれた。

(次につづく)
03/10/28 00:16ID:M/8fWAJo
・旧鯖(たぶんlibc5ベースのSlackware)
if (!salt in [ . - z])
 salt は . (0);
else if (salt >= 'a')
 salt = salt - 'a' + 38;
else if (salt >= 'A')
 salt = salt - 'A' + 12;
else if (salt >= '0')
 salt = salt - '0' + 2;
else
 salt = salt - '.';

・新鯖(glibc2ベース)
(salt は signed char 扱い)
if (salt >= 'a')
 salt = salt - 'a' + 38;
if (salt >= 'A')
 salt = salt - 'A' + 12;
if (salt >= '0')
 salt = salt - '0' + 2;
else
 salt = salt - '.';
salt &= 63;

新々鯖(FreeBSD)
Saltが範囲外の文字だったらエラー。

(以上は想像上のものです。ソース読まずにカキコ)
03/10/28 01:39ID:7yKhMyUE
鳥屋TMさんのを踏まえて新型トリップ案。

書式:
# option keys
# = トリップキー開始文字
option = 機能
keys = キー

option と keys
 0 = 8 桁トリップ ※ 旧鯖式
  keys = 8バイト長の任意文字列
  出力 = ◆8バイト長の文字列
  凡例:name#0ぶるじょ → ◆EncckFOU

 1 = 10 桁トリップ ※ 旧鯖式
  keys = 8バイト長の任意文字列
  出力 = ◆10バイト長の文字列
  凡例:name#1ぶるじょ → ◆yBEncckFOU

 2 = 8 桁トリップ ※ 新鯖式
  keys = 8バイト長の任意文字列
  出力 = ◆8バイト長の文字列
  凡例:name#0ぶるじょ → ◆d1dMH5Gk

 3 = 10 桁トリップ ※ 新鯖式
  keys = 8バイト長の任意文字列
  出力 = ◆10バイト長の文字列
  凡例:name#1ぶるじょ → ◆ySd1dMH5Gk

 4 = 8 桁トリップ
  keys = 2バイト長の塩と8バイト長の任意文字列
  出力 = ◆8バイト長の文字列
  凡例:name#4AAぶるじょ → ◆ 5/5A2qi2
  (◆のあとに半角 space が入る→従来トリップのクラック防止のため)

 5 = 10 桁トリップ
  keys = 2バイト長の塩と8バイト長の任意文字列
  出力 = ◆10バイト長
  凡例:name#5AAぶるじょ → ◆ jO5/5A2qi2
  (◆のあとに半角 space が入る→従来トリップのクラック防止のため)

 6 = 8 桁トリップ
  keys = 3バイト長の16進数文字列と16バイト長の16進数文字列
  出力 = ◆ 8バイト長の文字列
  (◆のあとに半角 space が入る→従来トリップのクラック防止のため)
  凡例:name#63FF82D482E982B682E5 → ◆ amQOjP5E

 7 = 10 桁トリップ
  keys = 3バイト長の16進数文字列と16バイト長の16進数文字列
  出力 = ◆ 10バイト長の文字列
  (◆のあとに半角 space が入る→従来トリップのクラック防止のため)
  凡例:name#73FF82D482E982B682E5 → ◆ JvamQOjP5E

 無し = 新式 12 桁トリップ MD5 型(末尾の 1 文字を落してから末尾から 12 文字分を抽出)
  keys = 8バイト長の任意文字列と任意長の文字列
  出力 = ◆12バイト長の文字列
  凡例:name#salt-strじゅげむじゅげむごこうのすりきれ → ◆9ljrTZJ6f.L1

こんな感じ。
03/10/28 01:48ID:7yKhMyUE
>>28
×無し = 新式 12 桁トリップ MD5 型(末尾の 1 文字を落してから末尾から 12 文字分を抽出)
○無し = 新式 12 桁トリップ DES 型(末尾の 1 文字を落してから末尾から 12 文字分を抽出)ただし glibc2 のみ。
30root ★
垢版 |
03/10/28 02:16ID:???
おつです。早速いろいろと。
03/10/28 16:35ID:lvi4ph3T
>>28
2,3の新鯖式は4,5の塩が指定できるモードや
6,7の16進数モードがあれば
新鯖専用トリップも表示できるので特に必要のない気もしますね。
それと、0,2,4,6の8桁トリップはいまさら必要のない気もします。
(あってもクラックされる確立が高くなるだけだし…)

>(◆のあとに半角 space が入る→従来トリップのクラック防止のため)
とはどういう意味があるのでしょう?
03/10/28 17:11ID:7yKhMyUE
>>31
8 桁は昔を懐かしむ程度の物なので必要ないかもしれませんです(苦笑)

> >(◆のあとに半角 space が入る→従来トリップのクラック防止のため)
> とはどういう意味があるのでしょう?
クラック目的で既存のトリップキーを解読された場合のことを想定してみました。
管理側の★さんが使っているトリップや、トリップを使っておられる方を騙って荒らしをするおばかさん対策とでもいいましょうか。
03/10/28 18:03ID:lvi4ph3T
クラックされた場合でも0-3でトリップを出すことは可能でしょうしあまり意味がないような…。
03/10/28 18:35ID:JvCJ+f4r
8桁を懐かしがりたい人はsports2に逝くとか、したらばとか、
03/10/28 18:45ID:7yKhMyUE
>>33
従来のクラックでは 10 桁トリップの場合だと n/64 の確率*でしたが、
新式の「塩」と「キー」指定となると、さすがに実証はしておりませんが、
64/64 の確率に限りなく近づくのでは無かろうかと危惧したためです。

* crypt の吐き出す 3 文字目の種類。
 従来のトリップでは 64 種類全て出すことは不可能「かも」しれないけれども、
 新式の「塩」と「キー」指定となると 64 種類すべて出せる「かも」しれない。

考えすぎかもしれないけれども(苦笑)
03/10/28 18:48ID:4WvZUFZ6
統一するなら旧鯖式がいい。
桁数は10桁か11桁。
03/10/28 18:53ID:Ssg6uUa8
>>35
Saltは4,096通り(=12ビット)ね。

Saltが変わるということは、方式の系統が変わるということで、
別指定できれば、鍵空間が実質56+12ビットになります。
新鯖仕様のように、鍵に対してSaltが対になっている場合は
鍵空間は56ビットのままとななります。
(旧鯖の場合は、56ビット以上57ビット未満)

トリップの詐称と鍵解読は別問題ですが、
10桁トリップの詐称(=完全一致を見つける)は、わたしの手元でも
100年以上かかる計算です。

鍵解読(クラッキング)に関しては実践したことがないのでパスですが
人間の入力しやすい空間を探せばわりと早く見つかるもののようです。
03/10/28 22:22ID:azm6mgGm
どこかで非公開トリップが完全クラックされた事件があったけど、あれは一体どうやってやるの?
03/10/28 22:31ID:bVcbrsnt
単純なキーだったとか、自分が公開してないつもりでも実は晒しトリップだったとか、
晒し依頼で貰ったの忘れてて公開してないと思い込んでたり。

ただ偶然運悪くクラックされてしまった可能性も無きにしも非ず。
03/10/28 22:46ID:lvi4ph3T
>>38
それがいわゆるキーのクラックですね。
辞書とかでアタックかけたり、方法はいろいろだと思うけど。
03/10/28 23:38ID:7yKhMyUE
>>37
> トリップの詐称と鍵解読は別問題ですが、
> 10桁トリップの詐称(=完全一致を見つける)は、わたしの手元でも
> 100年以上かかる計算です。
現状で 100 年以上、10 年後で計算機の発達で 10 年かかるとして、最低 20 年は大丈夫そうですね(笑)
ということで「名前 ◆10桁」で大丈夫でしょう。
となると、、、
 1. 現行トリップ形式 name#8strings
 2. 塩指定形式 name#0ABcdefghij → 0 は option、 AB が塩文字列、 cdefghij が key
 3. 全指定形式 name#1HHHhhhhhhhhhhhhhhhh → 1 は option、 HHH が 16 進数表記の塩(000 - 3FF) h x 16 が 16 進数表記の key
の 3 種類があれば十分なので、鳥屋TM さんの提案されたものに落ち着きますね。
ようするに、漏れはただ単に攪乱していただけのもより m(_ _)m 重ね重ね
03/10/28 23:46ID:azm6mgGm
>>39
スクリプト荒らしの時ですけど、晒しじゃなかった複雑なキーがいくつもクラックされてました。
だから、偶然にしてはちょっと変としか・・・

>>40
トリップいいなぁ・・・
辞書アタックってどういうのですか?
03/10/29 01:50ID:E8nK4S+4
むしろ #12345678 という形で所謂旧鯖仕様にしちゃった方が混乱しないと思うなー。
今でもあちこちでトリップの付け方良く分かんない人とか説明受けたりしてるし、
これ以上難しくしちゃうともっと説明が大変になっちゃうよー(汗

そんでもって、拡張する時だけ##12345678みたいに特別なキーにした方がいいと思うー。
おいらも##で始まるキーや変なのは持ってるけど、そういうキーを使ってる人は
騙り防止だけで付けてる訳じゃなくなってるから、その位の苦労は大丈夫なんじゃないかなー(汗

>>42
辞書に載ってる単語を片っ端から当てはめてって、一致するキーを探り当てる方法だよー。
そっから今では、人名とか何かのデータベースを元にキーを捜す方法を辞書法って言うようになったー。

トリップキーだけじゃなく、ログインパスとかこの方法でやるとかなりクラックされちゃうんだよねー。
だからパスは辞書に載ってるのまんまは危険なのー。
03/10/29 08:55ID:muB2q94m
FreeBSD のサーバを、旧サーバ互換にするだけのほうがいいと思いま
す。理由は >>43 さんと同じです。

鳥屋さんたちのようにトリップに造詣の深い人たちにとっては、>>41
ようなやりかたがいいのかもしれませんが……。



ついでに八桁に戻してもらえると、このトリップも見栄えが良くなって嬉し
いですが。(w
03/10/29 13:03ID:oXqsa+T1
8桁くらい自分で探し直せヴォケ!!!!!
03/10/29 14:49ID:JaJa+T3G
1. #12345678 通常トリップ。
2. ##ABabcdefgh 塩(AB)指定トリップ。
3. #$HHHhhhhhhhhhhhhhhhh 全指定トリップ。
4. #*12345678 通常トリップ。従来のキーの先頭が [#$*] で始まる人向け。

こんな感じでしょうか?
取り敢えず上記のトリップ回路テストページをこれから作ってみたいと思います。
それでいろいろやってみて不具合が出るようでしたらいろいろあーだこーだなどなどと。
03/10/29 17:58ID:zidQt23O
>>44
古い話ですが、もしかしてトリップ評価スレが荒れた原因の方ですか?
鑑定人にCCSAKURAを知らんとは何事だゴルァ!!→その後荒らしまくり
の人ではないですよね?
03/10/29 18:43ID:JaJa+T3G
>>46
でっちあげてみました。
http://baila6.jp/sv2ch/tripper/
塩が欠落しているときは、強引に [H.] になるようなならないような。。。
03/10/29 18:53ID:vEDi43Jo
>>42
トリップのクラックなんて簡単かと。

串鯖立てて、サイバー(ryに登録しておく。
あとは、アク禁食らって困っている2ちゃんねらーが
トリップをつけて書き込みするのを待つのみ。

というわけで、みなさん安易に串などお使いにならぬよう…。
キャップパスつけて串を通して書き込みなんてもってのほかですよ。
■ このスレッドは過去ログ倉庫に格納されています