2011-11-26 43 views
15

秘密鍵で署名してSSLで送信する場合、SAML要求を暗号化する必要がありますか?それとも、プライベートキーを使って署名し、アイデンティティプロバイダの公開鍵を使って暗号化し、SSLで送信する方が良いでしょうか?SAMLの署名と暗号化、SSLの使用をお勧めしますか?

答えて

37

通常、SAMLアサーションクエリ/要求には多くのプライベートデータが含まれておらず、通常、要求自体は後で使用するために永続化されないため、SAML要求自体を暗号化する必要はほとんどありません。署名することで、受信者は、コンテンツが通過中に変更されていないことを確認し、SSLを介してコンテンツを送信すると、送信中にプライバシーが提供されます。このような状況で要求を暗号化することはおそらく過度のことです。

しかし、SAMLアサーション応答はまったく別の動物です。クレームまたはアサーションを含むSAML応答には、プライベートデータが含まれている可能性があります。これらのアサーションがシステムでどのように使用されているかに応じて、アサーションは(SAMLプロバイダとの信頼関係を持つため)キーを必要とするキーを持つ別のパーティー間で渡される場合があります。 。 SAMLアサーションはキャッシュまたはデータベースに格納することができるため、将来誰がそれらを突き破るのかはわかりません。

プライベートデータを含むクレームとアサーションが含まれており、レスポンスの受信者が無期限にSAMLアサーションを保持しているか、信頼できない中間パーティを通じてSAMLアサーションを渡している場合は、 SSLで送信されているかどうかにかかわらず、SAMLアサーションを暗号化して応答を署名する必要があります。暗号化は、SSLパイプのもう一方の端に到着した後にデータのプライバシーを保護することです。

+3

"暗号化は、SSLパイプの他端に到着した後にデータのプライバシーを保護することです。"これは私には明らかでした。ありがとうございました! – BernardMarx

2

また、SSLパイプのもう一方の端はブラウザです。 IdPからブラウザへのパイプと、ブラウザからサービスプロバイダへのパイプがあります。アサーションが暗号化されていない場合、アサーションはブラウザの誰でも利用できるようになります。攻撃者は、暗号化されていない名前識別子を将来のSAML文書や対話に何らかの攻撃で使用する可能性があります。

+3

しかし、攻撃者がブラウザを所有していれば、すでに失われていないでしょうか? – sbc

関連する問題