トップページ > 記事閲覧
DXアーカイブの脆弱性と改善提案
名前:8127 日時: 2018/07/26 12:14

私が作ったゲームはDXアーカイブの暗号化機能を用いています。 噂でtouhouSEというフリーソフトで.dxaが展開できると聞いて、まさかと思って試したのですが展開されてしまいました。 暗号化時に14byte(漢字7文字)を使っているのにもかかわらず数秒で展開されたので、さすがに総当たりでキーを探しているのではないと思いました。 touhouSE(とDxArchive)のソースを読んだのですが、以下のことが分かりました。(アーカイブver6の仕様) ・アーカイブの圧縮時にどんなPWを指定しても、12byteのキーに変換されて圧縮される ・暗号化処理は12byteごとにキーとのxorをかけている ・.dxaの初め48byteは様々な情報を含んだヘッダである ・ヘッダのうち、8byte目から4byteはヘッダのサイズ48 = 0x00000030 が必ず格納されている ・touhouSEは、この仕様を悪用して8byte目から4byteを読み、それと0x00000030のxorをとることでキーの上位4byteを取得している ・同様の方法で全キー12byteを解析される となっているようです。 私の思いつく範囲の対策では以下のようなものがありますがいかがでしょうか? ・48byteのヘッダに対しては、悪用されるのでxor処理をしない ・キーを12byteではなく例えば1024byteにすれば、暗号化前のデータに0x00000000等があったとしてもキーの解析は難しくなるのではないか。 ・ユーザーの入力した短いパスから1024byteのバイナリキーを得る方法として、MD5等の一方向ハッシュ関数を使う ※管理人様は今特にご多忙でいらっしゃると思いますので、すぐに直していただかなくて構いません(11月までにやっていただきたいです・・・) ※私用のため私は今から5日ほど返信できません。
メンテ

Page: 1 | 2 | 3 |

Re: DXアーカイブの脆弱性と改善提案 ( No.1 )
名前:yumetodo 日時:2018/07/27 22:16

そもそもDXArchiveの暗号化って結局共通鍵なので、プログラム割って鍵を取り出すことが理論的に可能なので無意味かなと。 暗号化機能自体deprecatedにするべきではという思い。
メンテ
Re: DXアーカイブの脆弱性と改善提案 ( No.2 )
名前:管理人 日時:2018/07/29 01:34

ご情報&ご提案ありがとうございます 流石にパスワードを知らなくても解凍できてしまうのはまずいですね・・・ ご提案の方法を試してみようと思いますので、お時間をください m(_ _;m > yumetodoさん 現在プログラムを割るまでもなくファイルを展開できてしまうようなので、 せめて『ソフト毎にプログラムを解析してパスワードを探し出す』くらいの 手間はかけなければならないようにしたいと思います
メンテ
Re: DXアーカイブの脆弱性と改善提案 ( No.3 )
名前:yumetodo 日時:2018/07/29 13:28

DXArchiveを紹介している - ttp://dxlib.o.oo7.jp/function/dxfunc_other.html#R15N32 - ttp://dxlib.o.oo7.jp/dxtec.html に、鍵文字列の扱いについて追記したほうがいいのではないかと思います。共通鍵暗号の事前知識がないとDXArchiveの安全性を誤解してしまうように思います。 前にttp://dxlib.o.oo7.jp/cgi/patiobbs/patio.cgi?mode=view&no=4371 でも話題になってましたが。 --- MD5とかSHA-1のような安全ではないものではなくSHA-256などを利用したいところ。
メンテ

Page: 1 | 2 | 3 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存