Encryption 使用Javascript在HTTP上进行HTTPS密钥协商和隧道
HTTPS广泛用于在线安全。它提供安全性和完整性,但不提供身份验证。为了确保客户端不会与中间人交谈,我们有数字证书和PKI。除以下标准适用的情况外,这一切都非常有效:Encryption 使用Javascript在HTTP上进行HTTPS密钥协商和隧道,encryption,security,protocols,tunneling,Encryption,Security,Protocols,Tunneling,HTTPS广泛用于在线安全。它提供安全性和完整性,但不提供身份验证。为了确保客户端不会与中间人交谈,我们有数字证书和PKI。除以下标准适用的情况外,这一切都非常有效: 服务器和客户端不共享公共的、受信任的根CA,因此它们无法验证彼此的证书 环境(如防火墙、权限等)不允许使用常规HTTPS协议 问题是:我们是否仍然可以在客户端和服务器之间发送安全的、经过身份验证的消息,也许可以使用Javascript 大致如下: 客户端向服务器发送常规HTTP请求 服务器用包含Javascript代码的页面进
- 服务器和客户端不共享公共的、受信任的根CA,因此它们无法验证彼此的证书
- 环境(如防火墙、权限等)不允许使用常规HTTPS协议
我可以看到,以这种方式发送安全完整的消息是可能的,但是否可以在不使用PKI的情况下进行身份验证,也许通过利用服务器可以动态重写发送给客户端的Javascript这一事实?在步骤2中出现了一个问题-
服务器响应包含Javascript代码的页面:
你怎么知道坐在电线上的人没有修改这个Javascript,因为它是以明文传输的?基本上,当X想要对Y进行身份验证时,X应该了解Y的一些信息-它可以验证的可能是公共信息,如公钥/证书或共享秘密这正是问题的症结所在,我的问题是,有没有办法克服这个问题,利用服务器可以在它发送给客户的文档中嵌入一些秘密的事实呢?没有,你不能事先至少知道一些信息就进行身份验证。