Algorithm 如果服务器上存储了公钥呢?
通过java脚本算法在客户端创建公钥和私钥对,然后将公钥传输到服务器 persons私钥的副本以java脚本变量的形式存储在用户计算机上 当用户A向用户B发送消息时 服务器使用用户B的公钥对消息进行加密 用户B拾取消息并使用用户B的私钥解密(用java脚本编写的算法),该私钥是私有的,保存在java脚本变量中 在任何时候,用户B的私钥都不会通过网络被公开Algorithm 如果服务器上存储了公钥呢?,algorithm,private,public,public-key-encryption,Algorithm,Private,Public,Public Key Encryption,通过java脚本算法在客户端创建公钥和私钥对,然后将公钥传输到服务器 persons私钥的副本以java脚本变量的形式存储在用户计算机上 当用户A向用户B发送消息时 服务器使用用户B的公钥对消息进行加密 用户B拾取消息并使用用户B的私钥解密(用java脚本编写的算法),该私钥是私有的,保存在java脚本变量中 在任何时候,用户B的私钥都不会通过网络被公开 这是否安全?“public”和“private”只是这两个密钥的名称。这两个键中的哪个是公共的,哪个是私有的并不重要,只要你永远不要混淆用法。
这是否安全?“public”和“private”只是这两个密钥的名称。这两个键中的哪个是公共的,哪个是私有的并不重要,只要你永远不要混淆用法。一旦有人同时拥有这两个密钥,消息传递系统的安全性就会被彻底破坏
从技术上讲,因为您说键存储在javascript变量中,所以您是在暗示这些变量是以明文形式发送的,并嵌入到一些基于浏览器的html/javascript中。这进一步意味着没有安全性,因为这两个密钥都向网络公开。'public'和'private'只是这两个密钥的名称。这两个键中的哪个是公共的,哪个是私有的并不重要,只要你永远不要混淆用法。一旦有人同时拥有这两个密钥,消息传递系统的安全性就会被彻底破坏
从技术上讲,因为您说键存储在javascript变量中,所以您是在暗示这些变量是以明文形式发送的,并嵌入到一些基于浏览器的html/javascript中。这进一步意味着没有安全性-因为两个密钥都暴露在网络中。这不会太安全,因为:
- 任何用户(比如用户B)的私钥都可能通过注入的JS代码或糟糕的浏览器插件从应用程序中泄漏出来
- 一旦这样做了,任何一个能够访问指向用户B的任何消息的人都将能够解密它并理解它
- 当然,如果你是唯一一个使用该应用程序的人,上述情况就不会发生——因为你可能会有其他用户使用不同的浏览器设置/插件/浏览行为等,这是完全可能的
- 当用户A尝试向用户B发送消息时,您说过服务器将使用用户B的公钥加密消息-现在,通过JS发出的请求可以由中间人解释。一旦完成,这个中间人可以通过操纵发送者、推荐者等向任何用户发起任何请求。这可能会导致模仿等
- 您还提到,生成后,您打算将公钥发送到服务器。这个来自JS的调用很容易被解释,这意味着公钥可能会被泄露
- 任何用户(比如用户B)的私钥都可能通过注入的JS代码或糟糕的浏览器插件从应用程序中泄漏出来
- 一旦这样做了,任何一个能够访问指向用户B的任何消息的人都将能够解密它并理解它
- 当然,如果你是唯一一个使用该应用程序的人,上述情况就不会发生——因为你可能会有其他用户使用不同的浏览器设置/插件/浏览行为等,这是完全可能的
- 当用户A尝试向用户B发送消息时,您说过服务器将使用用户B的公钥加密消息-现在,通过JS发出的请求可以由中间人解释。一旦完成,这个中间人可以通过操纵发送者、推荐者等向任何用户发起任何请求。这可能会导致模仿等
- 您还提到,生成后,您打算将公钥发送到服务器。这个来自JS的调用很容易被解释,这意味着公钥可能会被泄露
- 消息的纯文本副本显然是通过网络从用户A传输到服务器的,因此任何人都可以在那个时候窃听它。(这可能是一个严重的问题。)
- 您没有解释如何将公钥传输到服务器。如果不是以经过身份验证的方式传输,那么中间的人可以生成自己的公私密钥对,并将其公钥提供给服务器。(这可能是一个严重的问题。)
- 用户B无法验证其收到的消息的真实性。消息可能来自服务器(最终来自用户A),也可能来自其他任何具有公钥副本的人。(这可能是严重问题,也可能不是严重问题,具体取决于应用程序。)
- 消息的纯文本副本显然是通过网络从用户A传输到服务器的,因此任何人都可以在那个时候窃听它。(这可能是一个严重的问题。)
- 您没有解释如何将公钥传输到服务器。如果不是以经过身份验证的方式传输,那么中间的人可以生成自己的公私密钥对,并将其公钥提供给服务器。(这可能是一个严重的问题。)
- 用户B无法验证其收到的消息的真实性。该消息可能来自服务器(最终来自用户A),也可能来自任何其他拥有该消息副本的人
- 它不会太安全,因为: