2013-04-15 17 views
0

HTTPS广泛用于安全在线。它提供安全性和完整性,但不提供认证。为了确保客户不与中间人交谈,我们有数字证书和PKI。这一切都工作得非常好,除了在以下条件适用的情况:HTTPS密钥协商和使用Javascript通过HTTP进行隧道传输

  • 服务器和客户端不共享一个共同的,受信任的根CA,因此,他们无法验证彼此的证书
  • 情况下(如。防火墙,权限等),不允许使用常规HTTPS协议的

的问题是:我们仍然可以发送客户端和服务器之间的安全,经过验证的消息,也许使用Javascript?

东西线沿线的:

  1. 客户定期发送HTTP请求到服务器
  2. 服务器包含页面的JavaScript代码进行响应
  3. 客户端的JavaScript异步地将数据发送到用于协商
  4. 服务器服务器运行某种脚本(例如PHP)来建立隧道
  5. 客户端和服务器通过加密隧道进行通信

我可以看到它是可以发送以这种方式安全性和完整性的消息,但有可能通过利用这样的事实,该服务器可以动态重写的Javascript发送到未做使用PKI的认证,或许客户端?

回答

1

步骤2中存在问题 - Server responds with page containing Javascript code: 您如何知道坐在电话上的某人不会修改此Javascript,因为它正在以明文形式传输?基本上,当X想验证Y时,X应该知道Y的一些信息 - 它可以是公共信息,如公钥/证书或可以验证的共享密钥

+0

这就是问题的关键,我的问题是有一些方法可以利用服务器可以在发送给客户端的文档中嵌入一些秘密这一事实来解决这个问题 – ose

+1

不,没有,如果没有至少一些知识,就不能进行身份验证。 –

相关问题