我目前正在撰写有关 HTTP 和 HTTPS 以及 HTTPS 的优势的文章。我在想,是否可以安全地将数据发送到服务器(即登录),这只是 HTTP。结果我认为登录凭据在发送之前是加密的,例如不可读(使用 wireshark),但服务器仍然可以检索信息。
我可以理解为什么这是不可能的,如何让服务器成为唯一读取凭据的服务器。
这只是一种想法。
答案1
这实际上是可能的。您可以在客户端 JavaScript 中实现 SSL 使用的加密算法,并使用公钥加密您的日期。只有您服务器上的应用程序才有相应的私钥,因此即使使用纯 HTTP,也没有人可以读取数据。
但是,与 SSL 相比,它有一个很大的缺点:您无法抵御中间人攻击(中间人会用拥有私钥的密钥替换公钥)。如果使用 HTTPS 进行同样的攻击,则需要有腐败/恶意的 CA 或用户接受无效/自签名证书。