【密码学】《PKI/CA与数字证书》 书籍读后感(一)
背景
总结和归纳《PKI/CA与数字证书》书籍读后感
正文
第1章 为什么会出现PKI技术
PKI是什么?数字证书是什么?CA又是什么?既然有了数字证书,为什么还要私钥,数字证书和公钥密码算法有什么关系?
通俗地讲,数字证书可想象成⼀个 “⽹络版的⾝份证 ”。 数字证书⾥包含姓名、性别等⾝份信息,更重要的是也包含⼀个公钥。每个⽤⼾都拥有⼀个数字证书和⼀个私钥(与数字证书中的公钥配对),数字证书可以公开,但私钥必须保密,基于数字证书和私钥,素昧平⽣的交易双⽅⽆需⻅⾯,在⽹上就可确认对⽅的真实⾝份(客⼾需出⽰⾃⼰的数字证书,商家⾸先从客⼾数字证书中获得其⾝份信息,然后商家远程验证客⼾是否拥有对应的私钥;如果验证通过,则说明客
⼾的⾝份真实有效,可以继续交易,否则应拒绝交易)。由于私钥的安全性⾄关重要,为防⽌私钥泄露,必须采⽤硬件设备加以安全保护,对于个⼈私钥,⽬前均采⽤USB Key⽅式,俗称为U盾
现代密码学的分类?
现代密码学密码算法主要分为三类:
1.对称算法
对称算法是指加密密钥和解密密钥相同的密码算法,⼜称密码密钥算法或单密钥算法。该类算法⼜分为流密码算法和分组密码算法。
流密码算法⼜称序列密码算法,每次加密或解密⼀位或⼀字节的明⽂或密⽂。
分组密码算法将明⽂(密⽂)分成固定⻓度的数据块(⽐特块或字节块),⽤同⼀密钥和算法对每⼀明⽂(密⽂)块加密(解密)后得到等⻓的密⽂(明⽂)块,然后将密⽂(明⽂)块按照顺序组合起来最终得到密⽂(明⽂)。
常⻅的分组密码算法包括DES、IDEA、RC2、AES、SM4等。
2.非对称算法
⾮对称算法是指加密密钥和解密密钥不相同的密码算法,从⼀个密钥很难推导出另⼀个密钥,⼜称公开密钥算法或公钥算法。该算法使⽤⼀个密钥进⾏加密,⽤另⼀个密钥进⾏解密,其中加密密钥可以公开,⼜称公开密钥或公钥;解密密钥必须保密,⼜称私有密钥或私钥。
常⻅的⾮对称算法包括RSA、DH、DSA、ECDSA、ECC、SM2等。
3.摘要算法
摘要算法是指把任意⻓的输⼊消息数据转化成固定⻓度的输出数据的⼀种密码算法,⼜称散列函数、哈希函数或杂凑函数、单向函数等。摘要算法所产⽣的固定⻓度的输出数据称作摘要值、散列值或哈希值。摘要算法没有密钥。
常⻅的摘要算法包括MD5、SHA1、SM3等。
⾮对称密钥管理模式,尽管很好地解决了密钥协商或分配时密钥容易泄露的难题,但并没有解决好密钥与⽤⼾映射关系容易被篡改的问题,依然通过密钥管理中⼼集中存储公钥与⽤⼾的映射关系。
1.CA和数字证书
为有效解决公钥与⽤⼾映射关系容易被篡改的问题,PKI引⼊“CA”和“数字证书”技术。
(1)CA为证书权威,是Certificate Authority的缩写,也称作CA中⼼或证书认证中⼼,是⼀种特殊的密钥管理中⼼,拥有⾃⼰的公钥和私钥,负责给⽤⼾签发数字证书,即使⽤CA中⼼私钥对⽤⼾⾝份信息和公钥信息进⾏加密处理(签名)后形成数字证书。
(2)数字证书是⼀种特殊的⽂件格式,包含⽤⼾⾝份信息、⽤⼾公钥信息和CA中⼼私钥的签名。⽤⼾⾝份信息包括姓名或名称、单位、城市、国家等。当获得数字证书后,使⽤CA中⼼的公钥对数字证书中私钥的签名进⾏解密处理后,就可验证该数字证书是否被篡改,从⽽确认公钥与⽤⼾⾝份的映射关系。只要保证CA中⼼私钥的安全性,就能保证数字证书很难被篡改,从⽽保证了公钥与⽤⼾映射关系很难被篡改。⽤⼾在验证数字证书是否被篡改时,必须⾸先获得CA中⼼的公钥。为⽅便⽤⼾识别CA中⼼的公钥,CA中⼼也为⾃⼰签发数字证书,该证书包含CA中⼼公钥、CA中⼼⾝份信息和CA中⼼私钥的签名。数字证书实际上是把⽤⼾公钥、公钥与⽤⼾的绑定关系以公开形
2.LDAP
CA 中⼼存储着所有⽤⼾的数字证书,为⽅便⽤⼾快速获得交易对⽅的数字证书,避免CA中⼼成为性能瓶颈,PKI⼜引⼊了LDAP技术,通过LDAP⽅式对外提供证书查询或下载服务。LDAP为轻量⽬录访问协议,是Light-weight Directory Access Protocol的缩写
专业的关系型数据库管理系统(如 Oracle、DB2 等),专⻔对结构化数据进⾏管理,应⽤系统只需通过SQL语句(报⽂协议)发送各种数据管理指令,⽽具体管理⼯作完全由数据库管理系统负责。尽管这种数据管理⽅式⼤⼤简化了应⽤系统的复杂度,但由于其读写功能相对均衡,很难满⾜⾼性能的查询服务。为获得⾼性能的查询服务,需要对数据管理的读取功能进⾏特殊优化,于是出现了⽬录服务技术(DAP)。⽬录服务技术对查询功能进⾏优化,⽐修改操作快10倍以上,适合快速响应和⼤容量查询服务。DAP技术通过⽬录树⽅式对数据进⾏管理,应⽤系统只需通过X.500协议就能对数据进⾏快速查询。
由于X.500协议过于复杂,实现成本很⾼,于是国际组织对X.500进⾏了简化,形成LDAP标准,⽽且LDAP⽀持TCP/IP协议,更适合于互联⽹领域使⽤。由于数字证书是可以公开的,CA 中⼼也可以将其签发的数字证书存储到其他地⽅,供⽤⼾查询或下载。
当CA中⼼将私钥已泄露的⽤⼾证书标记为失效后,如果还未到下次CRL⽣成时间,此时其他⽤⼾通过最新CRL并不知道该⽤⼾证书已经失效,依然将该⽤⼾当作有效⽤⼾继续进⾏各种保密通信和合法交易,可能会造成⼀定的损失。为解决 CRL 滞后的缺陷,避免给⾼实时性或⾼⻛险交易造成重⼤损失,PKI 引⼊了OCSP,对⽤⼾提供实时的证书状态查询服务。OCSP为在线证书状态协议,是Online Certificate Status Protocol的缩写,当⽤⼾需要实时查询对⽅证书是否有效时,可通过OCSP协议实时访问CA中⼼获得对⽅证书的当前状态。
4.其他PKI标准
密码相关标准包括ASN.1、DER、HMAC、DES、AES、RSA、ECC等。
证书应⽤标准包括SSL/TLS、SET、WAP、IPSec、TSP、PMI等。
证书存储标准包括PKCS系列标准、ISO 7816系列标准等。
证书访问标准包括PKCS 11、CryptoAPI、JCE、PC/SC等。
CA运营标准包括CP、CPS等。
第29章 国际标准
29.1 PKCS系列
PKCS是公钥密码标准(Public Key Cryptography Standards)的缩写,它是由美国RSA实验室与遍布全球的安全系统开发者⼀起合作制定的⼀组规范,以推动公钥密码的发展。最早发布的 PKCS ⽂档是早期⼀群公钥技术使⽤者在1991 年召开的⼀次会议的成果;⽬前PKCS规范已被⼴泛引⽤和实施,部分PKCS规范已经成为多个国际组织正式或事实上的标准,如ANSI X9⽂档系列、PKIX、SET、S/MIME、SSL等。PKCS系列主要包括以下标准。
PKCS#1:RSA Cryptography Standard(RSA密码标准);
PKCS#2:已撤销,⽤以规范RSA加密摘要的转换⽅式,已并⼊PKCS#1;
PKCS#3:Diffie-Hellman Key Agreement Standard(DH密钥协商标准);
PKCS#4:已撤销,⽤以定义RSA密钥的格式,已并⼊PKCS#1;
PKCS#5:Password-Based Cryptography Standard(基于⼝令的密码标准);
PKCS#6:Extended-Certificate Syntax Standard(扩展的证书语法标准);
PKCS#7:Cryptographic Message Syntax Standard(密码消息语法标准);
PKCS#7 v1.5描述了密码消息的通⽤语法(是不是可以理解成格式)。该语法允许嵌套,如⼀个数字信封可以包含另⼀个数字信封,或可以对已做数字信封的数据进⾏签名;该语法也允许扩展各种属性,还可以⽤于分发证书和CRL。PKCS#7与PEM兼容,可以直接将加密的消息转换成PEM消息,反之亦然。PKCS#7⽀持多种基于证书的管理系统,PEM就是其中之⼀。在RFC 5652中有增强定义。该标准主要包括消息通⽤语法和6种内容类型(明⽂、签名、信封、签名信封、摘要、密⽂)
PKCS#8:Private-Key Information Syntax Standard(私钥信息语法标准);
PKCS#8 v1.2描述私钥信息的语法格式。私钥信息包括私钥和⼀组属性。该标准还描述了私钥密⽂的语法,且允许使⽤基于⼝令的加密算法来加密私钥。在RFC 5208中⼜重新定义。
PKCS#9:Selected Attribute Types(可供选择的属性类型);
PKCS#10:Certification Request Syntax Standard(证书请求语法标准);
PKCS#11:Cryptographic Token Interface Standard(密码Token接⼝标准);
PKCS#12:Personal Information Exchange Syntax Standard(个⼈信息交换语法标准);
PKCS#12 v1.0描述了⽤于存储和传递个⼈⾝份信息的语法格式。个⼈⾝份信息包括私钥、证书、各种秘密及扩展等。⽀持本标准的机器设备、应⽤系统、浏览器、上⽹亭(Internet Kiosk)等应允许⽤⼾导⼊、导出和操作这种格式的个⼈⾝份信息。它的⽬标是为各种应⽤提供⼀个标准的单⼀密钥⽂件。常⻅的PFX⽂件就是遵循PKCS#12格式的⽂件。
PKCS#13:Elliptic Curve Cryptography Standard(椭圆曲线密码标准),正在制定中;
PKCS#14:Pseudo-random Number Generation(伪随机数⽣成算法PRNG),正在制定中;
PKCS#15:Cryptographic Token Information Format Standard(密码Token信息格式标准)。