2011-11-23 232 views
0

我打算做一个关于双因素身份验证的Finalyear项目,其中第二个因素是数字证书和用户名/密码。我有一个关于Web应用程序的想法,用Java数据证书来做到这一点。有没有什么办法可以使用任何加密算法?数字证书有什么缺点?请给我一些细节。使用数字证书进行双因素身份验证

回答

0

简单的方法是使用x.509 certificates。 Oracle的Java™ PKI Programmer's Guide看起来像它提供了使用x.509证书所必需的Java API的良好概述。许多Java开发人员将Bouncycastle包用于其他加密API。

使用x.509证书的好处在于几乎所有的功能都支持它们。您可以轻松地将x.509客户端证书插入大多数Web浏览器,并且可以轻松配置大多数Web服务器以接受它们。使用TinyCA程序设置您自己的Certificate Authority非常简单。 (该openssl命令行工具并不可怕,但TinyCA使其指向和点击容易得到的一切权利。)

最大的缺点X.509是可能参与建立自己的尴尬CA - 很多程序都有一份列入程序的CA根证书列表,并且提供您自己的根证书可能很烦人 - 不知何故,您必须以防止篡改的方式将该文件传输到客户端。 (如果您的CA根目录已经在软件中,这项任务会更容易)。

+0

非常感谢您的指导。根证书在客户端解密时需要。因此,我需要在根目录中安装根证书Web服务器和Web浏览器(客户端)可以自动下载它们? – Palani

+0

客户端需要根证书来验证服务器的证书。在解密来自其他对等方的任何流量之前,验证是通常的先决条件,但如果用户可以通过其他机制验证服务器的证书,则用户可以使用浏览器的“确认安全例外”对话框。 – sarnold

+0

其实我还没有开始,虽然我的情况是这样的1)用户输入用户名+密码,并认为数字证书必须已经加载在用户系统(浏览器)。 2)但没有数字证书。即使是有效的人也不能登录,因此它达到了第二个因素3)如果用户想要使用来自任何其他系统的服务,他们需要持有dig.cert,只有他们可以登录,否则无法登录。如何向用户发出dig.cert? – Palani