我有一个需要连接到服务器的java应用程序。它很简单,以确保服务器不被欺骗使用SSL,但我似乎无法绕过我的头如何服务器将验证客户端,以确保请求只来自可信方。只有第一个通信需要被认证。在通信步骤中,客户端和服务器将交换一些将用于随后认证客户端的信息。由服务器进行的客户端身份验证
我能想到的一种方法是对应用程序进行数字签名,然后将应用程序的数字签名发送到服务器。服务器验证数字签名以认证客户端。现在我有这方面几个问题:
- 是否有可能从 获得内本身 应用程序的数字签名。如果是,那么如何? (我试过寻找这对 互联网,但找不到任何 办法这样做)
- 是否可以用其他的方法,如 十六进制编辑器中提取此签名。如果这是已知的,则 任何人都可以将该签名 发送到服务器并欺骗客户端。
另外,请让我知道如果我是完全错误的轨道在这里:)
编辑上:通过“可信方”我的意思是“未修饰的客户端”
公私钥加密可能有效。将公钥分配给受信任方。 – 2010-10-01 08:30:50
@Sagar V,客户将自由分配,我无法控制它最终运行的位置。如果可以取出,则将公钥分发给客户端不是一种选择。 – Prashast 2010-10-01 08:44:55
什么会阻止修改后的客户端发送未修改的客户端的数字签名? – Christoffer 2010-10-01 08:47:12