HTTP与HTTPS协议

HTTP协议与HTTPS协议

一、http与https的区别:
1、默认端口不同:http是80端口,https443端口;
2、安全系数不同:http采用的明文传输,无安全性可言,
https采用ssl/tls加密传输,保证了很大程度的安全性;
3、连接方式不同:
A)、http连接简单,是无状态连接,即同一客户端发送的请求,在服务器端是没有上下文关系的。
因为标准的http协议指的是不包括cookies, session等机制的。
PS: cookies, session等机制是在无状态化的过程中,加入状态化的信息,向状态化过渡的一个手段。
B)、https是由http+SSL组成的,可进行加密传输,身份认证的网络协议。
4、https协议需要CA证书(证书授权中心的),免费的证书较少,因此成本更多,
而且CA机构颁发的SSL证书是有有效期的,网站所有者必须按时更新证书。
5、HTTPS协议因增加了握手、记录、警报机制,会更耗资源。
二、HTTPS中的SSL加密协议的个人总结:
1)、加密方式的理解:
SSL采取了非对称密钥与对称密钥的混合加密方式,保证数据传输的安全性。
SSL的握手阶段: 使用的是非对称加密,可以理解为加密与解密用的密码不同,如客户端用的公共密码,
而服务器用的是私有密码(客户端与服务器是多对一的关系)
SSL的传输阶段: 使用的是对称加密,可以理解为加密与解密用的密码一样。
在SSL协议中,使用的是通过加密算法,根据(客户端的随机数C1+服务端的随机数S+客户端的随机数C2)生成的一个密钥。
2)、握手阶段简述:
HTTP与HTTPS协议_第1张图片

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值

你可能感兴趣的:(网络基础理论,https,网络协议)