2010-11-06 56 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