了解证书在客户端-服务器交互中的工作原理
Understanding how certificates work in a client-server interaction
所以,我正在尝试了解证书的真正作用 - 我无法在 google 上找到我正在寻找的东西,所以我用我的方式来表达。 .. 如果您认为有一个直截了当的 link 可能对我有帮助 - 请 post 它,我将删除这个问题。
我了解当客户端(例如浏览器)向网站发出请求时,它会通过检查其证书来验证网站的身份。不鼓励使用自签名证书,来自证书颁发机构(及其分支机构)的证书才是真正的交易。现在身份已经过验证,请求由服务器处理,响应被发送到客户端,现在用户(一个人)可以在他们的浏览器上看到 URL 旁边的绿色锁标志。我是否正确总结了这一点?并且此响应已加密,将由 browser/client?
解密
在 SSO(单点登录)流程的情况下 - 当 SAML 断言被“数字签名”时 - 这到底是什么意思?上述证书对此有何帮助?
我只是脑子里混杂了太多的概念,一直在寻找对系统、安全性和 TLS 的清晰理解。
首先,这都是关于非对称密码学的。这允许使用一个密钥加密消息并使用另一个密钥解密。为什么这有帮助。
安全交互
您可以使用服务器的 public 密钥向您的服务器发送消息。因此,您可以确定没有其他人(该服务器除外)能够解密该消息
数字签名
您可以使用您的私钥加密消息摘要,任何人都可以通过使用您的 public 密钥解密您的“签名”来检查是否是您本人。
什么阶段涉及证书
以上两种情况都有一个陷阱。您不能真正确定服务器提供给您的 public 密钥确实是您信任的一方的密钥。签名也一样。您无法确定您刚刚成功用于验证签名的 public 密钥是否真的是您希望签署合同的人的密钥。
证书是一个public密钥和密钥对持有者信息的集合。此捆绑包使用 CA 的私钥进行数字签名。
什么是端到端流程
让我们考虑一下 https 的情况。您的客户对服务器说“嘿,我想使用 https 协议”。这就是涉及非对称密码学的地方。您使用服务器的 public 密钥来加密将用于加密流量的对称密钥(由于非对称加密有些昂贵,因此仅在协商对称密钥时才使用它)。
但是您如何确定可以信任该服务器。实际上服务器发送给你的不仅仅是一个密钥,而是一个证书。您获取证书并验证证书中指定的服务器名称实际上是您在地址栏中使用的名称。您还使用 CA 的 public 密钥验证 CA 的签名。
认证链
已签署服务器证书的 CA 的 Public 密钥可能也需要验证。这种验证以与上述相同的方式执行。该链最终必须停在您绝对信任的证书上。此类证书存储在所谓的 trust store.
这就是 ssl 的工作原理。数字签名的 SAML 断言以非常相似的方式工作。他们提供您可以验证的证书,并使用从中提取的 public 密钥来验证断言的签名。
所以,我正在尝试了解证书的真正作用 - 我无法在 google 上找到我正在寻找的东西,所以我用我的方式来表达。 .. 如果您认为有一个直截了当的 link 可能对我有帮助 - 请 post 它,我将删除这个问题。
我了解当客户端(例如浏览器)向网站发出请求时,它会通过检查其证书来验证网站的身份。不鼓励使用自签名证书,来自证书颁发机构(及其分支机构)的证书才是真正的交易。现在身份已经过验证,请求由服务器处理,响应被发送到客户端,现在用户(一个人)可以在他们的浏览器上看到 URL 旁边的绿色锁标志。我是否正确总结了这一点?并且此响应已加密,将由 browser/client?
解密在 SSO(单点登录)流程的情况下 - 当 SAML 断言被“数字签名”时 - 这到底是什么意思?上述证书对此有何帮助?
我只是脑子里混杂了太多的概念,一直在寻找对系统、安全性和 TLS 的清晰理解。
首先,这都是关于非对称密码学的。这允许使用一个密钥加密消息并使用另一个密钥解密。为什么这有帮助。
安全交互
您可以使用服务器的 public 密钥向您的服务器发送消息。因此,您可以确定没有其他人(该服务器除外)能够解密该消息
数字签名
您可以使用您的私钥加密消息摘要,任何人都可以通过使用您的 public 密钥解密您的“签名”来检查是否是您本人。
什么阶段涉及证书
以上两种情况都有一个陷阱。您不能真正确定服务器提供给您的 public 密钥确实是您信任的一方的密钥。签名也一样。您无法确定您刚刚成功用于验证签名的 public 密钥是否真的是您希望签署合同的人的密钥。
证书是一个public密钥和密钥对持有者信息的集合。此捆绑包使用 CA 的私钥进行数字签名。
什么是端到端流程
让我们考虑一下 https 的情况。您的客户对服务器说“嘿,我想使用 https 协议”。这就是涉及非对称密码学的地方。您使用服务器的 public 密钥来加密将用于加密流量的对称密钥(由于非对称加密有些昂贵,因此仅在协商对称密钥时才使用它)。
但是您如何确定可以信任该服务器。实际上服务器发送给你的不仅仅是一个密钥,而是一个证书。您获取证书并验证证书中指定的服务器名称实际上是您在地址栏中使用的名称。您还使用 CA 的 public 密钥验证 CA 的签名。
认证链
已签署服务器证书的 CA 的Public 密钥可能也需要验证。这种验证以与上述相同的方式执行。该链最终必须停在您绝对信任的证书上。此类证书存储在所谓的 trust store.
这就是 ssl 的工作原理。数字签名的 SAML 断言以非常相似的方式工作。他们提供您可以验证的证书,并使用从中提取的 public 密钥来验证断言的签名。