【问题标题】:What is second hand-shake happening with TLS 1.0什么是 TLS 1.0 发生的第二次握手
【发布时间】:2017-10-04 08:57:26
【问题描述】:

问题描述:

我正在尝试从 Windows 笔记本电脑连接到 TLS 1.0 到 Windows IIS 服务器。我们在 IIS 上设置了相互身份验证。

请参阅下面的握手电话:

所以它从第 4 帧的客户端问候开始。然后在接下来的步骤中,服务器发送它的证书并协商密码。然后在第 12 帧,握手似乎完成了。在第 13 帧,客户端开始发送应用程序数据。

但是在第 14 帧,服务器再次发送了一个 hello,我们看到了第二次握手。请您回答我的以下问题。

问题>> 在相互认证中,客户端请求服务器证书。然后服务器请求客户端证书。当他们双方都验证了对方的证书时,客户端开始发送应用程序数据。这不是相互认证的正常过程吗?

问题>> 在第 13 帧,客户端已经开始共享应用程序数据。那么为什么 IIS 要求在第 21 帧进行第二次握手呢?

问题>> 似乎第二次握手是为了获取客户端证书(第 24 帧)。但是服务器不应该在第 13 帧之前要求客户端证书吗?

如果您同意此 IIS 行为是错误的,请您建议如何解决此问题。

提前致谢。

【问题讨论】:

    标签: ssl iis mutual-authentication tls1.0


    【解决方案1】:

    如果服务器不需要对所有资源进行相互身份验证,而仅在访问特定资源时,就会发生这种情况。因此:

    • 没有客户端证书的初始握手完成(帧 4..12)。
    • 客户端发送 HTTP 请求(第 13 帧)。
    • 根据请求,服务器意识到客户端喜欢访问需要相互身份验证的资源。因此,服务器使用 Hello 请求(第 14 帧)请求新的握手。
    • 新的握手已经完成,这次是客户端证书(帧 15..25)。
    • 客户端身份验证成功后,服务器发送 HTTP 响应(帧 26,29)。

    【讨论】:

    • 谢谢 Steffen .....我们可以强制 IIS 在第一次握手中进行所有验证....请建议如何做到这一点.....另外我们有一个大型机 CICS 应用程序调用 IIS 服务器.....我们使用 TLS 1.0 和 TLS 1.2 都尝试了 CICS 到 IIS 调用.....我们在两种情况下都看到了第二次握手......对于 TLS1.2,第二次握手是成功的....但是对于 TLS 1.0,第二次握手失败了......知道为什么会这样......
    • @Kowshik:我不知道 IIS 是否以及如何进行不同的配置。但是,如果客户端证书只需要特定资源而不是整个站点,那么这是不可能改变的,因为请求的资源只有在第一次成功握手和客户端的初始请求之后才知道。至于为什么它在 TLS 1.0 上失败但在 TLS 1.2 上失败:我不知道,但无论如何这将是一个不同的问题,需要它自己的(不同的)关于问题的详细信息。
    猜你喜欢
    • 2015-06-27
    • 2014-01-02
    • 1970-01-01
    • 1970-01-01
    • 2019-10-17
    • 1970-01-01
    • 2012-06-11
    • 2016-03-21
    • 1970-01-01
    相关资源
    最近更新 更多