跟安全相关的领域,有各种专业名词:X.509,CSR,LDAP,CA,PKI,MSP。。以及五花八门的各种证书。初接触者往往会眼花缭乱,理不清楚这些东西之间的关系。
这1篇将在序列5的基础上,进一步介绍跟安全相关的各种内容。
3个核心概念
在序列5,介绍了证书的概念;同时,在比特币的序列,也介绍了私钥和公钥之间的关系。这个地方,再次总结一下3者的关系:
私钥(Private Key) : 1长串随机的字符串
公钥(Public Key):根据私钥生成,私钥和公钥形成一对。
证书(Certificate):公钥 + 公钥持有者的个人信息 + 第3方(CA)的数字签名
X.509标准
X.509是啥呢?X.509是由国际电信联盟(ITU-T)制定的数字证书标准。
通俗点讲,就是定义了上面说的Certificate的格式(具体包括哪些字段,每个字段的内容)。具体包括下面的一些字段:
(1)公钥
(2)公钥持有人的主题信息:国家,组织单位,名称,邮箱等。。
(3)第3方(CA)的数字签名
(4)序列号:由CA给予每一个证书分配的唯一的数字型编号,当证书被取消时,实际上是将此证书序列号放入由CA签发的CRL(Certificate Revocation List证书作废表,或证书黑名单表)中。这也是序列号唯一的原因。
(5)证书的有效期
(6)发证机关(CA)的名称
(7)发证机关使用的签名算法
五花八门的各种证书格式
尽管X.509标准规定了证书内容规范,但各类证书由于存储的内容不同(如是否包含公钥/私钥是否加密存储/单一证书或多证书等)、采用编码不同(DER/BASE64)、标准不同(如PEM/PKCS),所以呢,证书文件还是五花八门。
下面列举了一些常用的证书文件格式:
先按编码,分为2大类:Base64编码 与 2进制编码
(1)Base64编码
.crt/.cer//.crt 和 .cer 可以认为是同一种格式,不同叫法。存储的都是公钥对应的证书。
.key//私钥
.crt + .key / .cer + .key//构成1对公钥/私钥对
.pem //pem文件,存的可能是公钥,也可能是私钥,或者合在一起。
(2)2进制编码
.der
.cer //cer文件,可能是Base64编码,也可能是2进制。
除了上面这些格式,还有.ppk, .p12, ..以及其他各种PKCS的格式,在此就不再一一列举。
关键是把握原理:知道每种格式里面,存的是公钥,还是证书,还是私钥,或者合在一起存储的。
CSR
CSR,全称Certificate Signing Request,也就是上1篇所讲的,证书申请者向CA服务器发送的请求:申请者发送自己的公钥,CA返回数字证书。
只是这个请求呢,也被标准化了,是PKI安全体系的一部分。
那么CSR里面都有哪些信息呢?
很显然,有公钥,有申请者的个人信息。
但这还不够,公钥在发送给CA的时候,被拦截,然后被篡改怎么办?
所以CSR里面包含了一个签名,用发送者自己的私钥签名。说的绕1点:发送者用自己的私钥,对自己的公钥做个签名,然后发给CA。
这样,这个CSR请求不可能被篡改:CA拿到请求,用发送者的公钥来验签。
总结一下,CSR包括3部分信息:
公钥 + 申请者的个人信息;
签名;
签名算法的标识(告诉CA,是用什么算法签的)
LDAP
LDAP(Lightweight Directory Access Protocal),轻量级目录访问协议。
这个名字呢,听起来不明觉厉,实际上可以简单的理解为一个类似Mysql的数据库 + 上面搭建的一个读写服务。
当然,它是树形数据库,不是通常的关系数据库。
另外呢,这个东西不是一个实际的技术框架,而是一个协议,或者说互联网上的一个标准。很多厂商的软件都实现了这个标准。
简单点讲,可以先把它当做一个可以提供数据存储、数据读写的服务。
领取专属 10元无门槛券
私享最新 技术干货