web-dev-qa-db-ja.com

アーカイブに署名することは可能ですか?

Opensslを使用してpub/prvキーを作成し、ファイルの署名を作成して検証しました。私はCryptophane(windows gnupgフロントエンド)をいじって、キーサーバーと署名テキストで遊んだことについて聞いた。

しかし、私はファイルアーカイブに署名したことはありません。アーカイブ(7z、rar、Zipのいずれでも構いません)を公開したい場合、ユーザーまたはソフトウェアがそのアーカイブに署名されているかどうかを確認できますか?公開鍵は明らかに公開されている必要があります。しかし、アーカイブに署名を追加するのが気になります。ソフトウェア+アーカイブでは、圧縮されたアーカイブファイルに署名して検証できますか?

15
user3109

一般的な方法は、デタッチされた署名を作成する.sigファイル(通常、gpg -bを使用したPGP署名– X.509は非常にまれです)で、両方のファイルを同じ場所に提供することです。例えば:

ftp://ftp.gnupg.org/gcrypt/gnupg/gnupg-2.0.19.tar.bz2
ftp://ftp.gnupg.org/gcrypt/gnupg/gnupg-2.0.19.tar.bz2.sig

これはあらゆる種類のファイルで使用できますが、ユーザーはgpg --verifyを使用して手動で署名を確認する必要があります。


残念ながら、現在使用されているもののうち、アーカイブ形式なし (私が知っていること) 組み込みの署名をサポートしています PGPまたはX.509を使用します。 (これは、Windowsによって内部的に使用されているが、実際には他の場所では使用されておらず、署名がかなり複雑なCABを除外しています)。 WinRAR 4は、独自の形式を使用して「信頼性検証」レコードを追加できましたが、WinRARライセンスを署名キーとして使用しており、繰り返し解読されています。 (更新:この機能は、セキュリティが不安定なため、WinRAR 5から 削除 でした。)


Windows(および間もなくMac OS X)では、「自己解凍アーカイブ」(内部からアーカイブを抽出するデジタル署名された実行可能ファイル)を作成できます。これは、たとえばWindowsのソフトウェアインストーラーの動作方法です。ただし、SFXは単一のオペレーティングシステムに制限されているため、プログラムの配布にのみ適しています、ドキュメントや画像ではありません。 (Javaプログラムは署名可能でクロスプラットフォームですが、Javaランタイムを備えているシステムはほとんどありません。)

10
user1686

Java jar-toolでビルドされたjarアーカイブは、事実上Zipアーカイブであり、それらに署名するためのツールjarsignerがあります。

ここにいくつかの便利なリンクがあります:

最初は少し複雑に見えますが(「何、keeytoolが必要ですか?他に何が必要ですか?」)、簡単な方法で解決する手順に従うのは簡単です。できます。次に、問題をより深く掘り下げることができます。

2
user unknown

もちろん、署名されたソフトウェアをインストールするたびに、署名されたアーカイブを検証しています。作成するには、開発者が使用するのと同じパッケージツールを使用する必要があります。いくつかのトレードオフ、クロスプラットフォームの互換性に対する使いやすさがあります。クロスプラットフォームで署名された自己解凍型アーカイブを作成する方法を考えることはできません。

Windowsの場合、iexpressツールを使用して自己解凍アーカイブを作成し、説明されているように、signtool.exeを使用して署名します ここ 。ユーザーがファイルをダブルクリックすると、使い慣れたウィンドウで、アーカイブの発行者としてあなたを識別するダイアログが表示されます。

0
bbsimonbb