20201022 加密技术

这里讲解一下数字信封、数字摘要、数字证书、数字签名都是什么,有什么特点和用途。

从加密方式讲起。有对称加密和非对称加密:对称加密就是对一段原文使用同一串**进行加密和解密;非对称加密就是有公钥和私钥,发送方通过请求公钥获得公钥对原文进行加密,接收方在服务端通过私钥进行解密。对称加密具有加密后密文大小与原文大小相近的优点,但是由于加解密使用同一串**,一旦黑客通过抓包获得**即可对原文进行解密和篡改,因此安全性不高。非对称加密由于用于解密的私钥在服务端,不会通过网络传输更安全,但是加密后的密文大小比原文大小大很多。

数字信封结合了对称加密和非对称加密的优点,用两层加密提高了安全性和加解密效率,用于原文只有持有私钥的人才能查看的情况。发送方使用仅发送方拥有的**对原文进行对称加密后,再使用公钥对该**进行非对称加密,将原文密文和发送方**密文都发送给接收方,接收方通过私钥解密出发送方**,再用这个**解密出原文。

数字摘要是将一段较长的原文通过Hash函数,转成固定长度的密文,这个密文称为数字指纹。只要原文有一点改动,数字指纹就会不同。

数字证书是单位或个人通过身份认证机构(CA)注册得到的文件,申请人会拿到一段私钥,公钥则会放在CA公开。

数字签名是结合数字摘要、数字证书,用于检查文件的签名者是否是本人。具有不可伪造和不可抵赖两个特性。发送方将原文通过数字摘要生成的数字指纹使用私钥进行加密(这是签名的过程),将原文、加密后的数字指纹以及数字证书传输给接收方,接收方用数字证书中的公钥解密数字指纹密文获得一份数字指纹,再将原文进行数字摘要生成另一个数字指纹,两个数字指纹进行比对,若一致则原文未被篡改,即验证了签名是本人签的,没有被伪造,这是验证签名的过程。其中,发送方的私钥是自己的,仅本人拥有(需要本人注意保管,避免丢失),接收方的公钥是通过身份认证机构注册的数字证书获取,所有人都可以获取到。

使用https的网站通常能看到网站的证书信息,这个就是数字证书。为什么说https是安全的呢?https = http + ssl,ssl是建立在TCP/IP之上的一层安全套接字层,它使得https的服务在建立连接时,首先会做三次握手,然后进行身份确认,身份确认过后再进行的传输就都是对称加密的了。这个身份确认的过程就是利用非对称加密交换对称加***:发送方是浏览器,浏览器使用网站数字证书中的公钥加密浏览器生成的一个对称加***,将这个密文发送给https服务端,由于只有该https服务端拥有私钥,即只有该服务端能够解密密文获得对称加***,所以即使黑客拦截密文也无法解密出对称加***。服务端获得对称加***后,此后所有的请求响应报文都会被对称加密,因此https传输是加密的、安全的。

20201022 加密技术