web-dev-qa-db-ja.com

S / MIME証明書に使用する拡張機能

SSLサーバー証明書の質問 と同様に、どの拡張機能をS/MIMEに使用する必要があり、CAも何らかの方法で制限する必要がありますか?

(私はopensslを使用していますが、現時点では基本的にすべてを行う権限を持つCAと証明書を作成しています)

9
Tobias Kienzler

RFC 385 に詳細が記載されています。実際には:

  • 証明書のSubject Alt Name拡張子(またはsubjectDNの追加属性として)にメールアドレスを含めることを強くお勧めしますが、これは非推奨です。証明書にメールアドレスが含まれていない場合、通信相手は証明書をメールアドレスに関連付ける別の方法を見つける必要があり、ほとんどのソフトウェアでこれに問題があります(これはサポートされることを意図していますが、他の人)。

  • 証明書の使用がKey Usage拡張子で制限されている場合、digitalSignaturenonRepudiationをその拡張子で明示的に許可する必要があります。

  • 証明書にExtended Key Usage拡張が含まれている場合、id-kp-emailProtection OID(1.3.6.1.5.5.7.3.4)または特別な多目的のいずれかが含まれている必要があります。 anyExtendedKeyUsage OID(2.5.29.37.0)。

  • 証明書が署名のみの証明書である(DSAまたは(EC)DSAキーが含まれている、またはKey Usageによって制限されている)場合は、電子メールencryption難しいでしょう。ソフトウェアがDiffie-Hellman鍵ペアを生成し、送信した署名付きメールに公開鍵を添付して、受信者が応答を暗号化できるようにするメカニズムが(ありましたか?)あります。これは、せいぜい、実際にはサポートされておらず、追加の問題(追加のDH秘密鍵の保管など)を追加します。したがって、暗号化が可能な証明書(RSAキーであり、Key Usage拡張で制限されていない)を使用することをお勧めします。

  • 理論的には、2つの証明書があり、1つは電子メールの暗号化用で、もう1つは電子メールの署名用です。これは 良いアイデア になります。しかし、サポートはその領域で少し欲しかったかもしれません。いくつかのテストが必要です。

以前は、Netscape固有の拡張機能がいくつかありましたが、Netscape Communicatorで適切に使用するために必要でしたが、最近はだれがそれを実行していますか?

8
Thomas Pornin