2010-01-27 97 views
2

我正在开发一个安全连接到服务器以登录的J2ME应用程序。我在两者之间建立SSL时遇到了很多困难,所以我想到了一个更简单的解决方案,我希望您可以对此发表看法。证书颁发机构vs存储的公钥

J2ME Midlet随附服务器的公钥,在连接消息(用户名,密码哈希和随机)时使用该公钥加密并发送到服务器。服务器然后解密并使用它来验证客户端。

证书颁发机构的主要思想是说谁是谁,如果双方知道已经并且同意不会改变(除非通过已经通过身份验证的连接),那么不要绕过需要一个?

感谢, 弗拉基米尔

回答

1

如果双方已经知道了,并一致认为,它不会改变......那么就不要我绕过一个需要?

是的,但我认为你错过了这一点。该程序附带密钥,但用户无法知道他们下载的程序实际上来自您,而不是某些恶意黑客拦截/重写通信;所有用户看到的都是从墙上的电线进入的。

通常情况下,您要做的就是用钥匙在罐子上签名,然后用程序发运钥匙。现在我们有一个鸡与鸡蛋的问题:他们怎么知道钥匙是从你那里来的?

这是证书颁发机构进入的地方; CA的密钥已经在他们的计算机上,因此他们将它留给CA来验证您的身份并签署您的公钥。然后,当用户获得公钥时,验证它是由CA签署的,并验证该密钥是由密钥签署的,他们知道密钥是你的,因此该密码必须来自你,因为你是唯一可以用私钥签名的人。

现在,如果您的密钥提前在计算机上(例如,在公司内部,密钥在设置时物理放置在计算机上),那么他们肯定不会需要签署密钥。

相关问题