论文部分内容阅读
数字签名双向认证过程
《中华人民共和国电子签名法》(以下简称《电子签名法》)在实行的两年多时间里,对我国的网上银行、电子商务和电子政务的发展产生了深远的影响。
目前无论在国外还是国内,普遍使用的还是电子签名中的数字签名。数字签名是成熟的数字技术,它是基于PKI(Public Key Infrastructure)公私钥对的签名和验签,从而达到数据传输和电子交易的不可抵赖性,完成PKI提供的不可否认性服务。
数字签名的技术保障
普遍使用的电子签名技术是基于PKI的数字签名技术,数字签名的技术保障主要有以下三个方面。
1.认证机构CA
数字签名是基于PKI的,电子认证服务提供者即认证机构CA是PKI的核心执行机构。
2.数字证书
PKI签名的核心元素是由CA签发的数字证书,它提供了认证、数据完整性和数据保密性服务,主要是提供了不可否认性。它的作法就是利用证书公钥和与之对应的私钥进行加/解密,并产生对数字电文的签名及验证。数字签名是利用公钥密码技术和其他密码算法生成一系列符号及代码组成电子密码进行签名,来代替书写签名和印章。这种电子式的签名还可进行技术验证,其验证的准确度是在物理世界中,对手工签名和图章的验证所无法比拟的。这种签名方法可在很大范围的可信PKI域中进行认证,或在多个可信的PKI域中进行交叉认证,它特别适用于互联网和广域网上的安全认证和传输。
3.公钥密码技术
常用的、成熟的公钥密码技术是RSA,后来又产生椭圆算法ECC,它与传统的对称密钥算法有本质的区别。对称密钥算法常用的是DES算法,它具有一个密钥,加解密时用的是同一个密钥。而公钥算法利用的是非对称的密钥,即利用两个足够大的质数与被加密原文相乘生产的积来加/解密。这两个质数无论是用哪一个与被加密的原文相乘(模乘),即对原文件加密,均可由另一个质数再相乘来进行解密。但是,若想用这个乘积来求出另一个质数,就要进行对大数分解质因子,分解一个大数的质因子是十分困难的,若选用的质数足够大,这种求解几乎是不可能的。因此,将这两个质数组成密钥对,其中一个采用私密的安全介质保密存储起来,不对任何外人泄露,简称为“私钥”;另一个密钥可以公开发表,用数字证书的方式发布在称之为“网上黄页”的目录服务器上,用LDAP协议进行查询,也可在网上请对方发送信息时,主动将该公钥证书传送给对方,这个密钥称为“公钥”。
公私密钥对的用法是,当发方向收方通信时,发方用收方的公钥对原文进行加密,收方收到发方的密文后,用自己的私钥进行解密,其他人是无法解密的,因为他人不拥有自己的私钥,这就是用公钥加密,私钥解密用于通信;而用私钥加密文件公钥解密则是用于签名,即发方向收方签发文件时,发方用自己的私钥加密文件传送给收方,收方用发方的公钥进行解密。
但是,在实际应用操作中发出的文件签名并非是对原文本身进行加密,而是要对原文进行所谓的“哈希”(Hash)运算,即对原文做数字摘要。该密码算法也称单向散列运算,其运算结果称为哈希值,或称数字摘要,也有人将其称为“数字指纹”。哈希值有固定的长度,运算是不可逆的,不同的明文其哈希值是不同的,而同样的明文其哈希值是相同并且是唯一的,原文的任何改动,其哈希值就要发生变化。数字签名是用私钥对数字摘要进行加密,用公钥进行解密和验证。
数字签名的原理及过程
网上通信的双方在互相认证身份之后,即可发送签名的数据电文。完整的数字签名过程一般包括认证、签名与验证等方面。
1.认证
PKI提供的服务首先是认证,即身份识别与鉴别,也就是确认实体即为自己所声明的实体。认证的前提是甲乙双方都具有第三方CA所签发的证书,认证分为单向认证和双向认证。
单向认证是甲乙双方在网上通信时,甲只需要认证乙的身份即可。这时甲需要获取乙的证书,获取的方式有两种,一种是在通信时乙直接将证书传送给甲,另一种是甲向CA的目录服务器查询索取。甲获得乙的证书后,首先用CA的根证书公钥验证该证书的签名,验证通过,说明该证书是第三方CA签发的有效证书。然后检查证书的有效期及检查该证书是否已被作废(LRC检查)而进入黑名单(CRL)。
双向认证是甲乙双方在网上通信时,甲不但要认证乙的身份,乙也要认证甲的身份。其认证过程的每一方向都与上述单向认证过程相同,即乙也用同样的过程认证甲的证书有效性。
甲乙双方在网上查询对方证书的有效性及黑名单时,是采用的LDAP协议(Light Directory Access Protocol),它是一种轻型目录访问协议。
如图所示,第三方CA事先已给客户浏览器和网银服务器颁发了数字证书,其认证过程如下:
①客户通过浏览器利用SSL协议访问网银服务器。
②网银服务器与浏览器“握手”之后首先要验证客户端证书,验证的过程是:网银服务器使用已置于其中的第三方CA根证书的公钥,来解密该客户证书的CA私钥签名,如果能解密,就证明该客户是合法、有效的客户。然后,网银服务器将该客户的证书,在线传送至第三方CA发布证书的目录服务器上,查询该证书的有效期和是否进入黑名单。如果黑名单中无名,也在有效期范围之内,则网银服务器对客户端验证通过。
③在可靠性要求高的交易中,则要求双向认证,即在网银服务器认证了客户端之后,客户端还要验证网银服务器端。也就是说,客户要验证网银服务器是否是自己开户的真实的网上银行网站,而不是黑客伪冒的假网站。
这种认证方式是目前国内外最安全的网上银行认证方法,目前采用这种方式进行认证的网上银行的网站,没有发现被假冒的案例。即使使用PKI证书机制的网站被假冒,只要网站和客户的证书及私钥妥善保管,黑客的“钓鱼”技俩也是没有用的,换句话说,第三方证书机制可以彻底杜绝网上钓鱼事件的发生。
2.数字签名过程
数字签名操作具体过程如下:首先是生成被签名的电子文件(《电子签名法》中称数据电文),然后对电子文件用哈希算法做数字摘要,再对数字摘要用签名私钥做非对称加密,即做数字签名;之后是将以上的签名和电子文件原文以及签名证书的公钥加在一起进行封装,形成签名结果发送给收方,待收方验证。
3.数字签名的验证
收方收到数字签名的结果包括数字签名、电子原文和发方公钥,即待验证的数据。收方进行签名验证,验证过程是:接收方首先用发方公钥解密数字签名,导出数字摘要,并对电子文件原文做同样的哈希算法,得到一个新的数字摘要,将两个摘要的哈希值进行结果比较,结果如果相同,签名得到验证,否则签名无效。这就做到了《电子签名法》中所要求的对签名不能改动,对签署的内容和形式也不能改动的要求。
数字签名的作用
数字签名的作用主要是提供在网络上传输、处理、交易实体的身份,保障数据的完整性、保密性和不可抵赖性。如果收方对发方数字签名验证成功,就可以说明以下三个方面的实质性问题。
1.电子文件确实是由作为签名者的发方所发出的,电子文件来源于该发送者。
2.符合数字签名在ISO7498-2标准中所定义的作用,即“附加在数据单元上的一些数据,或是对数据单元所做的密码变换,这种数据和变换允许数据单元的接收者用以确认数据单元来源”。
3.符合《电子签名法》第十三条的要求,做到了“签署时电子签名制作数据(即私钥)仅由电子签名人控制”。
这种签名允许数据单元的接收者用以确认数据单元来源和数据单元的完整性,并保护数据,防止被人(例如接收者)进行伪造,达到不可否认的目的。它满足了《电子签名法》中“签署后对电子签名的任何改动能够被发现”及“签署后对数据电文的内容和形式的任何改动能够被发现”的可靠电子签名,保障了接收方收到的电子文件在传输中没有被篡改,保持了数据的完整性。