数字签名技术
所谓"数字签名"就是通过某种密码运算生成一系列符号及代码组成电子密码进行签名,来代替书写签名或印章,对于这种电子式的签名还可进行技术验证,其验证的准确度是一般手工签名和图章的验证无法比拟的。“数字签名”是目前电子商务、电子政务中应用最普遍、技术最成熟的、可操作性最强的一种电子签名方法。它采用了规范化的程序和科学化的方法,用于鉴定签名人的身份以及对一项电子数据内容的认可。它还能验证出文件的原文在传输过程中有无变动,确保传输电子文件的完整性、真实性和不可抵赖性。
(一) 数字签名的原理
在公钥密码学中,密钥是由公开密钥和私有密钥组成的密钥对。数字签名就是用私有密钥进行加密,接收方用公开密钥进行解密。由于公开密钥不能推算出私有密钥,所以公开密钥不会损坏私有密钥的安全,公开密钥无需保密可以公开传播,而私有密钥必须保密。因此,当某人用其私有密钥加密信息,能够用他的公开密钥正确解密就可以肯定该消息是经过某人签字的,因为其他人的公开密钥不可能正确解密该加密信息,其他人也不可能拥有该人的私有密钥而制造出该加密过的信息。
数字签名并非是书面签名的数字图像化,而是通过密码技术对电子文档进行的电子形式签名。实际上人们可以否认曾对一个文件签过名,且笔迹鉴定的准确率并非100%,但却难以否认一个数字签名。因为数字签名的生成需要使用私有密钥,其对应的公开密钥则用以验证签名,再加上目前已有一些方案,如数字证书,就是把一个实体(法律主体)的身份同一个私有密钥和公开密钥对绑定在一起,使得这个主体很难否认数字签名。
就其实质而言,数字签名是接收方能够向第三方证明接收到的消息及发送源的真实性而采取的一种安全措施,其使用可以保证发送方不能否认和伪造信息。数字签名的主要方式是:报文的发送方从报文文本中生成一个散列值(或报文摘要)。发送方用自己的私有密钥对这个散列值进行加密来形成发送方的数字签名。然后,这个数字签名将作为报文的附件和报文一起发送给报文的接收方。报文的接收方首先从接收到的原始报文中计算出散列值(或报文摘要),接着再用发送方的公开密钥来对报文附加的数字签名进行解密。如果两个散列值相同,那么接收方就能确认该数字签名是发送方的。
(二)数字签名的作用
数字签名作为维护数据信息安全的重要方法之一,可以解决伪造、抵赖、冒充和篡改等问题,其主要作用体现在以下几个方面:
(1)防重放攻击。重放攻击(Replay Attacks),是计算机世界黑客常用的攻击方式,是指攻击者发送一个目的主机已接收过的包,来达到欺骗系统的目的,主要用于身份认证过程,破坏认证的正确性。这种攻击会不断恶意或欺诈性地重复一个有效的数据传输。攻击者利用网络监听或者其他方式盗取认证凭据,之后再把它重新发给认证服务器。在数字签名中,如果采用了对签名报文加盖时戳等或添加流水号等技术,就可以有效防止重放攻击。
(2)防伪造。其他人不能伪造对消息的签名,因为私有密钥只有签名者自己知道,所以其他人不可以构造出正确的签名结果数据。
(3)防篡改。数字签名与原始文件或摘要一起发送给接收者,一旦信息被篡改,接收者可通过计算摘要和验证签名来判断该文件无效,从而保证了文件的完整性。
(4)防抵赖。数字签名即可以作为身份认证的依据,也可以作为签名者签名操作的证据。要防止接收者抵赖,可以在数字签名系统中要求接收者返回一个自己签名的表示收到的报文,给发送者或受信任第三方。如果接收者不返回任何消息,此次通信可终止或重新开始,签名方也没有任何损失,由此双方均不可抵赖。
(5)保密性。手写签字的文件一旦丢失,文件信息就极可能泄露,但数字签名可以加密要签名的消息,在网络传输中,可以将报文用接收方的公钥加密,以保证信息机密性。
(6)身份认证。在数字签名中,客户的公钥是其身份的标志,当使用私钥签名时,如果接收方或验证方用其公钥进行验证并获通过,那么可以肯定,签名人就是拥有私钥的那个人,因为私钥只有签名人知道。
(三)数字证书
在网上电子交易中,商户需要确认持卡人是信用卡或借记卡的合法持有者,同时持卡人也必须能够鉴别商户是否是合法商户,是否被授权接受某种品牌的信用卡或借记卡支付。为处理这些关键问题,必须有一个大家都信赖的机构来发放数字安全证书。数字证书就是参与网上交易活动的各方(如持卡人、商家、支付网关)身份的代表,每次交易时,都要通过数字证书对各方的身份进行验证。数字证书是由权威公正的第三方机构即证书授权(Certificate Authority,简称CA)中心签发的,它在证书申请被认证中心批准后,通过登记服务机构将证书发放给申请者。
数字证书是一个经证书授权中心数字签名的包含公开密钥拥有者信息以及公开密钥的文件。最简单的证书包含一个公开密钥、名称以及证书授权中心的数字签名。一般情况下证书中还包括密钥的有效时间,发证机关(证书授权中心)的名称,该证书的序列号等信息。