Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Encryption 使用Javascript在HTTP上进行HTTPS密钥协商和隧道_Encryption_Security_Protocols_Tunneling - Fatal编程技术网

Encryption 使用Javascript在HTTP上进行HTTPS密钥协商和隧道

Encryption 使用Javascript在HTTP上进行HTTPS密钥协商和隧道,encryption,security,protocols,tunneling,Encryption,Security,Protocols,Tunneling,HTTPS广泛用于在线安全。它提供安全性和完整性,但不提供身份验证。为了确保客户端不会与中间人交谈,我们有数字证书和PKI。除以下标准适用的情况外,这一切都非常有效: 服务器和客户端不共享公共的、受信任的根CA,因此它们无法验证彼此的证书 环境(如防火墙、权限等)不允许使用常规HTTPS协议 问题是:我们是否仍然可以在客户端和服务器之间发送安全的、经过身份验证的消息,也许可以使用Javascript 大致如下: 客户端向服务器发送常规HTTP请求 服务器用包含Javascript代码的页面进

HTTPS广泛用于在线安全。它提供安全性和完整性,但不提供身份验证。为了确保客户端不会与中间人交谈,我们有数字证书和PKI。除以下标准适用的情况外,这一切都非常有效:

  • 服务器和客户端不共享公共的、受信任的根CA,因此它们无法验证彼此的证书
  • 环境(如防火墙、权限等)不允许使用常规HTTPS协议
问题是:我们是否仍然可以在客户端和服务器之间发送安全的、经过身份验证的消息,也许可以使用Javascript

大致如下:

  • 客户端向服务器发送常规HTTP请求
  • 服务器用包含Javascript代码的页面进行响应
  • 客户端的Javascript将数据异步发送到用于协商的服务器
  • 服务器运行某种脚本(例如PHP)来建立隧道
  • 客户端和服务器通过加密隧道进行通信

  • 我可以看到,以这种方式发送安全完整的消息是可能的,但是否可以在不使用PKI的情况下进行身份验证,也许通过利用服务器可以动态重写发送给客户端的Javascript这一事实?

    在步骤2中出现了一个问题-
    服务器响应包含Javascript代码的页面:
    
    你怎么知道坐在电线上的人没有修改这个Javascript,因为它是以明文传输的?基本上,当X想要对Y进行身份验证时,X应该了解Y的一些信息-它可以验证的可能是公共信息,如公钥/证书或共享秘密

    这正是问题的症结所在,我的问题是,有没有办法克服这个问题,利用服务器可以在它发送给客户的文档中嵌入一些秘密的事实呢?没有,你不能事先至少知道一些信息就进行身份验证。