gpt4 book ai didi

encryption - 为什么 SSL 如此特别?我不能自己实现 RSA 吗?

转载 作者:太空宇宙 更新时间:2023-11-03 12:55:52 26 4
gpt4 key购买 nike

我可以自己实现 RSA,而不是在 ssl 上花费一大笔钱吗? (我不关心证明站点的身份;我只想加密客户端和服务器之间的密码以防止中间人攻击)。我了解到任何自定义解决方案都可能非常不安全,但有人可以阅读我的计划并给出深思熟虑的回应吗?

首先我会创建公钥和私钥。我会通过将密码的字母转换为 ascii 值来使用 javascript 加密客户端密码,然后乘以或添加(任何建议?)这些 ascii 值以获得“未加密的消息”。然后我会使用 javascript 和公钥加密此消息。

在服务器上,我将使用私钥解密安全消息,并以密码的 ascii 值的总和/乘积结束。关于如何从中获取单个字母的任何提示?

编辑:我得出的结论是 SSL 是最好的方式。我只是在查看交易的客户端到服务器端(所有客户端发送的都是密码)。当然,服务器发送给客户端的信息是有值(value)的,不应该容易受到 MITM 攻击。感谢您提供免费的 SSL 建议。

谢谢

最佳答案

有很多理由不推出自己的加密。

  1. SSL 让用户确信网站是安全的,窃听者无法在线查看密码。如果您不使用 SSL,那么浏览器通常不会显示网站安全的指示。
  2. 真的很难得到正确的 RSA(或与此相关的任何加密算法)。首先,使用原始 RSA 是不安全的,您需要有一个适当的填充机制并且不会使其真正安全。 RSA 也只能加密 n-1 字节的数据,其中 n 是 key 的大小。
  3. 将密码留给密码学家。您提议的系统的第一个问题是您错过了使用安全传输的要点:您不需要对数据进行任何特殊编码(转换为 ascii 和乘法/求和或任何部分),因为安全传输意味着窃听者无法看到过去发生了什么。
  4. 您的建议防止中间人攻击。它(有点)防止窃听,这是一个不同的问题。

也就是说,您当然可以通过一些努力在 Javascript 中实现 RSA,但请注意,除非您让一群密码分析家查看并尝试破解它,否则它不太可能是安全的。你沿线的某个地方犯错误,即使你是世界上最好的程序员。

用户体验也会受到影响,因为用户很难验证他们实际上是在与您的服务器对话。

SSL 是一个众所周知的、经过充分分析的、尚未被破坏的协议(protocol),如果您使用自签名证书,它可以是免费的(另一种糟糕的用户体验,但至少它仍然相当安全)。在您决定以低价购买加密货币之前,请非常仔细考虑,并确保权衡证书的成本与您的开发时间(实现 RSA 将花费您很多时间)和潜在成本泄漏重要的客户信息(他们的密码)。与项目的其余成本相比,证书的成本可能微不足道。

关于encryption - 为什么 SSL 如此特别?我不能自己实现 RSA 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8642054/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com