为适应复杂的应用场景,实际中通常要对证书分类。有些分类方式X.509格式已经支持,但有些分类方式X.509格式本身并不支持,需要通过其他方式来识别。
证书通常分为根据证书持有者和根据密钥两大类。
1.根据证书持有者分类
(1)根据证书持有者是否为CA分类
根据证书持有者是否为CA,可把证书分为CA证书和用户证书。CA证书可以给用户或其他CA签发证书,用户证书不允许给其他用户或CA签发证书。
X.509格式中通过扩展项Basicconstraints来区分这2类证书。当其中的CA项为TRUE时表示CA证书,为 FALSE时表示用户证书。
(2)按照证书持有者类型分类
根据证书持有者类型,一般把证书分为个人证书、单位证书与系统证书等。
个人证书是CA系统给个人签发的证书,代表个人身份。证书中需含个人信息(如姓名、身份证、E-mail、电话等)和个人公钥。
单位证书是CA系统给机构或组织等签发的证书,代表单位身份。证书中得有单位信息(如名称、组织机构代码、E-mail、联系人等)和单位公钥。
系统证书是CA系统给软件系统或设备系统等签发的证书,代表系统身份。证书中得有系统信息(如IP地址、域名等)和系统公钥。系统证书又含Web服务器证书、域控制器证书、VPN设备证书、OCSP服务器证书、时间戳服务器证书等。
X.509格式本身并不支持这种分类,通常通过在Subject中增加DN项进行区分,如可增加OU=PERSON表示个人证书,OU=UNIT表示单位证书等。为使证书内容统一,扩展项KeyUsage、ExtKeyUsage一定得设置合适的值。
2.根据密钥分类
(1)根据密钥对产生方式分类
根据密钥对的产生方式,可把证书分为签名证书和加密证书。
签名证书及私钥只可签名验签,不能加密解密。为保确保该密钥对是唯一的,它一定要由用户端密码模块产生和保存,在证书签发过程中CA中心并不知道其私钥,只对其公钥操作。
加密证书及私钥只可加密解密,不能签名验签。为实现密钥恢复或行业监管,该密钥对须由CA中心产生,并回送给用户端密码模块保存。CA中心同时保存该密钥对,必要时可恢复它。
X.509格式本身并不支持这种分类;一般由存储位置或应用系统区分。为使证书内容统一,扩展项KeyUsage、ExtKeyUsage须设置合适的值。
(2)根据证书用途分类
根据证书用途,通常分为SSL服务器证书、SSL客户端证书、代码签名证书、Email证书、时间戳服务器证书、OCSP服务器证书等。SSL证书只用于SSL/TLS应用,Email证书只用于安全电子邮件,代码签名证书只用于签名验签代码。
X.509格式中通过扩展项ExtKeyUsage来区分这几类证书。为使证书内容统一,扩展项KeyUsage须设置合适的值。