前面我们讲述了http基本认证和摘要认证,分别讲述了它们在web服务器中的工作原理和使用的缺陷。今天我们讲述https协议,这个协议本质还是http协议,只是在http和tcp协议之间添加了一个加密层(ssl或者者是tls)。并且也是现在web应用中最通用的数字加密技术。
1、url中,默认方案是http,如www.baidu.com,默认使用http协议,但是https开头的url,如https://www.baidu.com。那么和web服务器之间的连接就是https连接。这表明我们在网络上传输的报文都是使用ssl或者者是tls加密过的密文。
因为https协议的特殊性,我们先讲述一下当前加密的主要系统和它们的体现形式。
1)对称密钥加密系统:发送端和接收端使用同样的密钥进行解密。如des和rc4等。
这时就存在一个问题,假如一个网络中的通信实体可以互联互通的话,每个实体就必需保存另外的N-1个密钥,而这个网络保存的密钥就会达到N2左右,会造成管理上的噩梦。
2)非对称加密系统:发送端和接收端可以使用不一样的密钥进行加密。发送端先请求接收端的公有密钥,而后使用请求的密钥对发送包文进行加密,这个加密报文只有接收端才能解密,这样即可以处理对称密钥的密钥管理问题,由于此时每台设施只要要保留一个公钥和私钥就可。如RSA等。
但是非对称加密存在一个性能问题会影响实际的使用场景。
3)混合加密系统:
首先使用非对称加密,建立连接通道,而后使用对称加密进行数据传输。
这样就保证了对称加密的私钥实在安全的连接上进行传输的,同时在数据传输时没有非对称加密。
4)数字签名:
数字签名的主要原理:A -> B,原始报文src1
A 对发送报文产生MD5摘要m1,而后使用私钥加密摘要产生S1。
A使用B的公钥对(S1,src1)进行加密,形成t1,而后发送给B。
B使用自己的私钥对t1解密,形成(S1,src1)。
B使用MD5计算src1的摘要,形成d1。
B使用A的公钥解密S1,形成d2.
比较d1和d2能否相等。
以上就是签名验签的过程,和非对称加密流程正好相反,而是私钥加密,公钥解密。
5)数字证书:
数字证书是知名权威CA机构颁发给web服务器厂商用于签名验签和数据传输的。一般情况下,假如是知名CA,浏览器在请求到服务端的数字证书之后,可以直接进行签名验签过程。验签之后,才会进行加密信息的传输。
建立到服务端443端口的tcp连接。
向服务端发送用户端支持的加密协议,请求服务端的数字证书。
用户端根据根证书对请求的数字证书,进行校验。
校验成功,用户端和服务端之间进行签名验签操作,并将发送的随机数作为对称加密的密钥
发送加密报文
到现在为止,web服务器上的安全认证传输协议和方法已经完成了,下一张开始讲述网络上http报文是怎么进行传输和编码的。