2010-11-06 55 views

回答

1

問題是相當廣泛的。當涉及到PKI時,我發現行政部分比技術部分更復雜。

設置基本CA時沒有太多要做:保持私鑰安全(一如既往),接收證書請求,以某種方式驗證請求者的身份,頒發證書並將其存儲在某處(可以實現在此之上的撤銷機制)。我簡單地簡化了圖片,但這大致是整個過程,並且您可以使用現有的庫以很多語言實現它,而沒有太大困難。在Java中使用BouncyCastle可行,但我相信其他工具也可以工作,例如OpenSSL with Perl。並非所有的語言暴露整個OpenSSL的API(如果他們使用它的引擎蓋下),它可以很方便的是具有可讀寫ASN.1結構(特別是如果你想要特定擴展名)的庫。對於存儲,它可能是有用的這一個目錄結構(例如,一些基於LDAP系統)結合起來,但這可能取決於你已經在用戶管理系統方面。

其他方面考慮它有多麼簡單是爲用戶請求證書。對於那些不得不申請/使用證書但沒有時間去了解所有內容的用戶來說,這可能會很痛苦。瀏覽器中的密鑰生成可以很方便,而不是讓它們生成CSR(或多或少地通過手動)。對於在瀏覽器中生成,它的使用<keygen>(由Netscape爲此推出的表單元素 - 在Firefox和Opera的作品爲例)的組合,的ActiveX(用於MSIE)或Mozilla Javascript extensions。除了ActiveX之外,您還可以擁有一個獨立的「嚮導」,它是一個完整的應用程序(它具有更多的權限來執行某些與證書相關的操作,否則,MSIE內部通過JScript/ActiveX提供的內容有限且取決於各種安全設置。)

另外要考慮到的是,讓你在應用程序驗證用戶的身份系統。如果它相對較小,則沒有太多要做,但如果它的結構更廣泛,則可能需要當地代表和各種服務,以便他們將這些斷言傳達給要頒發證書的人員。 大多數時候,你這裏需要將取決於你需要保證的水平。

您可能會感興趣OpenCA