发布于 2016-05-17 17:15:31
不,无法确定SSL固定在客户端的状态。SSL定位是仅在客户端内进行的证书验证的一部分,服务器获得的唯一反馈是验证是否成功(连接是否继续)(连接已关闭,可能是TLS警报)。
此外,服务器无法完全可靠地“询问”客户端钉扎状态,因为您不能期望运行在由“攻击者”完全控制的设备上的应用程序得到真正的响应。
但是,在不被发现的情况下,使钉扎失效变得更加困难。如果您正在构建一个应用程序,并且希望检测是否禁用了定位,您可能会连接到两个不同的主机。对于其中一个主机,您需要一个有效和固定的证书,而对于另一个主机,则需要一个有效但不是固定的证书。如果这两种连接都成功了,你可以得出结论,有人篡改了钉扎。当然,如果“攻击者”知道应用程序的这种行为,他可以绕过您的检测,但不知道它会变得更难。而更复杂的(甚至是动态的)计划应该有可能使它变得更加困难。
但是问题仍然是,你从知道钉扎是否被禁用得到了什么。如果你确保固定是不可能的,你可能会阻止在中间嗅探的男人。这仍然留下了在应用程序中嗅探数据的选项,即在数据被加密之前和解密之后。这意味着控制设备的攻击者仍然可以分析甚至修改数据。
https://security.stackexchange.com/questions/123542
复制相似问题