最近工作内容和电子签名、电子合同相关,并且将所了解的内容总结在部门内部进行了分享。在这里,写下这篇blog,做总结梳理。
基本概念
对称加密算法: 一个密钥,用这个密钥加密,用这个密钥解密
非对称加密算法: 一对密钥。
私钥:保密性
公钥:公开性
私钥可以推导出公钥,但公钥无法推导出私钥
私钥加密公钥解密,公钥加密私钥解密
哈希(散列)函数: MD5、SHA1、SHA2
生成摘要(散列值),就是把任意长度的输入通过算法变换成固定长度的输出
不可逆
唯一性
数字签名
什么是数字签名?数字签名是怎么来的?请看下面这个图:
得到的数字签名其实就是bit数据,当然你可以转成hex字符串的表示方式,也可以存在一个文件里
经典的利用数字签名进行加密传输数据的例子:
在这个加密传输过程中,为什么要使用数字签名呢?数字签名起到了什么作用?
数字签名证明了报文(传递的数据)未被篡改过
如果有人在传输过程中,劫持了数据,然后修改了传输数据,再传递下去,那么,接受者,就能通过数字签名,通过校验数字签名中的摘要和收到数据的摘要来判断是否数据被篡改过
如果要攻击或破解这个加密过程
如果要攻击或破解这个加密过程,可以怎么做?
- 能得到Bob的私钥,重新利用这个私钥对修改过的数据生成数字签名,再传输。(破解发送方)
- 得到私钥是一个几乎不可能的事情;偷换Susan的公钥,让Susan拿着新的公钥,这样就能用新的公钥生成数字签名,Susan在用她以为的公钥进行校验数字签名时,可以校验通过,她以为这是一次安全的传输。(破解接收方)
- 破解了私钥和公钥,那么这个加密传输肯定就不会安全了
为了防止上面情况的出现,出现了CA权威机构:
数字证书认证机构(英语:Certificate Authority,缩写为CA),也称为电子商务认证中心、电子商务认证授权机构,是负责发放和管理数字证书的权威机构,并作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。
数字证书
在借助CA权威机构后,加密传输过程就变成了:
CA中心为每个使用公开密钥的用户发放一个数字证书,数字证书的作用是证明证书中列出的用户合法拥有证书中列出的公开密钥。CA机构的数字签名使得攻击者不能伪造和篡改证书。它负责产生、分配并管理所有参与网上交易的个体所需的数字证书,因此是安全电子交易的核心环节
CA机构利用数字证书存储公钥信息,保证了公钥的安全性,只有数字证书校验成功,才能拿到公钥,才能解密数字签名,才能拿到数据的摘要数据,进行对比来校验数据摘要是否一致,得出数据是否被篡改过
除非你将CA机构也破解了,得到CA机构的私钥,你才有可能破解加密传输。
数字签名、数字证书的应用
- 电子邮件
- 访问安全站点(HTTPS)
- 网上签约
- 网上传输文件