2006年7月24日から2006年7月20日までの日記を表示中

2006年 7月24日 (月)

x-mixi-encrypted

コメント欄にも書きましたが,ついに,ようやくx-mixi-encrypted攻略完了です.整理するために自分用にライブラリにしてみようとCで書きはじめたんですが・・・ああ,もう,何て爽快な(笑).エンカウント率50% のダンジョンを抜けて飛空艇に乗(ry

中の仕組みは・・・超大雑把に書くと,中のユーザ鍵と初期ベクトルで,中のデータから鍵束を作り,セッションIDのハッシュから鍵を選んで,色々くっつけて,ハッシュで選んだ鍵と乱数で暗号化してさらに色々くっつけて,ってな感じです.これで復号できるわけですから,最後に何を色々くっつけるかは(略).正直,一番最初に手をつけたのが鍵束を開くための鍵だったのはラッキーでした.それ以外にも運に助けられまくりでしたが.AESの実装はGPL違反なんじゃないかとしつこく言ってみるテストw

で,こんな偉そうに書いてみましたが,早速ライブラリを使ってデータを作成し,手ポストしてみたんですが,見事にはねられてしまいました(´・ω・`)にょろーん. 一ヶ所バグがあったんで直したんですが,それでもまだはねられます.mixi-stationが送ったパケットをetherealでキャプチャ → 自前のライブラリで復号化 → 暗号化に必要な情報の抽出 → 暗号化してキャプチャしたデータと比較 ・・・というテストをやると確かに一致しませんなぁ.散々悩んだ挙句,サンプルを変えてみたらあっさり手ポスト成功∩( ・ω・)∩ワーイ.・・・タイトルに「〜」が入ってたからか・・・orz.一部でお馴染みの,UTF-8の「〜」問題っぽいです.ということは,最初のバグとった時点で手ポスト可能だったんだなぁ.

さて,今後ですけど,まずは自分で使ってるもんに組み込んでみて,しばらく内輪で様子見かなぁ.mixiの方にLinuxプラグインが欲しいという要望も出ましたし,今後の展開に注目です.もっと詳しく知りたい人は・・・

ちなみに,ライブラリ化の際に OpenSSLの AES_cbc_encrypt を使おうとしたんですが,何故か全然値が合いませんでした.鍵もデータもあってるはずなのにぃ・・・.謎です.SHA1は簡単だから自分でサクッと書けますが,AESはなかなかめんどくさそう・・・.AESと知らずに半分ほど書いたけど(^^;.

[コメントを書く]

OBONO 2006/07/25(火) 09:28:31
おおお、ついにやりましたね。素晴らしい。
しかし、しばらく飛空挺を楽しんでいるうちに、ボスみたいなのが出てきて強制イベント突入…とかシナリオを想像してしまうのですが。
とおりすがり 2006/07/25(火) 21:03:38
http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/crypto/rijndael/rijndael-alg-fst.c?rev=1.7&content-type=text/x-cvsweb-markup

これベースだと別にGPL違反でも何でもないような
nosuke 2006/07/26(水) 05:33:04
テ,テストに突っこまないでください(^^;

じっくり読んでないんですがNetBSDの実装はテーブルがものすごいですね.

http://search.cpan.org/src/DIDO/Crypt-Rijndael-0.05/_rijndael.c
http://search.cpan.org/src/DIDO/Crypt-Rijndael-0.05/rijndael.h
に似てるなーと思った理由は,
- 内部で鍵を上記ヘッダのRIJNDAEL_contextと同じデータ構造でやりとりしていた
- 6種類のモードにswitchで分岐するような構造になっていて,モードの番号が CBC は 2になっていた
- サブルーチンコールとCの関数が綺麗に対応しているように見えた
などなどです.

まあ,本腰入れてあちこちの実装を探したわけでもなく,Crypt-Rijndael 自体が何かを参考にして書かれている可能性も大いにあると思うんで,あくまで「テスト」です・・・

2006年 7月23日 (日)

mixi-station と AES

SHA-1でハッシュしたところで向こう側で復元できないわけなんで,暗号化では別にやってるようです.が,この辺のルーチンが普通のプログラマが思いつくとは思えないくらい非常に複雑だったり(これでエンコードしたとして,どうやってデコードすんの?って感じ),どう考えても通りようの無い条件分岐がいっぱいだったりして,こちらも何かメジャーな仕組みを流用しているっぽい感じ.でもうまく検索できなかったんで根性でCで起こしたんですが,ふと書き起こした中の配列の一部でググってみた所,AESという答えが出てきました・・・.ヽ(`Д´)ノ ウワァァァン,もっと早く気づいていれば・・・ orz.必要な所,かなりCで再実装しちゃったし(;´Д`).つかSHA-1にAESですか.ガチガチね.

ちなみにAESの実装をいくつかググって探して眺めてみた感じでは,これが非常に近い感じした.というかモロこれなんじゃないかなぁ.・・・あれ,これLGPLですけど(・∀・)ニヤニヤ

[コメントを書く]

nosuke 2006/07/24(月) 07:13:12
解けたー
yaz 2006/07/24(月) 08:00:34
おめでとうございます。実は私、通信サイズなどから共通鍵ブロック暗号だなと当たりを付けて、Crypt-Rijndael-0.05でも実験したことあるんですが、キーやら何やら分からずに放棄していました。すばらしいです。
dachk_wr 2006/07/24(月) 14:43:12
お疲れさま&おめでとうございます〜パフパフ〜

SHA-1+AESでしたか。わたしも何か共通鍵暗号だろうナァと言うところまでは詰めてましたが、どんな鍵かつどんな暗号方式でやってるのかなと言う根元が皆目分からないんで投げちゃいました。
nosuke 2006/07/24(月) 18:28:40
どうもです.結局上のcpanのところにあるrijndeal.cに助けられて一気に終わった感じですねー.事の詳細は後でまとまったらメールするかもです.

納車されました.まだ乗ってませんが.でかい買い物ですなぁ.今度は転がしたりしないぞ・・・orz.

2006年 7月22日 (土)

アップデート

これ見てドッキリですよ.とりあえずのところ旧版でも通るようなので一安心ですが,心臓に悪い (;´Д`).

uim-1.2.0-alpha

まだ試してないんですけどね・・・.いい加減uim.elのスクロールの挙動も直さないとまずいし.最近,自分で使っててイライラしまくり(^^;

[コメントを書く]

ekato 2006/07/23(日) 16:22:28
そういえば、uim-el の挙動でひとつ気になった点がありました。
prime とか anthy の予測入力で候補ウィンドウがあるけど、候補が
選択されていない状態、というのがあるのですが、uim-el では候補が
選択されているように見えてしまってます。
もし簡単そうだったら、1.2.0 までに直してもらえるとうれしいです。
nosuke 2006/07/24(月) 04:12:54
うおー.確かに変ですね.他にもprime で変なところあるっぽいしorz
1.2.0に間に合うかわかりませんが,直してみます・・・.
nosuke 2006/07/29(土) 03:53:40
今更ですが直しました.遅くなってすいません・・・.
ちなみに,上記現象,uim-qtでも同様っぽいっすね.
↓な感じの修正でいけるっぽいですが,ちょっと不安・・・
--- ../../uim/trunk/qt/immodule-candidatewindow.cpp 2006-06-26 22:35:39.000000000 +0900
+++ immodule-candidatewindow.cpp 2006-07-29 03:49:56.000000000 +0900
@@ -241,10 +241,6 @@
new QListViewItem( cList, headString, candString, annotationString );
}

- // set index
- if ( newindex != candidateIndex )
- setIndex( newindex );
-
// size adjustment
adjustSize();
}
--- ../../uim/trunk/qt/candwin-qt.cpp 2006-06-26 22:35:39.000000000 +0900
+++ candwin-qt.cpp 2006-07-29 03:48:48.000000000 +0900
@@ -91,7 +91,7 @@
numLabel->setFocusPolicy( QWidget::NoFocus );

nrCandidates = 0;
- candidateIndex = 0;
+ candidateIndex = -1;
displayLimit = NR_CANDIDATES;
pageIndex = -1;

2006年 7月21日 (金)

日記

最近どんどん掲載する時間が後にずれているというか,起きてから書くこと多し.だからどうというわけでもないんですが.

夏コミ

もうカタログも発売しているというのに,まったくチェックしてませんよ.というか,その前に例大祭のCD聴かないと・・・.まだ1/4くらいしか聴けてない上にタグは1個もつけてないというorz.

アセンブラ

まさにダンジョン.よ〜し,このフロア(サブルーチン)は探索完了!・・・と思ったら下のフロアへの階段(call)1個見落としてたし,みたいな.まあ,フロアマップが自動生成じゃなくてほんとよかったです(笑).明日こそ脱出・・・できたらいいなぁ.

2006年 7月20日 (木)

VMwareのRevert

ディスクキャッシュに全部乗ってるからなのか最適化されまくってるからなのか知りませんがRevertが3秒かからずに終わります.まじ早い.

mixi-station for Winamp

Winamp用のプラグイン,オフィシャルで出ましたね.要望が多かったんすかね.一瞬クライアントアップデートと勘違いして超焦りました(^^;.もう解けるというところでプロトコル変わって一度も試せぬまま・・・というのが一番虚しい・・・.

2006年7月24日から2006年7月20日までの日記を表示中

中の人情報

名前:
nosuke (のすけ)
メール:
sasugaanijaのgmail.com
「の」は「@」みたいな
関連リンク:

カレンダー

2006年7月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          

<<先月分

翌月分>>

最新の10件のエントリ

最近の10件のコメント

過去ログ