是否建议签名和加密SAML并使用SSL?

时间:2011-11-26 04:15:14

标签: encryption ssl saml sign x509

如果我使用私钥对其进行签名并通过SSL发送,是否有必要加密SAML请求?或者更好的做法是使用我的私钥对其进行签名,使用身份提供程序公钥对其进行加密并通过SSL进行传输?

2 个答案:

答案 0 :(得分:51)

SAML断言查询/请求通常不包含太多私有数据,并且请求本身通常不会保留以供以后使用,因此几乎不需要加密SAML请求本身。对其进行签名将允许接收方验证内容在传输过程中未被更改,并且通过SSL进行传输将在传输期间提供隐私。在这种情况下加密请求可能有点过头了。

然而,SAML断言响应是一个完全不同的动物。包含声明或声明的SAML响应可能包含私有数据。根据系统中这些断言的使用方式,断言可以在不同的各方之间传递,其中一些密钥需要密钥来解密内容(因为它们与SAML提供商有信任关系),而另一些则没有。 SAML断言可以存储在缓存中或数据库中,所以你真的不知道将来会有谁将它们搞砸。

如果SAML响应包含包含私有数据的声明和断言,并且响应的接收者将无限期地保留SAML断言或通过您不信任的中间方传递SAML断言,那么是, SAML断言应加密并且响应已签名,无论它是否通过SSL传输。加密是为了在数据到达SSL管道的另一端后保护数据的隐私。

答案 1 :(得分:3)

而且,SSL管道的另一端是浏览器。从IdP到浏览器有一个管道,从浏览器到服务提供商有另一个管道。如果断言未加密,则浏览器中的任何人都可以使用断言。攻击者可以使用未加密的名称标识符对未来的SAML文档和交互进行某种攻击。

相关问题