1

私の仕事:

テキストファイルを書き込むJavaアプリケーションがあります。これらのファイルは、転送中または転送後に変更されないことを保証するために、アプリケーションによってRSA/SHA1で署名されている必要があります。

私の最初のアイデアは、テキストファイルの最後に「 RSA署名ブロック」を追加することでした。しかし、標準ツール(OpenSSL?)でファイルを検証できるようにするために、このブロックをどのようにフォーマットする必要があるかについての情報は見つかりませんでした。

数時間Webを検索した後、標準では.rsa拡張子が付加されたファイルを作成することになると思います。(Order123.txtがあるとすると、ファイル "Order123.txt.rsa"が生成されます)しかし、これらのファイルの形式に関する情報は見つかりませんでした。

私が見つけた唯一のものは、.rsaファイルがあり、opensslで開くことができるいくつかのリンクです。例: http: //file.downloadatoz.com/rsa-file-extension.html

さらに、 http://download.java.net/jdk8/docs/technotes/guides/jar/jar.htmlで「META-INF/*。RSA」ファイルについて説明しています。

デジタル署名は、.SF署名ファイルの署名付きバージョンです。これらは、人間が解釈することを意図していないバイナリファイルです。

デジタル署名ファイルのファイル名は.SFファイルと同じですが、拡張子が異なります。拡張子は、デジタル署名の種類によって異なります。

.RSA(PKCS7署名、SHA-256 + RSA)

だからそれはバイナリ形式のようです...

誰かがRSAファイルの形式を説明できますか?そして、おそらくこのフォーマットをJavaで書く方法は?(公開鍵/秘密鍵がキーストアにあると仮定します)

4

2 に答える 2

2

これらのファイルは、PKCS#7形式の署名ファイルです。非常に一般的で、事実上すべてのS/Mimeツールチェーンがこれらを作成できます。たとえば、

http://www.cis.upenn.edu/~bcpierce/courses/629/jdkdocs/tooldocs/win32/javakey.html

これは任意のファイルに使用できることに注意してください。

弾力がある城http://i-proving.com/2007/09/21/pkcs7-signatures-using-bouncy-castle/、C#SignedCmsJava実装 およびhttp://www.jensign.com/JavaScience/javacrypto/index .htmlはいくつかの例です。

余分な雑貨を必要としないより限定されたバージョン:https ://security.stackexchange.com/questions/13910/pkcs7-encoding-in-java-without-external-libs-like-bouncycastle-etcが役立つ場合があります。

Dw。

于 2012-09-03T15:57:27.613 に答える
0

次のコマンドは、署名ファイルを調べるのに役立つ場合があります。

unzip -p {file}.jar META-INF/{signer}.RSA | \
openssl pkcs7 -text -print_certs -inform DER
于 2013-04-02T09:17:06.977 に答える