4.9公钥基础结构(P696-715)
1、公钥密码
(1)公钥密码的思想
公钥算法是基于数学函数而不是基于替换和置换。公钥密码学是非对称的,它依赖于一个公开密钥和一个在数学 上相关但不相同的私钥,且仅根据密码算法和公开密钥来确定私钥在计算上是不可行的。公开钥用于加密和签名认证,私钥则对应地用于解密和签名。
(2)公钥加密算法
被广泛接受的公钥密码系统主要是大整数因子分解IFP困难性的RSA系统和基于椭圆曲线离散对数ECDLP的计算困难性的ECC系统。
(3)数字签名算法
数字签名是利用一套规则和一个参数集对数据计算所得的结果,用此结果能够确认签名者的身份和数据的完整性,这里的数据计算通常是密码变换。
普通数字签名算法有:RSA、ElGamal、Fiat-Shamir、Guillou-Quisquarter、Schnorr、Ong-Schnorr-Shamir数字签名算法、DSA、椭圆曲线数字签名算法和有限自动机数字签名算法等。
特殊数字签名有:盲签名、代理签名、群签名、不可否认签名、公平盲签名、门限签名和具有消息恢复功能签名等,它与具体应用环境密切相关。
2、PKI组成
PKI(Public Key Infrastructure )
即“公钥基础设施”,是一种遵循既定标准的密钥管理平台,它能够为所有网络应用提供加密和数字签名等密码服务及所必需的密钥和证书管理体系,简单来说,PKI就是利用公钥理论和技术建立的提供安全服务的基础设施。PKI技术是信息安全 技术的核心,也是电子商务的关键和基础技术。
PKI的基础技术包括加密、数字签名、数据完整性 机制、数字信封、双重数字签名等。
PKI的基本组成:
完整的PKI系统必须具有权威认证机构(CA)、数字证书库、密钥备份及恢复系统、证书作废系统、应用接口(API)等基本构成部分,构建PKI也将围绕着这五大系统来着手构建。
3、证书认证机构
CA(Certificate Authority)是数字证书认证中心的简称,是指发放、管理、废除数字证书的机构。CA的作用是检查证书持有者身份的合法性,并签发证书(在证书上签字),以防证书被伪造或篡改,以及对证书和密钥进行管理。
数字证书实际上是存于计算机上的一个记录,是由CA签发的一个声明,证明证书主体(“证书申请者”拥有了证书后即成为“证书主体”)与证书中所包含的公钥的惟一对应关系。证书包括证书申请者的名称及相关信息、申请者的公钥、签发证书的CA的数字签名及证书的有效期等内容。数字证书的作用是使网上交易的双方互相验证身份,保证电子商务的安全进行。
解释: 受委托发放数字证书的第三方组织或公司。数字证书是用来建立数字签名和公-私(public-private)密钥对的。CA在这个过程中所起的作用就是保证获得这一独特证书的人就是被授权者本人。在数据安全和电子商务中,CA是一个非常重要的组成部分,因为它们确保信息交换各方的身份。
CA的层级结构:
CA建立自上而下的信任链,下级CA信任上级CA,下级CA由上级CA颁发证书并认证。
CA提供的服务:
颁发证书、废除证书、更新证书、验证证书、管理密钥。
CA大概分以下几种:
(1)行业性CA
金融CA体系、电信CA体系、邮政CA体系、外经贸部CA、中国海关CA、中国银行CA、中国工商银行CA、中国建设 银行CA、招商银行CA、国家计委电子政务CA、南海自然人CA(NPCA)
(2)区域性CA
协卡认证体系(上海CA、北京CA、天津CA)
网证通体系(广东CA、海南CA、湖北CA、重庆CA)
(3)独立的CA认证中心
山西CA、吉林CA、宁夏西部CA、陕西CA、福建CA、黑龙江邮政CA、黑龙江政府CA、山东CA、深圳CA 、吉林省政府CA、福建泉州市商业银行网上银行CA、天威诚信CA
4、PKI和数字证书的应用
(1)应用实例
虚拟专用网络、安全电子邮件、Web安全
(2)PKI的应用编程接口
目前比较常用的安全API接口有CryptoAPI和CDSA。
5、PKI标准
在PKI技术框架中,许多方面都经过严格的定义,如用户的注册流程、数字证书的格式、CRL的格式、证书的申请格式以及数字签名格式等。
国际电信联盟ITU X.509协议,是PKI技术体系中应用最为广泛、也是最为基础的一个国际标准。它的主要目的在于定义一个规范的数字证书的格式,以便为基于X.500协议的目录服务提供一种强认证手段。但该标准并非要定义一个完整的、可互操作的PKI认证体系。
PKCS是由美国RSA数据安全公司及其合作伙伴制定的一组公钥密码学标准,其中包括证书申请、证书更新、证书作废表发布、扩展证书内容以及数字签名、数字信封的格式等方面的一系列相关协议。到1999年底,PKCS已经公布了以下标准:
•PKCS#1:定义RSA公开密钥算法加密和签名机制,主要用于组织PKCS#7中所描述的数字签名和数字信封。
•PKCS#3:定义Diffie-Hellman密钥交换协议。
•PKCS#5:描述一种利用从口令派生出来的安全密钥加密字符串的方法。使用MD2或MD5 从口令中派生密钥,并采用DES-CBC模式加密。主要用于加密从一个计算机传送到另一个计算机的私人密钥,不能用于加密消息。
•PKCS#6:描述了公钥证书的标准语法,主要描述X.509证书的扩展格式。
•PKCS#7:定义一种通用的消息语法,包括数字签名和加密等用于增强的加密机制,PKCS#7与PEM兼容,所以不需其他密码操作,就可以将加密的消息转换成PEM消息。
•PKCS#8:描述私有密钥信息格式,该信息包括公开密钥算法的私有密钥以及可选的属性集等。
•PKCS#9:定义一些用于PKCS#6证书扩展、PKCS#7数字签名和PKCS#8私钥加密信息的属性类型。
•PKCS#10:描述证书请求语法。
•PKCS#11:称为Cyptoki,定义了一套独立于技术的程序设计接口,用于智能卡和PCMCIA卡之类的加密设备。
•PKCS#12:描述个人信息交换语法标准。描述了将用户公钥、私钥、证书和其他相关信息打包的语法。
•PKCS#13:椭圆曲线密码体制标准。
•PKCS#14:伪随机数生成标准。
•PKCS#15:密码令牌信息格式标准。
另外,PKCS#2和PKCS#4已经合并到PKCS#1之中。PKIX是由IETF组织中的PKI工作小组制定的系列国际标准。此类标准主要定义基于X.509和PKCS的PKI模型框架。PKIX中定义的四个主要模型为用户、认证中心CA、注册中心RA和证书存取库。