◆ 全サーバトリップ統一作戦
■ このスレッドは過去ログ倉庫に格納されています
現在三つに分かれているトリップの仕様を統一しようという作戦 >>2-5 辺りも読んでください。 >uma系鯖では tripkey のない場合の対処がややこしそうですね。 >現に、 uma系鯖では tripkey のない場合、# が出てくるのも謎だし。。。@本来はマッチしないので出てこないはず? これって、名前欄に「名前#」って入れるって事ですかね? おつかれさまー ところで、こんなトリップも出せることに気づいたのですが、 今回考える新仕様では、これに対応する必要ないっすよネ? …いや、対応は造作もないのだが。 uma 系鯖での現状での不具合。 1. トリップキーがないと # が出て来ちゃう。 (凡例:この書き込みの名前欄参照) 要因:現在不明(^-^;;) 2. _ の扱いでトリップが消える。 塩に '_' が含まれていたりキーに '_' が含まれていたりいろいろ。 (凡例:#______ のように '_' が 6 つ以上連なってもトリップが消えるみたい。 要因:crypt()での振る舞いが違うため。 対策? 1. uma系鯖に限って、 ・crypt する前にキーが存在しないときは何らかのキーを与える。 ・crypt() の返り値が undef の時に何かキーを与えてみる。 ・もしくはトリップを作らなくするとか?→名前部分だけ返す。 2. [./0-9A-Za-z] にマッチしない文字を別の文字に変更する。 ・'.' が妥当? ・もしくは他の文字を与える? こんな所でしょうか。 これが解決できれば、鳥屋TMさんの提案されている塩指定も盛り込めるのではないかと。 >>13 そのとおりです。名前欄に '#' のみでもOKです。 >>14 わー(汗)@ラストに '1' 1は、全サーバそういう仕様だと思いますー。 #(.+) の時にトリップ作る仕様になってますから。 >>16 大いなる勘違いをしていました(汗) って事でこの件は無かったことに(苦笑) いったん自宅に帰ろう。 >>15 (1)に関しては、どちらかというとトリップ仕様の範囲外。 想像ではPerlのバージョン依存。 トリップキー抽出部を見せてもらわないことには何とも言えず。 (2)を解決し、ついでに「新鯖トリップ問題」を解決し、 ついでについでに玄人仕様を盛り込んだのが、>>2-3 案です。 新鯖トリップ問題に関しては要望があれば解説します。 (ずーっと、流出スクリプトのトリップ生成部が2chで使われてるものと 同じだと思いこんでたので、いろいろ誤解してたのだが、すべて解決!) ちなみに、今動いてるのは、>>5 の初代と二代目を足したものです。 さてと、それではお塩に関しては、 $salt =~ tr/:;<=>?@[\\]^_`/ABCDEFGabcdef/; $salt =~ tr/[\.\/0-9A-Za-z]/\./c; でよいのかな? >>18 判りやすく解説キボンヌですm(_ _)m >>21 それで旧鯖仕様互換にできるのだけど さて、新鯖トリップを活かしたい人をどうしよう というために、Salt任意指定があればいいなと思うワケです。 >>24 とりあえず新鯖専用トリップの人を冷遇するのは反対。 なのでその案に賛成かな。 新鯖トリップ問題 【現象】 2002秋以降に新設された鯖で、一部のトリップが 従来と互換のない出力になり、鳥屋が困り果てて右往左往した。 (後半は余計だ) sakuraに設置されていた鯖も、新鯖と同様の振る舞いをしていた (ただしトリップは8桁のまま) 具体的には、Saltに一部の記号・漢字・半角カナが含まれてる トリップが該当。 【原因】 crypt(3)に範囲外のSaltを与えていた bbs.cgi スクリプトと、 範囲外Saltに対して実装依存の振る舞いをする各ライブラリの crypt(3) との食い合わせ。 Saltは、1文字あたりで、 . / 0-9 A-Z a-z を、0-63 の数字に変換 するのだが、この変換ロジックの手抜きにより、実装依存の挙動が生まれた。 (次につづく) ・旧鯖(たぶん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が範囲外の文字だったらエラー。 (以上は想像上のものです。ソース読まずにカキコ) 鳥屋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 こんな感じ。 >>28 ×無し = 新式 12 桁トリップ MD5 型(末尾の 1 文字を落してから末尾から 12 文字分を抽出) ○無し = 新式 12 桁トリップ DES 型(末尾の 1 文字を落してから末尾から 12 文字分を抽出)ただし glibc2 のみ。 >>28 2,3の新鯖式は4,5の塩が指定できるモードや 6,7の16進数モードがあれば 新鯖専用トリップも表示できるので特に必要のない気もしますね。 それと、0,2,4,6の8桁トリップはいまさら必要のない気もします。 (あってもクラックされる確立が高くなるだけだし…) >(◆のあとに半角 space が入る→従来トリップのクラック防止のため) とはどういう意味があるのでしょう? >>31 8 桁は昔を懐かしむ程度の物なので必要ないかもしれませんです(苦笑) > >(◆のあとに半角 space が入る→従来トリップのクラック防止のため) > とはどういう意味があるのでしょう? クラック目的で既存のトリップキーを解読された場合のことを想定してみました。 管理側の★さんが使っているトリップや、トリップを使っておられる方を騙って荒らしをするおばかさん対策とでもいいましょうか。 クラックされた場合でも0-3でトリップを出すことは可能でしょうしあまり意味がないような…。 8桁を懐かしがりたい人はsports2に逝くとか、したらばとか、 >>33 従来のクラックでは 10 桁トリップの場合だと n/64 の確率*でしたが、 新式の「塩」と「キー」指定となると、さすがに実証はしておりませんが、 64/64 の確率に限りなく近づくのでは無かろうかと危惧したためです。 * crypt の吐き出す 3 文字目の種類。 従来のトリップでは 64 種類全て出すことは不可能「かも」しれないけれども、 新式の「塩」と「キー」指定となると 64 種類すべて出せる「かも」しれない。 考えすぎかもしれないけれども(苦笑) 統一するなら旧鯖式がいい。 桁数は10桁か11桁。 >>35 Saltは4,096通り(=12ビット)ね。 Saltが変わるということは、方式の系統が変わるということで、 別指定できれば、鍵空間が実質56+12ビットになります。 新鯖仕様のように、鍵に対してSaltが対になっている場合は 鍵空間は56ビットのままとななります。 (旧鯖の場合は、56ビット以上57ビット未満) トリップの詐称と鍵解読は別問題ですが、 10桁トリップの詐称(=完全一致を見つける)は、わたしの手元でも 100年以上かかる計算です。 鍵解読(クラッキング)に関しては実践したことがないのでパスですが 人間の入力しやすい空間を探せばわりと早く見つかるもののようです。 どこかで非公開トリップが完全クラックされた事件があったけど、あれは一体どうやってやるの? 単純なキーだったとか、自分が公開してないつもりでも実は晒しトリップだったとか、 晒し依頼で貰ったの忘れてて公開してないと思い込んでたり。 ただ偶然運悪くクラックされてしまった可能性も無きにしも非ず。 >>38 それがいわゆるキーのクラックですね。 辞書とかでアタックかけたり、方法はいろいろだと思うけど。 >>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 重ね重ね >>39 スクリプト荒らしの時ですけど、晒しじゃなかった複雑なキーがいくつもクラックされてました。 だから、偶然にしてはちょっと変としか・・・ >>40 トリップいいなぁ・・・ 辞書アタックってどういうのですか? むしろ #12345678 という形で所謂旧鯖仕様にしちゃった方が混乱しないと思うなー。 今でもあちこちでトリップの付け方良く分かんない人とか説明受けたりしてるし、 これ以上難しくしちゃうともっと説明が大変になっちゃうよー(汗 そんでもって、拡張する時だけ##12345678みたいに特別なキーにした方がいいと思うー。 おいらも##で始まるキーや変なのは持ってるけど、そういうキーを使ってる人は 騙り防止だけで付けてる訳じゃなくなってるから、その位の苦労は大丈夫なんじゃないかなー(汗 >>42 辞書に載ってる単語を片っ端から当てはめてって、一致するキーを探り当てる方法だよー。 そっから今では、人名とか何かのデータベースを元にキーを捜す方法を辞書法って言うようになったー。 トリップキーだけじゃなく、ログインパスとかこの方法でやるとかなりクラックされちゃうんだよねー。 だからパスは辞書に載ってるのまんまは危険なのー。 FreeBSD のサーバを、旧サーバ互換にするだけのほうがいいと思いま す。理由は >>43 さんと同じです。 鳥屋さんたちのようにトリップに造詣の深い人たちにとっては、>>41 の ようなやりかたがいいのかもしれませんが……。 ついでに八桁に戻してもらえると、このトリップも見栄えが良くなって嬉し いですが。(w 1. #12345678 通常トリップ。 2. ##ABabcdefgh 塩(AB)指定トリップ。 3. #$HHHhhhhhhhhhhhhhhhh 全指定トリップ。 4. #*12345678 通常トリップ。従来のキーの先頭が [#$*] で始まる人向け。 こんな感じでしょうか? 取り敢えず上記のトリップ回路テストページをこれから作ってみたいと思います。 それでいろいろやってみて不具合が出るようでしたらいろいろあーだこーだなどなどと。 >>44 古い話ですが、もしかしてトリップ評価スレが荒れた原因の方ですか? 鑑定人にCCSAKURAを知らんとは何事だゴルァ!!→その後荒らしまくり の人ではないですよね? >>46 でっちあげてみました。 http://baila6.jp/sv2ch/tripper/ 塩が欠落しているときは、強引に [H.] になるようなならないような。。。 >>42 トリップのクラックなんて簡単かと。 串鯖立てて、サイバー(ryに登録しておく。 あとは、アク禁食らって困っている2ちゃんねらーが トリップをつけて書き込みするのを待つのみ。 というわけで、みなさん安易に串などお使いにならぬよう…。 キャップパスつけて串を通して書き込みなんてもってのほかですよ。 >>50 sec2chとかは本気でそうすべきかもw >>47 違います。 1. 〜 4. まで試してみました。どれも期待通りの結果になりました。 >>43 豚楠。 安易なワード入れるのは危険なんですね。 >>49 (((((((((((((((゚Д゚)))))))))))))))ガクガクブルブル これからうかつにトップリつけるの控えますです。 でも、どうゆう原理になってるんですか?(まじわからない・・・ 厨な質問でごめんあさい。 >>52 早速のテストありがとうですm(_ _)m あと気になるのは末尾に 1 。 ちなみに出ちゃいますか?(汗) 0x08 0x7F とかかしら? >>58 pb3でですか? 今は仕様ですよ。 ↑の人がなんとかしてくれるまでまちませう。 >>58 新鯖トリップ とは旧鯖でちゃんと表示されない新鯖専用トリップのことかな? >>48 のページでは旧鯖仕様のトリップが表示されるので 新鯖専用トリップを表示させるならキーとsaltを別に指定しないと駄目です。 それをやったうえで新鯖トリップが表示されないならスマソ >>61 普通に入れると旧サーバのトリップが出ます。 新サーバのトリップを出す場合は、2. の形式でないと駄目です。ただ、塩 に何を入れればいいのかが、普通の人には分からないですよね……。 塩を入れるのではなくて、新サーバ用と指定できるほうが分かりやすい ところなんですが……。 新形式にするのは(・∀・)イイ!!けど、 今まで普通に使えてた鳥はそのまま継続して使えるようには出来ないの? 一般の利用者にも分かりやすいように、2. の形式から塩を取り払って、 2. ##12345678 新サーバ・トリップ。 にしてもらえればいいかもしれません。 塩を指定したいようなマニアックな人は、3. の形式を使ってもらうというこ とでいいかと。 ね、鳥屋さん。 旧鯖○新鯖×のトリップは仕方ないにしろ、 旧鯖○新鯖○のトリップが新々鯖で使えないってのは駄目だな・・・ なんか、一部のマニアックなユーザー優先の改良のように思えて仕方ない。 未だに旧鯖トリップの新鯖での文字化けについて理解してないユーザーも多いのに。 もっと一般ユーザーに優しい改良をしてもらわないと。 暫定的に「新鯖式」を動かしてみました。 書式は、「#!12345678」 でも[_]だけ[.]に変換させているけれどこれだと新々鯖(uma鯖)では不具合(◆だけしかでない)が出るかもかもかも。 >>71 あ、もしかして、、、 実験はこちらで行っています m(_ _)m 新式トリップ回路のテストページ http://baila6.jp/sv2ch/tripper/ トリップマニヤだ。 一般人、逸般人、マニヤ、管理サイドみなを完全に満たすような 仕様って作りようがないので、どこか落としどころをつくらないと いけなくて、これはこれで苦慮している。 トリップのスキームをいじるのは単純だけど難しい。 完全に旧鯖仕様に準拠してしまうと、新鯖特定板オンリー住人が かわいそうだ。 # の次の文字に特別な意味を持たせる方式(わたしが提案して 未承諾さんが実装してくれたもの)では、トリッパなどで先頭が 該当文字が出てしまったものを使ってたときにきっと面食らうだろう。 トリップ用エスケイプ文字に # 以外のものを導入すると、 その記号をコテハンに使ってたユーザさんが思いっきり面食らうだろう。 (事実、わたしが2chに出入りし始めた時点で、# をコテハンに含ませて いたらある日いきなり変換されだして面食らった) というわけで、まずトリップキーに使用されることのない文字 " & < とかを使用するというのは、どうだろうか? 例) 生salt 指定 #>ABxxxxxxxx 生キー #&XXYYYYYYYYYYYYYYYY ところでMD5トリップをサポートする必要、あるだろうか?? (w 補足。 なぜ、Salt変換ロジックを旧鯖仕様にすることにこだわっているかというと、 単に、新鯖仕様Salt変換をわざわざそのために実装してもらいたくないからです。 生キー指定も、3桁の16進とか4桁の8進でしていするよりもむしろ、 旧鯖仕様2文字で指定してもらう方がよかったりするかもしれない。 トリップが化ける人用に、対策変換CGI, Flashを、新鯖だった板の ヘッドラインに貼ってもらうようにすれば、少しは混乱が緩和するかなと。 以下、晩酌でヘロヘロになった頭で書いた模式。 if (/^&(..)([0-9A-F]+)/i) { $salt = $1; $key = $2 =~ s/(..)/pack('H2',$1)/eg; } elsif (m!^<(..)(.+)!i) { $salt = $1, $key = $2; # もし、この型式で新鯖仕様Saltを使いたい場合は、変換をココに入れよ。 } else { $key = $_, ($salt) = /^.(.*)/; } # MD5トリップを活かしたい場合は以下を再吟味せよ $salt =~ s/[^.-z]/./g; $salt =~ tr/\x3A-\x40\x5B-\x60/\x41-\x47\x61-\x66/; $trip = crypt($key, $salt.'H.'); ちなみにたぶん、トリップ変換に来るまでに、 トリップキー部分の " & < > などは " & < > などに 置き換えられているだろう。 連続カキコのわっ × " & < > などに ○ &quot; &amp; &lt; &gt; (&は半角) などに >>鳥屋様 sageなのにageるsageですか? なぜ? ( ・3・)つ " & < > #<option>key という書式でも良さそうですね。 &< と &> で囲まれた 1 文字の option で判別するとか。 →書式不備の場合はそのまま &< を垂れ流すか、代替で 'H.' にするとか。 このあたりも煮詰めた方が良さそうですね。 ♪トリップ史には疎いので申し訳ないけれども、 個人的には今までのトリップ回路では不備だらけなので、 新しい形式のがあった方がよいかと思うです。 こんなことをして遊べる余地があるというのも、楽しいかも。 #$HHHhhhhhhhhhhhhhhhのHとhに何を入れてよいかが分からぬ(;´д`) #>ABxxxxxxxx #<ABhhhhhhhhhhhhhhhh にて実装してみました。ついでにMD5トリップも通るようにしてみました。 http://users72.psychedance.com/test/read.cgi/2chdown/1065795263/190 ついでに、トリップ変換テストもつくってみました。 http://users72.psychedance.com/test/trip.cgi 今回のソースはこんな感じ。 $key = $1; ($key =~ /^<(..)([0-9A-F]{16})/i ? ($key = pack('H16', $2)) : $key =~ /^>(..)(.+)$/i ? ($key = $2) : ($key.'H.') =~ /^.(..+)/); $salt = $1; $salt =~ tr/\x3A-\x40\x5B-\x60\x00-\x2D\x7B-\xFF/A-Ga-f./ unless $salt =~ /^\$\d/; $FLAG{'trip'} = substr(crypt($key, $salt),-10); そのトリップ変換テストでは、やっぱり新鯖で化ける旧鯖トリップは新鯖で使えないままみたいだけど・・・ そういうことが無い様にはできないの? >>103 そいつぁ不可能です。 なので、せめて、新鯖専用トリップを表示できるような仕様を盛り込もうと。 >>101 0123456789ABCDEFabcdef のうちのいずれかの組合せです。(いわゆる 16 進数) >>102 当方も、その仕様に合わせてみます。 >>103 ./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz の 64 種類のうちのいずれかの 2 文字の組合せで「塩」の代替できれば可能なのですが。 、、、その可能性は低いかもです(泪) こうなるとシミュレートするよりも新旧各鯖にトリップ生成ルーチンを仕掛けておき、その返り値をもらう方が良さそうですね(苦笑) 何もわかっちゃいない香具師等がウンチく垂れてるスレはここでつか? http://baila6.jp/sv2ch/tripper/ 新鯖変換機構(w を取り付けてみました。 全ての新鯖トリップ化けに対応できているのかは判りませんが、いろいろと試していただけるとありがたいかとm(_ _)m >>107 ぎくっ(汗) ちなみに>>102 のロジックでは、 無効な拡張キー($9 とか)喰わせたら、たぶんFreeBSDでは 出力が空白になったり : だけになったりします。 2文字目が $ 3文字目が数字 のときに起こり得ます。 なので、トリップをくっつけるときに、10文字の出力が得られていない 場合に細工を施すか、いっそのこと MD5 トリップを(Blowfishも?)禁止 してしまう方がいいかと。せっかく発見したのにナニですが意見求む。 (unless〜 を削れば、MD5トリップは無効になる) MD5トリップ (長所)キーを思いっきり長くできる。Saltも柔軟に指定できる。 (長所)DESトリップでは出ない、末尾 / 0 1 が出せる。 (短所)DESトリップより十数倍重い。 Blowfishトリップ(現在どの鯖でも試せないもよう) (長所)勉強不足なのでよくわかってない。 (長所)末尾に . 0 2 4 6 8 ... w y の32文字が出せる。 (短所)新々鯖でしか出せない。 (短所)MD5トリップよりも指定が難しそうだ。 (短所)MD5トリップよりもさらに重い(教科書の知識)。 MD5トリップは無くてもいいんじゃないかな…。 どうせ使えなくするなら早い方が被害が少なくてすみそうだし。 >>109 サーバの負荷を増やすようなのは、避けたほうがいいでしょう。 管理人さんがいい顔しないと思いますよ。 旧鯖でMD5トリップが使えるというのは私の思いこみだった。 というのは置いといて。 >>110 じっさいのところホンキでMD5トリップ空間でトリップ探しを やるような漢はいなかろう。ただでさえクソ重いのに。 このタイミングなら、禁止しても文句は出るまい。 >>111 新鯖と互換性を取るために盛り込んだ仕様ですが、 問題点はいっぱいありそうなので、この仕様は廃止に してしまったほうがよさそうですね。 他の方のご意見を伺いたかったのです。 ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる