SAML 2.0 で SAML 属性に対して対称暗号化を実行できますか? 非対称にできるようです。長所と短所は何ですか?
3 に答える
SAML 2.0 は XML 暗号化を利用します (セクション 5.2.1 および 5.2.2)。そうは言っても、SAML 2.0 コンフォーマンス ドキュメントのセクション 4.2 では、 SAML 2.0 に準拠するために以下をサポートする必要があると規定しています。
- ブロック暗号化: トリプル DES、AES-128、AES-256。
- キートランスポート: RSA-v1.5、RSA-OAEP
つまり、SAML 2.0 では非対称キーの使用が義務付けられています。
したがって、「短所」は、SAML 属性の対称暗号化を使用すると、SAML 2.0 に準拠していないことです。これにより、他の SAML 2.0 パートナーとの相互運用性の問題が発生します。ただし、パートナーもこれをサポートしている限り、実際にこのタイプの暗号化を使用することを選択できないという意味ではありません.
「長所」の面では、対称暗号化の方が高速です(計算量が少ないと言われています)が、コンプライアンスとのトレードオフに値するものではないと確信しています。
実際には常に非対称暗号化と対称暗号化の両方を使用していることに注意してください。これはセキュリティ上のベスト プラクティスです。基礎となる対称的なブロック暗号化方式 (Ian が指摘したように: トリプル DES、AES など)。より強力なセキュリティ (より大きな鍵サイズなど) と、秘密鍵を安全に保つのが容易な (公開鍵のみを配布する必要がある) ため、非対称が好まれます。ただし、そのパフォーマンスのために、対称鍵を交換する手段としてのみ使用されます。大量のデータに対する対称暗号化は、高速化のために行われます。
XML 暗号化仕様では、EncryptedData 要素には対称的に暗号化されたデータが含まれますが、EncryptedKey は非対称暗号化によって暗号化された対称暗号化/復号化キーです。
If you want to understand XML encryption, Don Eastlake's classic, Secure XML: The New Syntax for Signatures and Encryption, is still the best. He explains the trade-offs in the designs for XML Enc and DSig, and has tips about implementation. In the 9 years since he wrote it, many conventions have arisen about these trade-offs, which you can find via search.
My colleague, Ian, has listed the SAML 2.0 required algorithms, so you can focus on these in Eastlake's book. And as you are probably aware, "required" in a spec means that if you limit yourself to just these, you will be interoperable.
Finally, this technique Scott describes, of generating a random symmetrical key, encrypting the data with it, and then encrypting the random symmetrical key w/ the public encryption key of your recipient is ofter called digital enveloping and is used everywhere in cryptography, from SSL to key management systems.