如何验证SAML证书?

时间:2016-05-11 23:08:02

标签: saml x509 service-provider trust

我是SAML的新手,对预期的签名和信任流程感到困惑。

我正在为SP编程,并从IDP收到包含samlp:Response的签名KeyInfo

<KeyInfo>
    <ds:X509Data>
        <ds:X509Certificate>
            MIIC4DCCAcigAwIBAgIQRzFzcQiEKpFD2C+gNZ8cFDANBgkqhkiG9w0BAQsFADAsMSowKAYDVQQDEyFBREZTIFNpZ25pbmcgLSB0ZXN0Lmx1Y2lkYXV0aC5jb20wHhcNMTYwNTA2MDcyODM5WhcNMTcwNTA2MDcyODM5WjAsMSowKAYDVQQDEyFBREZTIFNpZ25pbmcgLSB0ZXN0Lmx1Y2lkYXV0aC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDqng7wxIkT7VpVJhQYgwWMngST4EhxWha+vI9/5V+D0nWZXp6MIMiFO7rv0n4+og7fdVXHjK9wL4cG9MVUMFpV8cxl7lmwKC/EomPbdsHZfCQ4QE/M+jHUDRoyeqSZgUO1oMigz65FzSdtRoM6A3TKasU5+ISttvGx66gkP5wuQUllBfDJxuVA+5qPVLas5/0s/CCyVbKPDqYwn/GMKsTc1ECy8oEeBOrfRzEsQrqlkLcoriMXYIRW92j4MWUTnz3Ce4zTGPldPl2ix/dVk02MoJEgK7NTDru+2yvo0QDIvzWWs0rltF26UdABqsiq+uuwYiKkGQpBldyjfqVvmwChAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAKeywqRnNuBGaNB6k6wuDAK6Aknx28RXbJAMe9SkSAo6L16qbdRdL8JCGZCDRF7OI8GLMEZj+yStRPikEstBQYeOi+1OSDf6iqOr7LM/OURG3pNq/LUOdNJJcYUSuK3FPP4HSMOo6dOX5IHS+7OOh70CMg5dfdtjvHqb8ZsRUk30JX9nVcXXRO8Vqzgb7WjuVjGvz/zSR6Dy+f+N6UDerIauQxHPu81SasxEUE4R6pr/Tm80E6uoicp7VBtE8YGHBhag9c+rp/xLANJ+Oc0poKDvLr8odnlUvEgy5RQhqbPefQ9n8E5Pba2IA0w/tfsk0w/z2jNwgLzNCfJGyrGHiH4=
        </ds:X509Certificate>
    </ds:X509Data>
</KeyInfo>

我认为证书已包含在内,因此我无需猜测证书签署了哪些证书。

但现在这似乎没什么用处。似乎没有包含证书链。所以我真的不相信这种反应。

我认为证书可以通过第二个受信任的带外协议给我,但这似乎不是正确的解决方案,因为每次证书过期都必须重复。

如果给出X509链(例如SSL),这是一个很容易解决的问题。

考虑到证书可能会过期,有什么建议的方法来验证X509证书的信任?

1 个答案:

答案 0 :(得分:2)

  

我认为证书可以通过第二个受信任的带外协议给我。

这是SAML实现通常做的事情。 SAML使用证书基础结构作为一种高度通用且可扩展的密钥材料通信方式。该规范对该元素的允许或建议内容,以及对依赖方的含义没有立场。作为一个具体的例子,假定不包括按值或引用包括X.509证书的含义。它的有效期,延期,撤销状态和其他相关内容可能会或可能不会被执行,由依赖方自行决定。&#34;

  

因为每次证书过期都必须重复。

由于到期通常不会强制执行并不重要。重要的是密钥更改(密钥翻转)。要处理证书通常从Idp发布的元数据加载。这意味着最终它是Idp上元数据端点的TLS证书,它是信任的基础。

在某些情况下,TLS不够信任(我在医疗保健方面经历过这种情况),并且证书只通过安全的带外通信渠道(例如在人会议中)进行交换。< / p>