問題タブ [smime]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
7820 参照

https - 電子メールのセキュリティ:TLSおよびS / MIME

私の理解では、TLSは、2つのSTMPサーバーが互いに安全に通信できるようにする暗号化技術です。HTTPSを使用してSTMPサーブに接続する場合、S / MIMEを使用するのと同じですか?

0 投票する
1 に答える
1974 参照

.net - .NET による OpenSSL S/MIME 署名

開発中のアプリケーションでは、ファイルをアップロードする前に署名ファイルを作成する必要があります。そのドキュメントでは、openssl でこれを行う方法について説明しています。

まず、キーを準備する必要があります。

その後、次の構文を使用して任意のファイルに署名できます。

これは機能しますが、ネイティブ .NET コードで可能であれば、署名ファイルを作成するためだけに外部プログラムを実行する必要は避けたいと思います。

これを vb.net でコーディングしようとしましたが、次のようになりました。

それが作成するファイルは、openssl が期待するものとまったく同じではありません。行が 65 文字を超えないように、 -----BEGIN PKCS7-----andを挿入して-----END PKCS7-----改行を追加する必要があります。しかし、それを行った後でも、この方法で作成した署名は有効ではありません。openssl で確認すると、次のエラーが表示されます。

どこか細かいところを忘れていると思うのですが、何が原因なのかさっぱりわかりません。

そのコードを機能させるのを手伝ってくれる人はいますか? そうでない場合は、そのような機能を備えた .NET ライブラリとその方法の例を示してください。

0 投票する
1 に答える
10161 参照

openssl - OpenSSL smime 検証が正しい証明書と署名で失敗しました

暗号化され署名された smime メッセージを受け取ります。復号化は問題ありません。データは正しいようです。

しかし、署名段階の検証でエラーが発生します。

送信者の両方の証明書 (CA 証明書とクライアント証明書) は問題ありません。

openssl は、改行文字など、ソース メッセージに存在しない特定の記号を復号化中に生成できると思います。または、非標準アルゴリズムを処理することもできます (少なくとも私が知る限り、openssl には非標準の秘密鍵のストレージ形式があります)。

openssl 0.9.8h を使用しています。そして相手側のsmimeメッセージは「webMethods EDI version 6.5」というソフトウェア(EDIメッセージを処理するAS2サーバー)で構成されています。

このエラーの理由は何ですか?

別の smime ツールを試すようにアドバイスしてもらえますか?

0 投票する
1 に答える
3178 参照

cryptography - OpenSSL が Content-type 'Application/EDI' の smime メッセージをテキストとして扱い、改行を変更する

content-type 'Application/EDI' の smime メッセージを受け取りました。これは非標準の MIME タイプであり、コンテンツはバイナリとして解釈される必要があります。ただし、署名の検証中に OpenSSL はそれをテキストとして扱い、改行を '\n' から '\r\n' に変更します (コンテンツ タイプ 'text' の仕様で必要とされるため)。そのため、ダイジェストが間違って検証に失敗します。

openssl が元のメッセージで何も変更しないようにする方法はありますか? 引数「-binary」はどのバージョンでも機能しません (0.9.7、0.9.8、1.0.0 を試しました)。

0 投票する
1 に答える
4724 参照

security - PGP と SMIME の違い

なぜ 2 つの安全な電子メール標準が必要なのか疑問に思っています。私が完全に間違っていなければ、今日の PGP と SMIME は基本的にほぼ同じ機能を提供しています。

以前の違いは、PGP が信頼の網の上に構築されているのに対し、SMIME は常に第三者の信頼できるパーティを使用していたということでした。しかし当面は、CA を使用して PGP も構成できると思います。さらに、PGP は単純なメール メッセージを暗号化することのみを目的としていましたが、SMIME は添付ファイルを復号化することもできました。しかし、それまでの間、PGP でも同じことができると確信しています。

質問は次のとおりです。これら 2 つのプロトコルに違いはありますか?

どうもありがとう、アンドリュー

0 投票する
1 に答える
1630 参照

certificate - pkcs7-署名メッセージ

2 番目の部分 (最初の部分は実際のメッセージ) で as/mime メッセージを作成する場合、メッセージに署名した証明書と署名の結果、つまりダイジェストの両方を提供する必要があります。それらを連結しますか?

バウンシーキャッスルなどのライブラリは使用していません。私は手作業でメッセージを作成しています。それらを互いに連結するだけですか、それとも間に新しい行を入れて連結するのですか、それともどのように行われますか? 私はBCでそれがどのように行われているかを調べようとしましたが、明確な答えがなくてもグーグルで調べました。

0 投票する
3 に答える
26255 参照

encryption - OpenSSL を使用して SMIME メッセージ (pkcs7-signature) から公開証明書を抽出する

OpenSSL を使用して smime メッセージ (pkcs7-signature) から公開証明書を抽出するにはどうすればよいですか?

0 投票する
1 に答える
710 参照

php - MIME から S/MIME を作成しますか?

私は完全には理解していません。いくつかのドキュメントやヘルプをいただければ幸いです:)

PHP を使用して、ezcomponents のメール オブジェクトを使用して MIME を作成します。しかし、私が理解していないのは次のとおりです。

openssl_pkcs7_signで署名して、元の MIME から S/MIME メッセージを作成しますか? それとも、S/MIME をゼロから作成し、完成したら署名しますか?

物事の正しいやり方を理解しようと努めているので、ご容赦ください。

編集:私の質問をよりよく説明するために、このコードを見つけました

0 投票する
4 に答える
2345 参照

linux - s/mime 形式の PKCS7 署名付きファイルの読み取りに失敗しました (大きなサイズ)

s/mime 形式の署名付きファイルを確認したいのですが、pkcs7 ファイルのサイズは 500MB です。

openssl smime -verify -in test.pk7 -inform DER

S/MIME メッセージの読み取りエラー 715956256:error:07069041:memory buffer routines:BUF_MEM_grow_clean:malloc failure:buffer.c:152:715956256:error:0D06B041:asn1 encoding routines:ASN1_D2I_READ_BIO:malloc failure:a_d2i_fp.c:229:

制限されたメモリ使用量、たとえば200MBで可能ですか?

0 投票する
3 に答える
5526 参照

java - キー識別子が一致しないのはなぜですか?

S/MIME メール (もともと Outlook 経由で送信されたもの) を復号​​化しようとしています。そのために、bouncycastle API を使用しています。しかし、私は思わぬ障害に遭遇しています。

Windows 証明書ストアに、受信者の証明書があります。私は以前、署名付きで暗号化された電子メールを相手方に送信するためにそれを使用していました。次に、証明書 (秘密鍵付き) を .pfx ファイルとしてエクスポートし、この pfx ファイルを Java KeyStore にロードしました。しかし、それは機能しません。これは、サブジェクトのキー識別子が一致しないためだと思われます。

KeyStore からサブジェクト キー ID を取得するために使用しているコードは次のとおりです。

これにより、次のキー識別子が出力されます。

ただし、Windows 証明書ストアを確認すると、キー識別子が異なります。

KeyStore は前に余分な 4 バイトを返します (対象のキー識別子は、キーの 160 ビット SHA1 ハッシュである必要があるため、長さは 20 バイトですよね?)。

さらに紛らわしいのは、bouncycastle API を使用して S/MIME 電子メールを解析し、受信者 ( SMIMEEnveloped.getRecipientInfos().getRecipients()) を調べると、返された唯一の受信者 (1 つだけである必要があります) がこのサブジェクト キー識別子を持っているという事実です。

...余分なバイトは4バイトではなく2バイトだけです。これが、証明書で電子メールを復号化できない理由だと思います。

これらのサブジェクト キー識別子がどれも一致しないのはなぜですか? 私は何を間違っていますか?