HTTPS协议简介
什么是HTTPs
如果要理解https协议,那么有必要知道http协议是什么;因为https可以认为是更安全的http协议,就是在http连接过程中,利用ssl/tls建立全信道对数据进行加密。http协议有很多的不足,比如使用明文通信,不进行加密;不会验证通信双方的身份,可能会遇到伪装;不会验证报文是否完整,是的请求响应的报文时经过篡改的。 ### HTTPS通信过程 在讲述通信过程之前,我们需要理解几个相关的概念以帮助我们更好的理解通信过程。
通信过程
在理解通信过程前,我们需要准确的理解几个概念,这对于帮助我们理解https的通信过程,有着极大的帮助。
加密方式
密钥:可以理解为加密过程中的算法的参数。
对称密钥加密(共享密钥加密):发送和接收数据的双方必须用相同的密钥对明文进行加密和解密运算,在此过程中只涉及到一把密钥。这就要求在数据发送时对方需要知道密钥是什么,需要考虑怎样把共享密钥安全的发送给对方。
非对称式密钥加密:与对称式密钥不同的是,这个过程涉及到两把密钥,分别是公钥和私钥,公钥用来加密,私钥用来解密,这两者是成对存在的,私钥无法解密其他公钥加密的数据。数据接收方将公钥发送给数据发送方,发送方用此公钥对数据进行加密,然后将数据回传给接收方,接收方可以用自己手里的私钥解密数据,从而获得信息,这个过程中,即使数据被第三方获得,因为没有相应的私钥对数据进行解密,也无法获得数据内容。
优缺点比较:对称加密速度快,加密解密方式较为简单,适合对大量数据加密,但是维护密钥困难,在与N个数据方通信时,需要维护N对密钥;非对称加密虽然较为安全,但是加密解密速度慢得多。
混合加密:所以人们研究了混合加密,将对称式加密与非对称式加密混合起来使用。过程是数据发送方生成一对非对称式密钥,将公钥发送给数据接收方,接收方生成对称式加密密钥,将此密钥用公钥进行加密,然后发送给发送方,这样就保证了共享密钥不被泄露,也保留了加密解密速度快的优势。
通信过程
可简单的通过下面的理解方式
1、客户端向服务端发送消息请求建立连接。
2、服务段返回证书,里面包括服务器的公钥和一些其他信息。
3、客户端会进行通过证书验证这个公钥是否为服务器的,如果证书通过了检查,则客户端会验证数据接收方是否为服务器。它会将一个字符串发送给服务器,服务器用自己的私钥将字符串加密。并发送给客户端,客户端用公钥将字符串解密,与自己发送前的字符串进行比较,如果一致则认定对方确实为服务器。
4、验证身份后,客户端对将自己的对称加密算法用公钥加密发送给服务器,因为只有服务器有私钥,即使数据被截获,也不会被泄露。
数字签名
非对称式加密中,如果在发送公钥的过程中公钥被替换,那么数据还是会被泄露。所以有了数字证书机构 CA(Certificate Authority),数字证书可以保证公钥与服务器是相匹配的。
数字证书结构组成:
证书发布机构
证书有效日期
公钥
证书所有者
签名所使用的算法
指纹以及指纹算法
区别
HTTPS是HTTP协议的安全版本,HTTP协议的数据传输是明文的,是不安全的,HTTPS使用了SSL/TLS协议进行了加密处理。 http和https使用连接方式不同,默认端口也不一样,http是80,https是443。