通过java脚本算法在客户端创建公钥和私钥对,然后将公钥传输到服务器。如果公共密钥存储在服务器上怎么办?
人员私钥的副本以java脚本变量的形式存储在用户计算机上。
当用户A将消息发送到用户B
服务器加密与用户B的公开密钥对消息。
用户B拿起消息并解密(用java脚本编写的算法)它与用户B的私有密钥私有并保存在一个Java脚本变量中。
用户B的私钥在任何时候都不会在网络上被披露。
这是安全吗?
通过java脚本算法在客户端创建公钥和私钥对,然后将公钥传输到服务器。如果公共密钥存储在服务器上怎么办?
人员私钥的副本以java脚本变量的形式存储在用户计算机上。
当用户A将消息发送到用户B
服务器加密与用户B的公开密钥对消息。
用户B拿起消息并解密(用java脚本编写的算法)它与用户B的私有密钥私有并保存在一个Java脚本变量中。
用户B的私钥在任何时候都不会在网络上被披露。
这是安全吗?
'public'和'private'只是给两个键的名字。没关系这两个键中的哪个是公开的,哪些是私有的,只要你永远不要混淆使用。一旦两个密钥同时对某个人可用,消息系统的安全性就会完全被破坏。
从技术上讲,既然你说的关键字存储在JavaScript变量,你暗示变量被发送到嵌入在某些基于浏览器的HTML/JavaScript的CLEAR中。这进一步意味着没有安全性 - 因为这两个密钥都暴露在网络中。
回复:“既然你说的键存储在JavaScript变量,你暗示变量被发送到嵌入在一些基于浏览器的HTML/JavaScript中的CLEAR”:这是不正确的。 OP明确指出:“公钥和私钥对是通过Java脚本算法在客户端创建的,然后将公钥传输到服务器。” – ruakh 2012-07-19 17:39:26
“'public'和'private'只是两个键的名字,两个键的哪一个是公共的,哪一个是私人的并不重要。” - 这是一个泛化,并不总是如此。一些PK算法以这种方式是对称的,但另一些则不是。 – 2012-07-23 05:07:12
它不会太安全,因为:
要确定某件事是否“安全”,您必须知道安全要求是什么。您的情况满足几个可能的要求,但有几个可能的要求,它确实而不是满足。例如:
所以,总体来说,我会不考虑这样的设计是“安全的”。
如果以下任何答案对您有用,请将其标记为已接受,以便人们不会再花时间处理此问题。 – techfoobar 2012-07-20 19:07:57
在任何人都可以回答“这是安全的”问题之前,您需要解释您的威胁模型是什么。也就是说,谁是你的攻击者,他们的目标是什么,他们有什么资源? – 2012-07-23 05:08:02