【发布时间】:2012-12-03 01:24:55
【问题描述】:
我知道每个人都使用 TLS/SSL 作为网络上的传输层安全性。
什么会阻止我手动生成假设密钥对,使用该公钥加密数据客户端(例如使用 JS)并使用 http 的 GET/POST 请求将该数据提交到我的服务器?
我的意思是——我可以使用 JS 库用那个公钥加密一些表单数据——对吧?
只有拥有私钥的人才能解密它——对吧?当然,私钥会保存在服务器上。不会弹出任何关键警告 - 因为传输是常规的 http 请求。那么为什么我需要 TLS?
【问题讨论】:
-
当已经使用的方法已经通过时间和广泛的行业同行评审证明了它们时,不要重新发明轮子。尝试制作自己的系统将是乏味的,如果实施不当,实际上可能会使您的系统受到攻击。只是我的观点。 =o)
-
@cryptic 虽然您的建议总体上很好,但使用 JavaScript(可能是通过未加密的通道发送)加密/解密数据的特定情况不仅容易受到实现错误的影响,而且不是甚至是安全的。