我正在开发一个安全连接到服务器以登录的J2ME应用程序。我在设置两者之间的SSL方面遇到了很多困难,所以我想到了一个更简单的解决方案,我希望你能就此发表看法。
J2ME Midlet附带服务器的公钥,在连接时使用该公钥加密消息(用户名,密码哈希和随机)并发送到服务器。然后服务器对其进行解密并使用它来验证客户端。
证书颁发机构的主要想法是说谁是谁,如果双方已经知道并且同意它不会改变(除非通过已经过身份验证的连接),那么我不能绕过需要一个?
谢谢, 弗拉基米尔
答案 0 :(得分:1)
如果双方已经知道并且已经同意它不会改变......那么我不能绕过它的需要吗?
是的,但我认为你错过了这一点。该程序随密钥一起提供,但用户无法知道他们正在下载的程序实际上来自您,而不是某些恶意黑客拦截/重写通信;所有用户看到的是从墙上的电线进入的位。
通常你要做的就是用你的钥匙给罐子签名,并把钥匙随你的程序运送。现在我们遇到了一个鸡蛋问题:他们怎么知道关键来自你?
这是证书颁发机构的用武之地; CA的密钥在他们的计算机上已经,因此他们将其留给CA来验证您的身份并签署您的公钥。然后,当用户获取公钥时,验证它是否由CA签名,并验证jar是否由密钥签名,他们知道密钥是你的,因此jar必须来自你,因为你是唯一一个可以用私钥签名的人。
现在,如果您的密钥提前在他们的计算机上(例如,在设置密钥时将密钥放在计算机上的公司内部),他们是的,您绝对不需要密钥已签名。