X509
概念
X509是密码学里公钥证书的格式标准。 X.509证书里含有公钥、身份信息(比如网络主机名,组织的名称或个体名称等)和签名信息(可以是证书签发机构CA的签名,也可以是自签名)。
另外除了证书本身功能,X.509还附带了证书吊销列表和用于从最终对证书进行签名的证书签发机构直到最终可信点为止的证书合法性验证算法。
公钥
公钥证书分为两大类:
- CA certificates:证书颁发机构的自身证书,通常是由上一级单位发放
- end-entity public-key certificates:普通用户证书
CA 权威公钥证书分为三种类型:
- Self-issued certificate:自发放证书,颁发证书的CA和被颁发者是同一个CA;
- Self-signed certificate:自签名证书,是一种特殊的自发放证书,此证书签名用的私钥是和证书里面的公钥是配对的。
- Cross-certificate:颁发证书的CA和被颁发者是不同的CA;
CA权威机构之间关系
Relying party 是使用证书的用户(certificate user),它验证由 CA 颁发给 subscriber的证书是否合法。
公钥证书或数字证书是由认证机构(CA: Certificate Authority)颁发的,使用者需要对证书进行验证,如果证书的格式千差万别那就不方便了。于是,人们制定了证书的标准规范,其中使用最广泛的是由 ITU(International Telecommunication Union)定义,经PKIX(Public-Key Infrastructure standards for X.509)工作组改造过的X.509规范(RFC5280)
PKI 主要由证书订阅人(申请并提供证书的服务端)、证书登记注册机构(RA: Registration Authority)、证书认证颁发机构(CA: Certification Authority)、证书使用者(请求验证证书的客户端)等部分构成,
证书的订阅
证书的订阅:由订阅人subscriber发起订阅请求,CA权威机构负责处理和发放证书。发放的公钥证书需要包含订阅人公钥、订阅人身份信息、证书颁发者数字签名等相关信息的数字文件,
证书的吊销
当证书申请者出现私钥泄露或者不再使用证书等情况时,就需要将证书作废。要作废数字证书需要符合相应的标准或流程,目前主要有两种证书吊销标准:
CRL(Certificate Revocation List):证书吊销列表CRL是一组未过期、但是却已经被吊销的证书序列号列表,CA维护了一个或多个这样的列表,每一张证书都需要在CRL分发点扩展字段中包含对应的CRL地址。CRL最大的问题在于它越来越大,实时查询起来会非常慢; OCSP(Online Certificate Status Protocol):在线证书状态协议OCSP允许验证证书的客户端获得一张证书的吊销信息,OCSP服务器的地址包含在证书的授权信息访问扩展字段中。OCSP支持实时查询并且解决了CRL最大的缺点,证书吊销检查更快速可靠,但也带来了一些新的问题,这些问题将在网络攻防中不断解决。
书吊销检查更快速可靠,但也带来了一些新的问题,这些问题将在网络攻防中不断解决。
因为根认证机构数量有限,不可能所有的服务器都直接找根认证机构申请证书。为了提高证书的申请与管理效率,证书的申请认证是分层级的,从根证书到申请机构可能有多个中间层级的认证机构,这些中间层级的认证机构都需要有上一级的认证机构数字签名才是可信的,最终一直到根认证机构签名。我们使用的操作系统或浏览器中可能只有根认证机构的公钥,从根认证机构的证书逐层往下验证到服务器的证书颁发机构。很显然,证书链越短,进行身份认证需要传输的数据量越少,身份认证效率自然越高。
|