SSL身份验证/授权是否是握手的一部分?

时间:2017-11-13 10:01:01

标签: java tomcat ssl https

根据我的理解, 如果是客户端身份验证, 服务器从客户端请求证书,然后在证书验证握手发生后。

我只是想知道,Server在证书验证中做了什么: 1)它仅验证证书是否有效,即用户是证书的真正所有者。 2)它验证用户是证书的真正所有者,并检查身份验证和授权。

那么1还是2?

以简单的方式我的问题是:SSLAuthentication是握手的一部分还是握手后会出现的情况?

1 个答案:

答案 0 :(得分:1)

如果在线上握手完成之前完成证书的完整验证,则由同行决定。通常,服务器证书验证在握手之前完成,如果完成并且客户端证书验证至少部分完成。

但特别是在客户端证书的情况下,可能是服务器上运行的Web应用程序有其他要求,例如证书不仅由特定CA签名,而且主题与在数据库,也许证书的指纹存储在数据库中。在这种情况下,验证通常仅在TLS握手完成后才完成,因为只有执行了Web应用程序特定逻辑。

  

...服务器在证书验证中做了什么:1)它只验证证书是否有效,即用户是证书的真正所有者。 2)它验证用户是证书的真正所有者,并检查身份验证和授权。

在TLS握手内部检查客户端是否拥有证书中公钥的私钥。通常还会检查证书是否由受信任的CA签名,尽管可能存在未执行此检查的情况,而是在握手后检查证书是否具有预期的指纹。通常不会在TLS握手内部检查授权,因为TLS堆栈通常不知道访问了哪种资源,以及证书验证的特定用户是否有权访问此资源。