zua*_*auz 5 javascript php encryption ssl public-key-encryption
我正在建立一个网站,我的付款方式将是Google Checkout和Paypal.将有链接/按钮将用户重定向到安全的Google/Paypal网站以处理付款.这意味着我不需要每年150美元的额外费用和为我的网站安装SSL证书的复杂性.
但是我想在登录时加密用户的密码,这样如果他们在网络上,一些运行FireSheep等的恶意人员在发送到服务器时无法读取用户的实际密码.该网站的其余部分不需要加密,因为它不是真正敏感的数据,可能会显着降低用户体验.
我的想法是,这可以通过公钥加密实现.让我们说这个过程是这样的:
我在想像RSA会做的事情.但我已经在网上寻找一个可以运行的JavaScript库,但似乎没有一个与可用的PHP库兼容.无论如何,它需要生成一组与JavaScript和PHP兼容的密钥.
有人知道这个实际工作的解决方案吗?如果不是我们写一个然后开源它.不幸的是,编写加密/解密代码非常复杂,因此我并不确切知道现有库正在做什么以及如何修改它们以使其工作.我已经有会话固定/劫持的保护,所以我对此不感兴趣.只是有兴趣在数据到达Web服务器之前对其进行加密.
注意:请不要将一堆链接发布到独立的Javascript或PHP加密库,我已经在Google上发现了这些链接.这实际上并没有用.我需要的是JavaScript加密和PHP解密的代码,它们实际上和谐地协同工作以产生上面概述的预期结果.
此外,如果你可以避免发布像"只使用SSL"这样的评论.我实际上想要解决这个确切的问题,即使这不是最佳实践,但它会很有趣.
非常感谢!
dec*_*eze 18
只有一个问题:攻击者不需要知道实际的密码.他需要看到的只是发送到服务器的值.该值允许用户登录.该值是什么并不重要; 无论是纯文本,加密文本还是猫的图片.它只是一个验证用户身份的令牌.如果攻击者可以看到此令牌并重复相同的请求并且同一请求允许他登录,则您什么也得不到.
RSA过度杀伤; 您可能需要的是一个简单的挑战 - 响应协议.例如:
这种方案的缺点是数据库中的密码哈希在某种意义上是密码等效的; 虽然提取用于生成这些哈希的原始密码可能不可行,但是存储哈希的知识足以模拟您网站上的用户.
SSL证书用于完全不同的目的:SSL证书的目的是使第三方流氓服务器难以声称自己是您的服务器,因为它没有由某个相互信任的第三方签署的证书属于您的域名.另一方面,如果您无法阻止恶意服务器冒充您的用户,则无法保护您的用户不要将密码提供给该恶意服务器,尽管加密.