Entry

暗号化ソフトのファイル仕様

2010年07月30日

暗号化ソフトをボチボチ作っていて,大変なことに気づいたんですけれど,巷の暗号化ソフトって復号時の鍵が合っているかどうかをチェックする機能があるんですね。知らんかった。つけてないよ,そんな機能。

Rijndael にしても Twofish にしても,暗号アルゴリズム自体は,鍵を使って入力ストリームを計算するだけなので,計算した先が正しいものなのかは分かりません。つまり,「鍵を使って計算すること」だけが暗号アルゴリズムがすることで,復号時の鍵と暗号化時の鍵が同じものかは,別の手段を使って照合しないといけないんですね。

で,巷の暗号化ソフトをボチボチみていたんですけれど,暗号化されたファイルをバイナリエディタで開いてみると,それっぽいヘッダなんかがあったりする。これで鍵を照合してるのか……。

しかし,そうだとすると,このヘッダを読めてしまうことが,そもそもセキュリティホールになってしまうんじゃないだろうか。例えば,鍵をヘッダに書き込むようなアホなまねはしないまでも,鍵のハッシュ値をヘッダに書き込んで照合している,なんてことはありそうです。そこで,MD5 のような弱いハッシュを使っていたら,ファイル本体を暗号化するアルゴリズムが Rijndael のような強力なアルゴリズムであっても,鍵自体がばれてしまう可能性がある。

とある暗号化ソフトが暗号化したファイルでは,平文でヘッダが読めてしまったけれども,これは危険な気がする。どうせやるなら,ヘッダも暗号化するべきなんじゃないだろうか。また,単純に固定の文字列ヘッダを暗号化するようでは,何度か値を変えて繰り返すことで鍵を推測できてしまう可能性がある。例えば,鍵のハッシュに加えて,2ブロック目のハッシュや,暗号化時の時刻のような「動くもの」をシードにして,そのブロックを暗号化しておく必要があるんじゃないかと思います。

Rijndael ってのは「非常に強力な暗号化アルゴリズム」ということになっているけれども,ファイルヘッダから鍵がばれるリスクを考えると,強力なアルゴリズムを使っているからといって,強力な暗号がかかるわけでもない気がしてきました。気のせいだといいんだけども。

Trackback
Trackback URL:
[2010年07月31日 04:15] セキュリティって。。。 from QA日記
こんな仕事をしているものですから、 セキュリティにも当然関心があるわけでして。 最近やたら暗号化とかいってるけど、 いままでで破... [more]
Ads
About
Search This Site
Ads
Categories
Recent Entries
Log Archive
Syndicate This Site
Info.
クリエイティブ・コモンズ・ライセンス
Movable Type 3.36
Valid XHTML 1.1!
Valid CSS!
ブログタイムズ

© 2003-2012 AIAN