PKI(Public Key Infrastructure)公钥基础设施

一个典型的PKI系统包括PKI策略、软硬件系统、证书机构CA、注册机构RA、证书发布系统和PKI应用等
PKI的应用非常广泛,其为网上金融、网上银行、网上证券、电子商务、电子政务等网络中的数据交换提供了完备的安全服务功能。PKI作为安全基础设施,能够提供身份认证、数据完整性、数据保密性、数据公正性、不可抵赖性和时间戳六种安全服务。

1、身份认证
由于网络具有开放性和匿名性等特点,非法用户通过一些技术手段假冒他人身份进行网上欺诈的门槛越来越低,从而对合法用户和系统造成极大的危害。身份认证的实质就是证实被认证对象是否真实和是否有效的过程,被认为是当今网上交易的基础。在PKI体系中,认证中心(Certification Authority,CA)为系统内每个合法用户办一个网上身份认证,即身份证。

2、数据完整性
数据的完整性就是防止非法篡改信息,如修改、复制、插入、删除等。在交易过程中,要确保交易双方接收到的数据与原数据完全一致,否则交易将存在安全问题。如果依靠观察的方式来判断数据是否发生过改变,在大多数情况下是不现实的。在网络安全中,一般使用散列函数的方法(Hash函数,也称密码杂凑函数)来保证通信时数据的完整性。通过Hash算法我们将任意长度的数据通过变换为长度固定的数字摘要(消息认证码,MAC),并且原始数据中任何一位的改变都将会在相同的计算条件下产生截然不同的数字摘要。
这一特性使得人们很容易判断原始数据是否发生非法篡改,从而很好地保证了数据的完整性和准确性。PKI系统主要采用的散列算法有SHA一1和MD一5。

3、数据保密性
数据的保密性就是对需要保护的数据进行加密,从而保证信息在传输和存储过程中不被未授权人获取。在PKl系统中,所有的保密性都是通过密码技术实现的。密钥对分为两种,一种称作加密密钥对,用作加解密;另一种称作签名密钥对,用作签名。一般情况下,用来加解密的密钥对并不对实际的大量数据进行加解密,只是用于协商会话密钥,而真正用于大量数据加解密的是会话密钥。
在实际的数据通信中,首先发送方产生一个用于实际数据加密的对称算法密钥,此密钥被称为会话密钥,用此密钥对所需处理的数据进行加密。然后,发送方使用接收方加密密钥对应的公钥对会话密钥进行加密,连同经过加密处理的数据一起传送给接收方。接收方收到这些信息后,首先用自己加密密钥对中的私钥解密会话密钥,然后用会话密钥对实际数据进行解密。

4、数据公正性
PKI中支持的公正性是指数据认证。也就是说,公证人要证明的是数据的正确性,这种公汪取决于数据验证的方式,与公正服务和一般社会公证人提供的服务是有所不同的。在PKI中,被验证的数据是基于对原数据Hash后数字摘要的数字签名、公钥在数学上的正确性和私钥的合法性。

5、不可抵赖性
不可抵赖性保证参与双方不能否认自己曾经做过的事情。在PKI系统中,不可抵赖性来源于数字签名。由于用户进行数字签名的时候.签名私钥只能被签名者自己掌握,系统中的其他实体不能做出这样的签名,因此,在私钥安全的假设下签名者就不能否认自己做出的签名。保护签名私钥的安全性是不可抵赖问题的基础。

6、时间戳服务
时间戳也叫安全时间戳,是一个可信的时间权威,使用一段可以认证的数据来表示。
PKl中权威时间源提供的时间并不需要正确,仅仅需要用户作为一个参照“时间”,以便完成基于PKI的事务处理,如时间A发生在时间B的前面等。一般的PKI系统中都设置一个时钟统一PKI时间。当然也可以使用时间官方事件源所提供的时间,其实现方法是从网中这个时钟位置获得安全时间,要求实体在需要的时候向这些权威请求在数据上盖上时间戳。一份文档上的时间戳涉及对时间和文档内容的哈希值的签名,权威的签名提供了数据的真实性和完整性。一个PKI系统中是否需要实现时间戳服务,完全依照应用的需求来决定

7、数字签名
由于单一的、独一无二的私钥创建了签名,所以在被签名数据与私钥对应的实体之间可以建立一种联系,这种联系通过使用实体公钥验证签名来实现。如果签名验证正确,并且从诸如可信实体签名的公钥证书中知道了用于验证签名的公钥对应的实体,那么就可以用数字签名来证明被数字签名数据确实来自证书中标识的实体。
因此,PK的数字签名服务分为两部分:签名生成服务和签名验证服务。签名生成服务要求能够访问签名者的私钥,由于该私钥代表了签名者,所以是敏感信息,必须加以保护。如果被盗,别人就可以冒充签名者用该密钥签名。因此,签名服务通常是安全应用程序中能够安全访问签名私钥的那一部分。相反,签名验证服务要开放一些,公钥一旦被可信签名者签名,通常就被认为是公共信息。验证服务接收签名数据、签名、公钥或公钥证书,然后检查签名对所提供的数据是否有效。它返回验证成功与否的标识。

加密技术
1、对称加密
加密和解密是同一个密钥,不安全
维护麻烦,A、B、C、D、E、F、G相互之间加密通讯需要各自存放笛卡尔积的密钥对
加密效率高
2、非对称加密
公钥加密 私钥解密
A与B、C、D、E、F、G之间相互发送加密信息,只需要将A的公钥公布给B、C、D、E、F、G用户,然后这些用户用A的公钥加密发送信息给A,A再用自己的私钥解密
加密效率低

3、对称加密与非对称加密组合
1)假设B要给A发送加密信息,B先用随机数产生一个对称加密密钥,假设为123,然后用这个对称加密密钥123加密信息,接着B用A的公钥把对称加密密钥123加密,最后B把用123加密的信息与A公钥加密过的123密钥一起发送给A
2)A收到用A公钥加密的123密钥和123密钥加密的信息后,先用A的私钥密钥123密钥,然后再用123密钥解密信息

数字签名
1、保证数据没有被更改
2、不可抵赖性
1)A企业给B企业下订单,先用散列函数将合同生成一个128bit的数字摘要(或者称为数字指纹,这个数字摘要与合同内容相对应的,如果合同内容被更改,则数字摘要也会相应更改。通过数字摘要无法反推回合同的内容),然后A企业的私钥加密这个数字摘要,确认这个数字摘要来自A企业。最后A企业把合同(明文)、加密后的数字摘要、A的公钥一起传送给B
2)B收到A传过来的合同(明文),加密后的数字摘要、A的公钥,B先用相同的散列函数将合同也生成一个128bit的数字摘要,然后再A的公钥解密A传过来的数字摘要,两个摘要一对比便可知道合同内容是否被篡改过

CA证书颁发机构
1、公钥、私钥是以数字证书的形式存在的
2、CA证书颁发机构是全球公认且中立的证书颁发机构,目的是为了防止不法分子伪造证书
3、CA证书颁发机构本身也有公钥和私钥,一般公钥随着操作系统一起安装到用户电脑中
1)A企业向CA证书颁发机构申请证书,通过申请后,CA证书颁发机构给A企业颁发一个用CA私钥数字签名的数字证书(包含一对A企业的公钥、私钥密钥对)
2)B企业也信任CA证书颁发机构(B企业也有CA证书颁发机构的公钥)
3)A企业先将合同用散列函数生成一个128bit的数字摘要,再用A的公钥加密这个数字摘要,同时A的公钥带有CA的数字签名,最后A企业将合同(明文)、加密的数字摘要、A的公钥(带有CA的数字签名)一起发送给B企业
4)B企业收到来自A企业的合同(明文)、加密的数字摘要、A企业的公钥(带有CA的数字签名),先用CA的公钥验证A企业的公钥(确认A企业的数字证书来源于CA证书颁发机构),证实A企业的合法性,再用A的公钥解密数字摘要,接着B用同样的散列函数将合同(明文)也生成一个数字摘要,两个摘要一对比便可知道合同内容是否被篡改过