SSLサーバー証明書の質問 と同様に、どの拡張機能をS/MIMEに使用する必要があり、CAも何らかの方法で制限する必要がありますか?
(私はopensslを使用していますが、現時点では基本的にすべてを行う権限を持つCAと証明書を作成しています)
RFC 385 に詳細が記載されています。実際には:
証明書のSubject Alt Name
拡張子(またはsubjectDN
の追加属性として)にメールアドレスを含めることを強くお勧めしますが、これは非推奨です。証明書にメールアドレスが含まれていない場合、通信相手は証明書をメールアドレスに関連付ける別の方法を見つける必要があり、ほとんどのソフトウェアでこれに問題があります(これはサポートされることを意図していますが、他の人)。
証明書の使用がKey Usage
拡張子で制限されている場合、digitalSignature
やnonRepudiation
をその拡張子で明示的に許可する必要があります。
証明書に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で適切に使用するために必要でしたが、最近はだれがそれを実行していますか?