Ssl 证书颁发机构与存储公钥

Ssl 证书颁发机构与存储公钥,ssl,java-me,client,certificate,public-key,Ssl,Java Me,Client,Certificate,Public Key,我正在开发一个J2ME应用程序,它可以安全地连接到服务器进行登录。我在设置两者之间的SSL时遇到了很多困难,因此我想到了一个更简单的解决方案,希望您能给出您的看法 J2ME Midlet附带服务器的公钥,在连接时,使用该公钥对消息(用户名、密码哈希和随机数)进行加密并发送到服务器。然后服务器对其进行解密,并使用它对客户端进行身份验证 证书颁发机构的主要思想是说谁是谁,如果双方已经知道这一点,并且同意它不会改变(除非通过已经通过身份验证的连接),那么我不需要绕过对证书颁发机构的需求吗 谢谢, 弗拉

我正在开发一个J2ME应用程序,它可以安全地连接到服务器进行登录。我在设置两者之间的SSL时遇到了很多困难,因此我想到了一个更简单的解决方案,希望您能给出您的看法

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

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

谢谢, 弗拉基米尔

如果双方已经知道这一点并同意不会改变。。。那我就不需要一个了吗

是的,但我认为你没有抓住重点。该程序附带密钥,但用户无法知道他们下载的程序实际上来自您,也无法知道某些恶意黑客正在拦截/重写通信;用户所看到的只是从墙上的一根电线传来的碎片

通常,您要做的是用您的密钥对jar进行签名,然后将密钥与您的程序一起发送。现在我们有一个鸡和蛋的问题:他们怎么知道钥匙来自你

这就是证书颁发机构的作用所在;CA的密钥已经在他们的计算机上,因此他们将其留给CA来验证您是谁并签署您的公钥。然后,当用户获得公钥,验证它是否由CA签名,并验证jar是否由密钥签名时,他们知道密钥是您的,因此jar一定来自您,因为您是唯一可以使用私钥签名的人

现在,如果您的密钥提前在他们的计算机上(例如,在一家公司内部,在设置密钥时,密钥实际放置在计算机上),那么它们是的,您绝对不需要对密钥进行签名