数字签名
概念
简单描述,数字签名计数即使用密码算法,发送方对待发送的数据进行加密处理(使用自身私钥),生成一段数据的摘要信息(数字签名),附上原文一起发送,接收方对其进行验证(使用对应的发送方公钥),判断原文真伪。签名的意思是签名只能由一个人(个体)创建,但是可以被任何人校验。
该技术在数据单元上附加数据,或对数据单元进行秘密变换。这种数据和变换允许数据单元的接收者用以确认数据单元来源和数据单元的完整性,从而达到保护数据,防止被人进行伪造,以及确定发信人的身份的目的。
功能
数字签名计数为了解决数据的否认、伪造、篡改及冒充等问题,具备如下功能:
1)发送者事后不能否认自己发送过的签名
2)接收者能核实发送者发送的签名
3)接收者不能伪造发送者的签名
4)接收这不能对发送者的原文进行篡改(数字摘要)
5)数据交换中某一用户不能冒充另一用户作为发送者或接收者
数字签名实现过程
对一个电子文件进行签名并在网络上传输,其主要技术实现分为下面三个过程:首先在网上进行身份认证,然后是发送方进行签名,最后是接收方对签名进行验证。
1.认证(后面证书相关)
PKI(公钥基础设施)提供的服务首先是认证,即身份识别与鉴别,确认实体即为自己所声明的实体。认证的前提是甲乙双方都具有第三方CA所签发的证书,认证分单向认证和双向认证。
1)单向认证:甲乙双方在网上通信时,甲只需要认证乙的身份即可。这时甲需要获取乙的证书,获取的方式有两种,一种是在通信时乙直接将证书传送给甲,另一种是甲向CA的目录服务器查询索取。甲获得乙的证书后,首先用CA的根证书公钥验证该证书的签名,验证通过说明该证书是第三方CA签发的有效证书。然后检查证书的有效期及检查该证书是否已被作废(LRC检查)而进入黑名单。
2)双向认证:甲乙双方在网上通信时,甲不但要认证乙的身份,乙也要认证甲的身份。其认证过程与单向认证过程相同。
2.签名(发送方)与验证(接收方)
数字签名操作具体过程如下:首先是生成被签名的电子文件(《电子签名法》中称数据电文),然后对电子文件用哈希算法做数字摘要,再对数字摘要用签名私钥做非对称加密,即做数字签名;之后是将以上的签名和电子文件原文以及签名证书的公钥加在一起进行封装,形成签名结果发送给收方,待收方验证。
验证过程是:接收方首先用发方公钥解密数字签名,导出数字摘要,并对电子文件原文做同样哈希算法得出一个新的数字摘要,将两个摘要的哈希值进行结果比较,相同签名得到验证,否则无效。
数字签名的作用
如果接收方对发方数字签名验证成功,就可以说明以下三个实质性的问题:
1.该电子文件确实是由签名者的发方所发出的,电子文件来源于该发送者。因为,签署时电子签名数据由电子签名人所控制。
2.被签名的电子文件确实是经发方签名后发送的,说明发方用了自己的私钥做的签名,并得到验证,达到不可否认的目的。
3.接收方收到的电子文件在传输中没有被篡改,保持了数据的完整性,因为,签署后对电子签名的任何改动都能够被发现。
以上三点就是对《电子签名法》中所规定的“安全的电子签名具有与手写签名或者盖章同等的效力”的具体体现。
证书
目的
从上面数字签名技术的实现过程,会发现存在非对称加密的私钥及公钥,那么如何保证发送方的公钥被正确分发,假如信息传输过程中的中间方伪造发送方公钥与接收方通信,这样导致发送方和接收方其实永远在跟中间人通信。为了避免这种事情,需要接收方收到的公钥一定是真正发送方的公钥,而不是别人伪造的。
就需要证书来解决。
概念
引入一个独立的第三方机构:数字证书权威认证中心,中心会给发送方创建一个数字证书,这个数字证书包括了发送方的一些信息以及其公钥。此时,想要跟发送方进行通信的人,就可以检查发送方的数字证书,然后向权威的数字证书的认证中心,去认证(这个认证过程也是公钥私钥机制)这是不是真实的发送方的数字证书,如果是,即可进行安全通信。这应该就是有时候我们浏览不安全的网站时候,被浏览器提醒数字证书失效或怎样,网站不安全。
利用数字证书安全通信过程
发送方想要和接收方进行通信,首先就要告知接收方自己的公钥,发送方先向接收方发送自己的数字证书,接收方收到数字证书后,会向权威的数字证书认证中心进行认证,确认是否是发送方的数字证书。
然后,接收方可以利用发送方的公钥对发送方的数字签名进行解码,验证是否是发送方的数字签名,如果能正确解码,就说明数字签名是由发送方的私钥进行加密的。然后就进行完整性的验证,将信息原文进行hash,得到信息摘要,并与数字签名解码后得到的信息摘要进行对比,如果一致,就说明信息是完整且未被篡改的。
数字签名技术与非对称加密技术
数字签名:发送者使用自身私钥加密,接收者使用发送者公钥解密验证;
非对称加密:发送者使用接收者公钥对数据进行加密,接收者使用自身私钥对数据解密;
都使用公钥,私钥,可以说数字签名是非对称加密技术的一种应用吧。