HTTP与HTTPS协议

HTTP协议与HTTPS协议

一、http与https的区别:
1、默认端口不同:http是80端口,https443端口;
2、安全系数不同:http采用的明文传输,无安全性可言,
https采用ssl/tls加密传输,保证了很大程度的安全性;
3、连接方式不同:
A)、http连接简单,是无状态连接,即同一客户端发送的请求,在服务器端是没有上下文关系的。
因为标准的http协议指的是不包括cookies, session等机制的。
PS: cookies, session等机制是在无状态化的过程中,加入状态化的HTTP与HTTPS协议

1)客户端将它支持的算法列表+用于密钥产生过程的随机数C1,发送给服务器;
2)服务器从客户端的算法列表中,确认一种加密算法+带有公用密钥的证书+服务器的随机数S,发回给客户端;
3)客户端对服务器的证书进行验证后,取出公钥,同时产生客户端的第二个随机数C2(官方叫pre_master_secret),
这个C2会在采用公钥加密后,发给服务器;
4)服务器根据自己的私钥,提取到了C2这个随机数,此时,客户端与服务器都已经交换知道了三个随机数(C1+S+C2),
都可以通过第2步约定的算法,得到一个对称密钥,后续传输数据都可以采用这个对称密钥加密传输。

至此,握手阶段基本完成,此时客户端与服务器,已经可以愉快安全的用对称密钥加密数据,进行传输了。
但是,有些书籍或者论坛上,但还需补充后面2步:
5)客户端将所有握手信息的MAC值发送给服务器;
6)客户端将所有握手信息的MAC值发送给服务器;
MAC的使用可以防止握手本身被攻击,保证信息的完整性,保证消息在发送以后和接收以前没有被篡改。
PS: MAC=HASH(shared-key,serial-num,data),使用HASH散列算法,生成MAC值

版权声明:玥玥 发表于 2021-05-04 3:38:21。
转载请注明:HTTP与HTTPS协议 | 女黑客导航