1.HTTP和HTTPS的区别
http是无状态的超文本传输协议,连接简单,信息是明文传输,端口为80。
https协议是由http+ssl协议构建的可进行加密传输、身份认证的具有安全性网络协议,端口是443。
2.SSL协议是什么?
SSL(安全套检查协议)位于传输层和应用层之间,为应用层提供安全性,分为高低两层协议。
高层协议有
- SSL握手协议:SSL协议核心,用于在数据传输开始前通信双方进行身份认证、协商加密算法、交换密钥等
- SSL密码修改协议:通知双方使用刚刚协商的加密规范和密钥进行加密,每隔一段时间就会修改加密规范
- SSL告警协议:如果在通信过程中某一方发生异常,异常级别为1SSL会发出警告,异常几倍为2SSL会终止连接
低层协议有
- SSL记录协议,为上层协议提供保密性和完整性服务
3.SSL握手协议握手流程
1.tcp三次握手后,客户端向服务端发送client hello,client hello包括客户端所支持的加密套件、SSL版本和第一随机数
2.服务端向客户端响应server hello,响应报文中会告诉客户端服务端选择的加密套件、SSL版本,和第二随机数。
3.服务端向客户端响应一个x.509证书来表明自己的身份
4.服务端向客户端响应server key exchange,发送自己公钥,此时服务端也可以要求客户端向自己发送证书
5.服务端向客户端发送server hello down,表示响应完毕,此时所有消息还未进行加密
6.客户端向服务端发送client key exchange,生成预主密钥,客户端用服务端公钥对预主密钥进行加密后发送给服务端
7.客户端和服务端协商完毕,分别使用第一随机数、第二随机数、预主密钥计算出会话密钥,SSL的握手已经成功,可以开始利用会话密钥进行对称加密传输
4.HTTPS是如何保证安全的?
我们都知道https=http+ssl,看完SSL握手协议握手流程后,我们就知道了,ssl协议的握手流程就是https保证数据安全的原理