<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[9]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ZIPファイル</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">電子署名</anchor>されていることがあります。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">X.509</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">証明書</anchor>が含まれていることがあります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[10]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ZIPファイル</anchor>の標準仕様になく、各<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応用</anchor>の独自仕様になっています。</p><section><h1>ZIP ファイルの構造を使う手法</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">APK</anchor> ファイルの全体の署名 (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ZIP</anchor> コメント欄利用) <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> <cite xml:lang="ja">APK 署名スキーム v2 | Android Open Source Project</cite>, <time>2022-10-11T19:25:28.000Z</time>, <time>2024-06-04T12:56:54.052Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://source.android.google.cn/docs/security/features/apksigning/v2?hl=ja">https://source.android.google.cn/docs/security/features/apksigning/v2?hl=ja</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> <cite xml:lang="ja">APK 署名スキーム v3 | Android Open Source Project</cite>, <time>2022-09-13T21:02:07.000Z</time>, <time>2024-06-04T12:54:00.749Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://source.android.com/docs/security/features/apksigning/v3?hl=ja">https://source.android.com/docs/security/features/apksigning/v3?hl=ja</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> 
<cite xml:lang="ja">Javascriptで APKの証明書フィンガープリントを出力する(V3署名対応版) #JavaScript - Qiita</cite>, <time>2024-06-04T12:56:10.000Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://qiita.com/kkoiwai/items/d410b054797ff89f6398">https://qiita.com/kkoiwai/items/d410b054797ff89f6398</anchor-external></p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PKWARE</anchor> の <cite><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SecureZip</anchor></cite> が <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">X.509</anchor> に対応しているとのこと。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;7</anchor-internal></src>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ZIPファイル</anchor>の拡張欄にデータを保存しているらしいです。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end> <cite xml:lang="en-US">SecureZip™ Enterprise Encryption &amp; Compression Software - PKWARE®</cite>, <time>2024-06-04T13:00:27.000Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.pkware.com/products/securezip">https://www.pkware.com/products/securezip</anchor-external></p></section><section><h1>ZIP ファイル内に署名ファイルを格納する手法</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JAR</anchor>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XPI</anchor>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">APK</anchor>のファイル単位の署名
(<code>META-INF</code> ディレクトリーに保存)
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[11]</anchor-end> <cite xml:lang="en">Add-ons/Extension Signing - MozillaWiki</cite>, <time>2024-06-04T06:13:39.000Z</time>, <time>2024-06-04T13:22:12.057Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://wiki.mozilla.org/Add-ons/Extension_Signing">https://wiki.mozilla.org/Add-ons/Extension_Signing</anchor-external></p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[16]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ODF</anchor> は <code>META-INF/</code> に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML署名</anchor>形式の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">署名</anchor>を格納します。
ファイル名には <code>signature</code> を入れることになっています。</p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[13]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Widgets</anchor> は各ファイルの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">署名</anchor>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML署名</anchor>によって記述します。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">X.509</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">証明書</anchor>、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CRL</anchor>、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OCSP応答</anchor>なども <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML署名</anchor>の方法で含められます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="14" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[14]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">署名</anchor>は何重にも行え、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">著者</anchor>によるものを <code>author-signature.xml</code>,
配布者によるものを <code>signature<var>ASCII正整数</var>.xml</code>
のようなファイル名で保存します。</p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[15]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Open Packaging Conventions</anchor> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ZIP</anchor> ファイル内の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML</anchor> 
ファイルで構造を記述します。 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">署名</anchor>ファイルも含められます。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">署名</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML署名</anchor>によります。</p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[17]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ASiC</anchor> は <code>META-INF/</code> に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">長期署名</anchor>関連ファイルを格納します。</p></section><section><h1>ZIP ファイル外に署名ファイルを格納する手法</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[12]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CRX</anchor> は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ZIPファイル</anchor>の前に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">公開鍵</anchor>と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">署名</anchor>データを置きます。</p></section><section><h1>メモ</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> <cite xml:lang="ja">APK ファイルの署名の仕様 - urandroid’s blog</cite>, <time>2024-06-04T12:49:30.000Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://urandroid.hatenablog.com/entry/20110818/1313656536">https://urandroid.hatenablog.com/entry/20110818/1313656536</anchor-external></p></section></body></html>