digital-signature – 如何验证SAML签名值

我有一位客户正在发送安全密钥.他们使用的加密是三重DES.他们发送的每个断言都有一个签名值,需要对其进行验证才能获得必要的权限.你能给我一个代码吗?
加密和签名是两种不同的动物.三重DES是对称密钥方法(用于加密和解密的相同密钥).另一方面,数字签名使用非对称密钥(私钥/公钥对),其中签名是使用私钥计算的,并且可以使用公钥进行验证.因此,如果您的客户希望在他们发送给您的XML中包含签名,那么他们需要向您提供他们的公钥.

对于加密,SAML中的典型特征是使用XMLEncryption,它定义了一种XML格式,用于在SAML消息中包含加密密钥信息和加密数据.由于交换静态对称密钥是有问题的 – 如果它被拦截,拦截器可以加密和解密任何消息 – 可以做的是使用为每条消息重新生成的动态对称密钥,使用加密消息密钥,然后使用私有/公共加密密钥对的公钥加密该密钥,并将其与消息一起发送.加密的对称密钥只能使用用于加密它的密钥对的私有一半来解密.

因此,从关键的角度来看,最重要的区别是,对于签名,客户持有私钥并且必须与您共享公钥,而对于加密,您持有私钥并且必须与客户共享公钥.

翻译自:https://stackoverflow.com/questions/2185569/how-to-validate-a-saml-signature-value

转载注明原文:digital-signature – 如何验证SAML签名值