数字证书具备常规加密/解密必要的信息,包含签名算法,可用于网络数据加密/解密交互,标识网络用户(计算机)身份。数字证书为发布公钥提供了一种简便的途径,其数字证书则成为加密算法以及公钥的载体。依靠数字证书,我们可以构建一个简单的加密网络应用平台。
数字证书(Digital Certificate)也称为电子证书,类似于我们生活中的身份证,用于标识网络中的用户(计算机)身份。在现实生活中,我们的身份证需要由公安机关的签发,而网络用户(计算机)的身份凭证则需由数字证书颁发认证机构(Certificate Authority,CA)签发,只有经过CA签发的证书在网络中才具备可认证性。
VeriSign(http://www.verisign.com)、GeoTrust(http://www.geotrust.com)和Thawte(http://www.thawte.com)是国际权威数字证书颁发认证机构的“三巨头”。其中,应用最为广泛的是VeriSign签发的电子商务数字证书。
通常,这种由国际权威数字证书颁发认证机构颁发的数字证书需要向用户收取昂贵的申请和维护费用。但并不是所有的国际权威数字证书颁发认证机构都收费,CAcert(http://www.cacert.org)就是一个免费的数字证书颁发国际组织。随着用户群的增大和颁发手段
的可信性,这种免费的数字证书可信度也越来越高。
证书的签发过程实际上是对申请数字证书的公钥做数字签名,证书的验证过程实际上是对数字证书的公钥做验证签名,其中还包括证书有效期验证。
通过使用由CA颁发的数字证书,我们可以对网络上传输的数据进行加密/解密和签名/验证操作,确保数据的机密性、完整性和抗否认性。同时数字证书中包含的用户信息可以明确地标识交易实体身份,具有认证性,保证交易实体身份的真实性,从而保障网络应用的安全性。
实际上,数字证书是采用了公钥基础设施(Public Key Infrastructure,PKI),使用了相应的加密算法确保网络应用的安全性:
1、非对称加密算法用于对数字进行加密/解密操作,确保数据的机密性。
2、数字签名算法用于对数据进行签名/验证操作,确保数据的完整性和抗否认性。
3、消息摘要算法用于对数字证书本身做摘要处理,确保数字证书完整性。
目前,数字证书中最为常用的非对称加密算法时RSA算法,与之配套使用的签名算法时SHA1withRSA算法,而最为常用的消息摘要算法是SHA1算法。
除了使用RSA算法外,我们还可以使用DSA算法。只是使用DSA算法无法完成加密/解密实现,即这样的数字证书不包括数据加密/解密功能。
数字证书有多种文件编码格式,主要包含CER编码、DER编码等:
1、CER(Canonical Encoding Rules,规范编码格式)是数字证书的一种编码格式,它是BER(Basic Encoding Rules,基本编码格式)的一个变种,比BER规定得更严格。
2、DER(Distinguished Encoding Rule,卓越编码格式)同样是BER的一个变种,与CER的不同之处在于:DER使用定长模式,而CER使用变长模式。
所有证书都符合公钥基础设施(PKI)制定的ITU-T X509国际标准(X.509标准),目前共包含3个版本。
3、PKCS(Public-Key Cryptography Standards,公钥加密标准)由RSA实验室和其他安全系统开发商为促进公钥密码的发展而制定的一系列标准。PKCS至今共发布过15个标准,常用标准主要包括PKCS#7、PKCS#10和PKCS#12。
在获得数字证书后,可以将其保存在电脑里,也可以保存在IC卡或USB Key中。