[摘要] 网络已经渗透到社会的各个领域,其安全性越显重要。本文主要介绍了保障电子商务中安全的PKI(Pubic Key Infrastructure) 技术,在文章的开始首先提出了PKI的组成,随后介绍了PKI原理,并在文章的最后提出了PKI在应用中存在的问题。
[关键词] PKI CA Hash 密钥 数字指纹
一、引言
随着Internet的发展,网络已经渗透到了人们生活的各个方面,并改变了人们的生活方式。电子商务作为一种新的营销模式因具有传统商务所不具有的特点被越来越多人们所重视,并得到了迅猛的发展。由于Internet开放性的特点,其安全性一直受到人们的关注,致使很多人不愿在Internet上进行商务活动。为解决电子商务的安全问题,PKI(Public Key Infrastructure)技术作为一种有效安全解决方案被引入到了电子商务中来。本文主要从PKI的组成、原理和PKI的应用等方面进行简单的介绍。
二、PKI组成
PKI主要以非对称加密算法为基础,采用证书管理公钥,通过第三方的可信任机构──认证中心CA(Certificate Authority),把用户的公钥和用户的其他标识信息(如身份证号)捆绑在一起,在Internet 上对用户进行身份验证。目前,通用的办法是采用基于PKI结构结合数字证书,通过把要传输的数字信息进行加密,保证信息传输的保密性、完整性,签名保证身份的真实性和不可否认性。完整的PKI系统包括CA、数字证书库、密钥备份及恢复系统、证书作废系统、应用程序接口(API)五部分组成。
1.认证机构(CA),即数字证书的申请和颁发机构, 是PKI的核心执行机构, 把用户的公钥和用户的其他信息捆绑在一起,向用户签发数字证书,具有权威性, 为用户所信任。
2.数字证书库,用于存储已颁发的数字证书及公钥,并向所有用户开放(以WEB服务的形式出现)。用户可通过标准的LDAP 协议查询自己或其他人的证书和下载黑名单信息。
3.密钥备份及恢复系统,防制解密密钥丢失。
4.证书作废系统,证书由于某种原因需要作废,终止使用,可向证书作废系统提出调销申请。
5.应用接口系统,为所有应用提供统一的安全、可靠的接口,确保所建立的网络环境安全可信。
三、PKI工作原理
使用PKI进行数据传输时,首先要对数据加密以保证安全性。目前,加密算法分为对称加密和非对称加密算法两大类。
对称加密采用了对称密码编码技术,它的特点是文件加密和解密使用相同的密钥,即加密密钥也可以用作解密密钥。对称加密算法使用起来简单快捷,可以很容易用硬件实现,但密钥管理难度比较大,必需用一种安全的途径来交换密钥,而这难于实现;而且无法完成数据完整性和不可否认性验证,无法适用于数据签名。主要有DES和IDEA等算法。
1976年,美国学者W.Diffe和N.E.Hellman在其《密码学的新方向》一文中提出了一种新的密钥交换协议,允许在不安全的媒体上的通讯双方交换信息,安全地达成一致的密钥,这就是“公开密钥系统”,实现了加密密钥和解秘密钥的分离。相对于“对称加密算法”这种方法也叫做“非对称加密算法”。 与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(public key)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。非对称加密算法实现机密信息交换的基本过程如下:A生成一对密钥并将其中的一把作为公用密钥向其他方公开;得到该公用密钥的B使用该密钥对机密信息进行加密后再发送给A;A再用自己保存的另一把专用密钥对加密后的信息进行解密。A只能用其专用密钥解密由其公用密钥加密后的任何信息。通过上述过程可以看出非对称加密对数据传输具有保密性、完整性和不可否认性等特点,但加密和解密速度慢,难以用硬件实现,它只适用于对少量数据进行加密。非对称加密算法主要有RSA和Diffe-Hellman等。
在加密过程中对称加密和非对称加密常常结合一起使用,对大量数据利用对称加密,其对称加密密钥通过非对称加密后再传输到目的用户;但这种传输方式并不能保证数据的完整性;为此人们又引入了数字指纹技术。在传输时先通过Hash函数取得数据摘要信息,然后通过非对称加密传输。一个Hash函数,以任意长的信息为输入,产生固定长的输出,这个输出称为信息摘要或数字指纹。对于固定的输入,会产生固定的输出。但给定一个输出,去寻找一个特定的输入以产生相同的输出是计算不可行的。数据任何一位发生变化,则Hash值将改变。正是由于这种特性,常被用于信息或文件的完整性检验。常用的算法有MD5和沙SHA。
利用PKI实现数字签名过程如下(假设A向B传输数据):
1.A对要传输的信息(I)进行Hash运算,得到信息摘要(MD)。
2.A利用A的私钥对MD进行加密得到A的数字签名(DS),并将附在I的后面。
3.A随机产生一个加密密钥(K),对发送的信息(I和DS)加密,形成Data。
4.A用B的公钥对K加密,并将加密后的密钥和Data发送给B。
5.B收到A传送过来的密文和加密过的密钥后,用B的私钥对加密过的密钥解密。
6.B用密钥对收到的密文解密,得到了明文。