10.6 小结
数字证书是密码学领域的终极武器,它集合了多种密码学算法:自身带有公钥信息,可完成相应的加密/解密操作;同时,还带有数字签名,可鉴别消息来源;且自身带有消息摘要信息,可验证证书的完整性;由于证书本身含有用户身份信息,因而具有认证性。OSI参考模型五类安全服务除访问控制服务外,均可通过数字证书实现。
数字证书要经权威数字证书颁发认证机构签发,VeriSign(http://www.verisign.com/)、GeoTrust(http://www.geotrust.com/)和Thawte(http://www.thawte.com/)是国际权威数字证书颁发认证机构的“三巨头”。其中,应用最为广泛的是VeriSign签发的电子商务用数字证书。由“三巨头”颁发的数字证书需要向用户收取昂贵的申请和维护费用,而CAcert(http://www.cacert.org/)则是一个为我们提供免费数字证书颁发的国际组织。
KeyTool和OpenSSL是我们常用的数字证书管理工具。KeyTool是Java中的数字证书管理工具,用于数字证书的申请、导入、导出和撤销等操作。OpenSSL(http://www.openssl.org/)是一个开放源代码软件包,由Eric A.Young和Tim J.Hudson等人编写,实现了SSL及相关加密技术,是最常用的证书管理工具。
OpenSSL功能远胜于KeyTool,可用于根证书、服务器证书和客户证书的管理,常用来构建双向认证服务。
Java 6完全支持X.509标准的数字证书,可配合使用密钥库和数字证书构建加密交互网络平台。