2011-11-23 166 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