トップページ > 記事閲覧
Android版:DXアーカイブの暗号化機能について
名前:was-blue.0793 日時: 2018/10/31 18:52

DXアーカイブにはパスワードで内部ファイルを暗号化する機能がありますが、 Android(iOS)アプリをストアに公開する上では、日本及び米国の法律で暗号化技術を含むアプリに規制があるようです。 参考:http://tmurakam.hatenablog.com/entry/20111009/1318137457 Android(iOS)のアプリをストアに公開することは日本及び米国からの輸出にあたり、鍵長によって規制対象となるかが変わります。 概ね共通鍵方式で56bit、公開鍵方式で512bit以上の鍵を使う暗号化は、アルゴリズムに関わらず規制対象となる暗号化になります。 DXアーカイブに使っている暗号化の鍵長・方式によってはDXライブラリを使うAndroidアプリ全体の問題になると思います。 Android(iOS)版に限り、DXアーカイブの暗号化・復号化機能を外した方がよいかと思いますが、いかがでしょうか。
メンテ

Page: 1 | 2 | 3 |

Re: Android版:DXアーカイブの暗号化機能について ( No.27 )
名前:8127 日時:2018/11/11 22:24

管理人様、 >少なくとも『プログラムによる固定処理』で鍵が割り出されて >しまうことはなくなるのではないかと思いまして pngファイルに必ず含まれるバイナリは16byte = 128bitで、89504E470D0A1A0Aなのですが、 暗号化キーが56bitだと暗号文に片っ端から89504E470D0A1A0Aとのxorをとり、結果が56bitでループする場所を探すことで キーを『プログラムによる固定処理』で割り出せます。 >( そういう意味では、SHA-256 を使う最新版以前の簡易的な xor処理でも、ヘッダから >固定値部分を除いてしまうだけでも良かったかもしれません ) ファイルごとに異なるキーを使用するようになったので、上記の方法でもpngファイルしか取れないという点で、 (56bitだとしても)最新版の方が断然安全性が高いと考えます。 私自身の意見としては、議論を尽くした結果、もしも今のままでまずいのであれば、56bit化もやむを得ないと思います。
メンテ
Re: Android版:DXアーカイブの暗号化機能について ( No.28 )
名前:yumetodo 日時:2018/11/12 00:23

そろそろESRの解釈についてはStackOverflowあたりに投げるべきかもしれない。ここを見ている人よりは詳しいはず。。。
メンテ
Re: Android版:DXアーカイブの暗号化機能について ( No.29 )
名前:was-blue.0793 日時:2018/11/12 22:25

>>yumetodo様、管理人様 私はこの一文について、DxLibに関係する場所以外でもすべてのソースコードを公開しなければならないと解釈しています。 私としては、(少なくとも国内、セキュリティ研究目的以外でDMCAにおいては)DXアーカイブの暗号化を無理矢理解除することは法的にアウトと考えていますので、 (実効性はともかく)法的な意味では鍵長に関係なくDXアーカイブの暗号化を無理矢理解除することはできないことになっていると考えます。 また、暗号化関連については、Play Consoleヘルプによると、より詳しいガイドを提供できる連絡先を掲載しているページがあるとのことです。 support.google.com/googleplay/android-developer/answer/113770?hl=ja 英語で質問しなければなりませんが、参考になれば。
メンテ
Re: Android版:DXアーカイブの暗号化機能について ( No.30 )
名前:管理人 日時:2018/11/13 01:08

> 8127さん > pngファイルに必ず含まれるバイナリは16byte = 128bitで、89504E470D0A1A0Aなのですが、 > 暗号化キーが56bitだと暗号文に片っ端から89504E470D0A1A0Aとのxorをとり、結果が56bitでループする場所を探すことで > キーを『プログラムによる固定処理』で割り出せます。 はい、それは私も思いついていたので、pngファイルや jpegファイルなどのメジャーなファイルは固定のヘッダ部分を 潰すような小細工をしようと思います( デコードの際に復元 ) > was-blue.0793さん > 私はこの一文について、DxLibに関係する場所以外でもすべてのソースコードを公開しなければならないと解釈しています。 『すべてのソースコード』とは、『DXライブラリの全てのソースコード』という意味でしょうか? あと、文面のどの部分からそのように解釈されたのか教えていただけないでしょうか? > また、暗号化関連については、Play Consoleヘルプによると、より詳しいガイドを提供できる連絡先を掲載しているページがあるとのことです。 > support.google.com/googleplay/android-developer/answer/113770?hl=ja >  > 英語で質問しなければなりませんが、参考になれば。 ご情報ありがとうございます 英語で質問できないので、質問はできませんが…
メンテ
Re: Android版:DXアーカイブの暗号化機能について ( No.31 )
名前:was-blue.0793 日時:2018/11/13 20:42

>>管理人様 "ソフトウェアプログラムのソースコードが一般に入手可能な場合、"という一文より、(規制対象となる暗号機能のある)DXライブラリを使用しているアプリは、 DXライブラリ部分のソースコードだけでなくアプリ全体をオープンソース化、つまりソースコードを全て公開しなければならないと解釈しています。 これはGPLのライブラリを使った場合とほぼ同様という意味合いになります。
メンテ
Re: Android版:DXアーカイブの暗号化機能について ( No.32 )
名前:管理人 日時:2018/11/13 23:52

> was-blue.0.793さん > "ソフトウェアプログラムのソースコードが一般に入手可能な場合、"という一文より、(規制対象となる暗号機能のある)DXライブラリを使用しているアプリは、 > DXライブラリ部分のソースコードだけでなくアプリ全体をオープンソース化、つまりソースコードを全て公開しなければならないと解釈しています。 >  > これはGPLのライブラリを使った場合とほぼ同様という意味合いになります。 『規制対象となる暗号機能のあるDXライブラリを使用しているアプリは』 ではなく 『DXライブラリの暗号機能を規制対象となる使い方をしたアプリは』 ですよね? ともあれ、鍵の 56bit化をして、規制に関する解釈に頭を悩ませる必要はなくなるようにしますので少々( 何週間か掛かるかもしれませんが… )お時間をください m(_ _)m
メンテ
Re: Android版:DXアーカイブの暗号化機能について ( No.33 )
名前:was-blue.0793 日時:2018/11/14 15:21

>>管理人様 そうでした……現在でも「知的所有権・著作権保護」に目的が限定されているなら規制対象外でした!すいません! しかし、DXアーカイブを規制対象となる使い方をしていた場合はソースコードを公開する必要が出てきます。 暗号強度が下がることは少し不安もありますが、暗号規制という壁を考えると致し方なしと考えます。
メンテ
Re: Android版:DXアーカイブの暗号化機能について ( No.34 )
名前:yumetodo 日時:2018/12/09 02:51

DxLib Advent Calendar 2018 9日目の記事としてまとめさせていただいたので報告までに。 DxLibのDxArchiveの暗号化する機能とExport Administration Regulations 輸出管理規則 ttps://qiita.com/yumetodo/items/89af53d3cf8bc236de2f
メンテ
Re: Android版:DXアーカイブの暗号化機能について ( No.35 )
名前:管理人 日時:2018/12/10 23:42

記事拝見いたしました 分かりやすく纏められていて改めて勉強になりました 一点気になったのが 『というわけで、議論の末Hash関数にSHA-256を採用しつつ暗号化するように変更がなされました。12bitから一気に増えたね。』 という文章なのですが、12bitという数字はどのように算出されたものでしょうか? SHA-256以前はパスワード文字は最大12文字だったのですが…
メンテ
Re: Android版:DXアーカイブの暗号化機能について ( No.36 )
名前:8127 日時:2018/12/13 02:21

代わりに編集リクエストしておきました。 (僕もこの掲示板で2回bitとbyteの間違いをやらかしました・・・)
メンテ
Re: Android版:DXアーカイブの暗号化機能について ( No.37 )
名前:管理人 日時:2018/12/14 20:10

> 代わりに編集リクエストしておきました。 ありがとうございます 現在は『12byte』となっているようです m(_ _)m
メンテ
Re: Android版:DXアーカイブの暗号化機能について ( No.38 )
名前:管理人 日時:2018/12/23 00:00

遅れに遅れて漸く対応が完了しました もしまだこちらをご覧になられている方がいらっしゃいましたら、よろしければお試しください m(_ _;m // 新しい DxaEncode.exe と DxaDecode.exe https://dxlib.xsrv.jp/temp/DXArchive_1_08.zip https://dxlib.xsrv.jp/temp/DxLibVCTest.zip // Windows版 VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.zip // Windows版 BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCC2Test.zip // Windows版 C++ Builder 10.2 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.zip // Windows版 MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_ARM.zip // Android版 ARM用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_ARM64.zip // Android版 ARM64用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_x86.zip // Android版 x86用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_x64.zip // Android版 x64用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.zip // ソース (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』を、 Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい) 新しいDXアーカイブのハッシュ値の生成には CRC32 を使用することにしました ( CRC32 で2個のハッシュ値を作成して、その内の 56bit を使用する形 ) 理由は SHA-256 以外のハッシュ値生成アルゴリズムで 56bit 以上を生成しないものが CRC32 しか見当たらなかったので… ( あと逆算された原因が『固定バイナリが存在する』ことだったので、それさえ潰してしまえばハッシュ値生成の  アルゴリズム自体はパリティチェック用くらいのものでも大丈夫では? と思ったのもあります ) あと、pngなどのメジャーなファイルフォーマットのファイルの固定バイナリから鍵を逆算されてしまう問題の 対策としてはLZ圧縮とハフマン圧縮を使うことにしました( LZ圧縮のあとハフマン圧縮 ) ヘッダ部分もこの処置を施しているので少なくとも手動での解析抜きの自動解析プログラムで鍵が 分かってしまうようなことは無いと思うのですが・・・もし見落としなどありましたらご指摘ください m(_ _;m > 8127さん No.30 のご返信で pngファイルなどの対応に小細工を使うと申し上げましたが、なかなか思うように行かず 結局圧縮処理を施すことで固定バイナリを隠すことにしました (_ _;
メンテ
Re: Android版:DXアーカイブの暗号化機能について ( No.39 )
名前:yumetodo 日時:2018/12/25 02:47

お疲れ様です。 --- 前にワッセナー・アレンジメントと外為法の話がありましたが、具体的な内容が見つかりました。 ここにリンクを貼ろうとしたらどう加工しても掲示板にブロックされるのでQiitaの記事見てくださいorz 本当にここの規制はいっちょんわからん。
メンテ
Re: Android版:DXアーカイブの暗号化機能について ( No.40 )
名前:管理人 日時:2018/12/25 23:51

> 前にワッセナー・アレンジメントと外為法の話がありましたが、具体的な内容が見つかりました。 > ここにリンクを貼ろうとしたらどう加工しても掲示板にブロックされるのでQiitaの記事見てくださいorz 拝見しました 許可例外TSU届け出以外にも日本の経済産業省にも届出しないといけないという内容でしょうか? うーん、鍵の56bit化は正解ですね…
メンテ
Re: Android版:DXアーカイブの暗号化機能について ( No.41 )
名前:yumetodo 日時:2018/12/26 10:38

>許可例外TSU届け出以外にも日本の経済産業省にも届出しないといけないという内容でしょうか? ワッセナー・アレンジメントの各国で共有できるとかそういう条文を見つけられなければそうなりそう。
メンテ
Re: Android版:DXアーカイブの暗号化機能について ( No.42 )
名前:管理人 日時:2018/12/29 06:28

ハフマン圧縮されたデータの解凍が遅すぎたので、ファイル全体をハフマン圧縮するのではなく ファイル全体の先端部分と末端部分だけをハフマン圧縮する方式に変更しました ( デフォルトでは先端と末端10KBで、オプションでサイズの変更が可能 ) バージョン番号の変更はしていないので、もし No.38 のバージョンをお使いの方が いらっしゃいましたら、申し訳ありませんが再度アーカイブし直してください m(_ _;m // 新しい DxaEncode.exe と DxaDecode.exe https://dxlib.xsrv.jp/temp/DXArchive_1_08.zip https://dxlib.xsrv.jp/temp/DxLibVCTest.zip // Windows版 VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.zip // Windows版 BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCC2Test.zip // Windows版 C++ Builder 10.2 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.zip // Windows版 MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_ARM.zip // Android版 ARM用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_ARM64.zip // Android版 ARM64用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_x86.zip // Android版 x86用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_x64.zip // Android版 x64用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.zip // ソース (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』を、 Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい)
メンテ
Re: Android版:DXアーカイブの暗号化機能について ( No.43 )
名前:was-blue.0793 日時:2019/12/02 20:58

過去の投稿に再び投稿することになりますが、以前に「DXアーカイブの暗号化を強引に解くツールは違法」と話したことについて、 それを解説した記事をDxLib Advent Calendar 2019の1日目記事として掲載しました。 qiita.com/Seiten_Minagawa/items/1ef198671da59ef85253
メンテ
Re: Android版:DXアーカイブの暗号化機能について ( No.44 )
名前:管理人 日時:2019/12/03 00:09

記事を拝見しました なるほど、現在は暗号化を解くツールは違法なのですね DXアーカイブ作成の発端は 『プログラム初心者の方が作成するソフトの多くが画像や音やテキストファイルが生のままDataフォルダに入っていて、 見ようと思えばゲームをクリアすることなくエンディングの画像やストーリーが見れてしまうのをなんとかしたい』で、 暗号化は『DxaDecode.exe にDXアーカイブファイルを放り込めば誰でも中身を見れる』を無くすことができればそれで良い、 程度の感覚で追加したものなのですが、紆余曲折を経て思いのほか大きな話になってしまいましたね… (・・;;
メンテ
Re: Android版:DXアーカイブの暗号化機能について ( No.45 )
名前:yumetodo 日時:2019/12/04 21:24

そういえば僕の去年のAdvent Calenderの記事には追記してここに報告忘れてましたが、 たまたまTwitterでarclisp 氏が関連するつぶやきをしていて(URLは僕の記事見てください) 輸出令別表第1の9の項(7)(省令第8条第九号)情報セキュリティ(暗号装置)該非用パラメータシート(情報セキュリティ・貨物) 様式9−07 というのを見つけました。もう今となっては関係ないですが。
メンテ
Re: Android版:DXアーカイブの暗号化機能について ( No.46 )
名前:管理人 日時:2019/12/05 00:39

こちらは…実際に届け出する際に使用する用紙でしょうか? 仮に鍵長が56bit以上でも著作権保護のみに使用していれば問題ない…としても、 こちらの用紙に記入して届け出なければならない面倒を考えると、 やはり56bit以内にして正解でしたね (・・;;
メンテ

Page: 1 | 2 | 3 |

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

   クッキー保存