http与https

发布于 2018-11-15  236 次阅读


   http是HTTP协议运行在TCP之上。80端口所有传输的内容都是明文,通过抓包工具可以分析其信息内容,客户端和服务器端都无法验证对方的身份。
   https是HTTP运行在SSL(Secure Sockets Layer 安全套接层)/TLS之上,SSL/TLS运行在TCP之上。443端口,所有传输的内容都经过加密,加密采用对称加密,但对称加密的密钥用服务器方的证书进行了非对称加密。此外客户端可以验证服务器端的身份,如果配置了客户端验证,服务器方也可以验证客户端的身份。
 对称秘钥:对称密钥加密又叫专用密钥加密,即发送和接收数据的双方必使用相同的密钥对明文进行加密和解密运算。通常有两种模式:流加密和分组加密。
 非对称秘钥:非对称加密算法需要两个密钥:公开秘钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。
 
https解决了流量劫持和隐私数据劫持
在公共场所使用服务的时候,有https就用https。而http是明文传输的,如果有人抓到数据包,你在一个http request里的数据都能见到
 
 
   在HTTP的概念中介绍了HTTP是非常不安全的,那么在服务器与客户端传递数据的过程中HTTPS是如何保证数据的安全呢?
            1.客户端向服务器端发起SSL连接请求;(在此过程中依然存在数据被中间方盗取的可能,下面将会说明如何保证此过程的安全)
            2 服务器把公钥发送给客户端,并且服务器端保存着唯一的私钥;
            3.客户端用公钥对双方通信的对称秘钥进行加密,并发送给服务器端;
            4.服务器利用自己唯一的私钥对客户端发来的对称秘钥进行解密,在此过程中,中间方无法对其解密(即使是客户端也无法解密,因为只有服务器端拥有唯一的私钥),这样保证了对称秘钥在收发过程中的安全,此时,服务器端和客户端拥有了一套完全相同的对称秘钥。
            5.进行数据传输,服务器和客户端双方用公有的相同的对称秘钥对数据进行加密解密,可以保证在数据收发过程中的安全,即是第三方获得数据包,也无法对其进行加密,解密和篡改。


凡心所向,素履所往