PKI:数字证书的内容
RSA算法密钥的产生,这里有一个简明的例子。
X.509数字证书由3个域组成:证书内容
(待签名) tbsCertificate、签名算法 signatureAlgorithm、签名值 signatureValue。
其中,证书内容细节如下表:
找了一个网站开通HTTPS使用的证书作为例子,对照看一下证书内容,基本对的上。
然后来看一些证书内容里面的标准扩展项的内容细节表:
同样的,使用HTTPS的证书作为例子,对照着看一下:
这里说一下KeyUsage 密钥用法。它是定义密钥的用途,限制、约束其只能用于部分操作。这里是Digital Signature, Key Encipherment (a0)。
Digital Signature
是可以用于数字签名,用于实体身份认证和数据完整性认证,但不可用于签发证书和CRL。
Key Encipherment
是用于密钥加密,用于密钥管理。
而 data Encipherment 是用于数据加密,但不可以用于密钥加密。
按照不同的标准,可以对证书进行分类。
- 按持有者来分
有CA证书,非CA证书
非CA证书又有:个人的、单位的、系统的。
系统的是代表软件系统或设备系统的身份。系统信息就是比如IP地址、域名。可以分为:WEB服务器证书、域控制器证书、VPN设备证书、OCSP服务器证书、时间戳服务器证书等。那这里举的证书例子,就是WEB服务器证书。 - 按密钥对产生方式和使用方式来分
可分为签名证书和加密证书。
可以通过证书内容里的扩展项 KeyUsage ExtKeyUsage 来识别。这里的例子,应该是签名证书,加密只能对密钥加密,没说可以对数据加密。 - 按证书用途来分
有SSL服务器证书、SSL客户端证书、代码签名证书、EMAIL证书等。ExtKeyUsage可以用来识别。例子里的是id-kp-serveAuth, id-kp-clientAuth。即用于SSL/TLS WEB的
服务器身份验证 (1.3.6.1.5.5.7.3.1)
客户端身份验证 (1.3.6.1.5.5.7.3.2)
证书的保存形式,可以按照Certificate类型进行DER编码,保存为二进制形式的文件。也可以采用Base64编码后保存为可打印字符文件。文件后缀为cer或crt,在windows下双击文件可以查看证书内容,如本文中的证书内容截图。
要保存证书链(证书路径或认证路径)上的所有证书,将多个证书保存到一个文件,可以采用 PKCS#7 文件形式。
另外,导出个人证书时,可以选择是否将私钥和证书一起导出,如果一起的化,只能导出为 PKCS#12 格式文件。
私钥的保存形式,可以以文件形式(包含 PKCS#8 ,PKCS#12 文件形式;JAVA从1.4开始支持的密钥库文件形式,后缀是.keystore。可以通过keytool工具或java类访问,私钥文件后缀是jks)、密码设备形式(IC卡、USB Key、密码卡、密码机等)、软件系统管理形式(如windows的CSP Cryptographic Service Provider、WEB服务器软件IIS,Apache,Tomcat, Nginx等)。
私钥的访问方式有很多,CryptoAPI, PKCS#11, JCA/JCE, CNG, PC/SC,还有国密接口,即《智能IC卡及智能密码钥匙密码应用接口规范》。
- 点赞
- 收藏
- 关注作者
评论(0)