保护HTTP流量免受嗅探

时间:2012-10-25 11:51:53

标签: javascript asp.net security ssl

很抱歉,如果有人提出这个问题,但我没有找到确切的问题。我有HTML格式,以明文形式提交。我知道有SSL的HTTP,但我不想购买证书。是否有可能以某种方式加密表单数据?我在考虑两件事:

  • 通过javascript散列表单数据 - 实际上我只想发送密码,所以我不需要知道它的'原始值。
  • RSA - 不确定它是否可以在javascript中实现。 你会建议什么?还有其他变种吗?

2 个答案:

答案 0 :(得分:3)

无论您执行何种浏览器端加密,都需要使用加密密钥 - 攻击者可以使用此加密密钥。因此,虽然您的密码将被加密给不经意的观察者,但是没有针对目标攻击提供额外的安全性。

在此上下文中散列是无用的,因为密码的散列版本将成为用于授权/注册用户的密码。

此问题的唯一解决方案是SSL证书 - 它们非常便宜!

http://en.gandi.net/ssl/grid(没有会员链接)

您甚至可以使用self-signed certificate(如果您可以教育您的用户信任将出现的浏览器警告)。由于自签名证书没有“证书颁发机构”来证明证书是合法获得的(而不是,例如,由man-in-the-middle attack中的远程主机提供)浏览器(和用户)非常吵闹他们将他们解雇为“不安全”。

Matasano Security上有一篇关于Javascript安全性的好文章:

  

将Javascript安全传送到浏览器是一个鸡蛋问题。

     

浏览器Javascript对加密技术持怀疑态度。

     

Javascript的“view-source”透明度是虚幻的。

     

在修复这些问题之前,Javascript并不是一个严重的加密   研究环境,并为之受苦。

答案 1 :(得分:2)

  • 哈希是一个单向过程..你找不到原始值 来自哈希。
  • 有一个blowfish encryption library for javascript但我真的没有看到这个目的,因为(就像Andy在他的回答中所述),用于加密的密钥将在发送给客户端的明文中提供。

执行此操作的标准(仅限btw)方式是https。您可以使用自己的证书启用ssl,无需购买。但是......浏览器可能会警告访问者该证书尚未由已知权威机构签署。