一文科普:白话HTTPS
闲扯一下
Mac笔记本、Windows台式机、linux主机。像这三种类型,它们硬件不同,系统不同,服务端处理的编程语言不同。它们之间却可以在网络的世界了自由联通。靠的是什么呢?
靠的是它们遵守相同的规则(如:HTTP)。应用层用什么格式(语言编码,报文字段)封装报文、传输层如何将大量的数据分段,并给每帧数据添加编号和端口信息、网络层如何给没帧数据添加IP地址,目标MAC地址、数据链路层如何将数字信息通过网卡发出去。
HTTPS是传输协议吗?
目前常见的应用层协议
好像没有看到HTTPS啊?
没错,HTTPS并非TCP/IP协议族中的一员,它其实是HTTP协议+SSL协议的组合体,是披着SSL外衣的HTTP。
HTTPS与HTTP有什么关系?
HTTP实现的功能:一种机制简单(这也是从早期众多传输协议中走出来的原因)的超文本传输协议,为客户端和服务器通信服务,是处在TCP/IP协议族中的应用层协议。
HTTP在发送请求时,采用四层架构。
应用层:提供多种应用服务,如:HTTP FTP DNS等,可以直接提供给开发者使用。
传输层:网络间数据的传输,如:TCP TDP,报文数据分割打包成帧
网络层:处理网络中流动的数据包,在复杂的网络段中选择一条传输路线,将数据包送到目的地。将现实中的寄快递(在快递上写上收件地址等信息,送到快递点(类似于路由器))
数据链路层:处理链接网络的硬件部分,如:网络适配器,硬件驱动,操作系统,光纤。
HTTP请求过程中的重要概念!
1.数据包在网络层怎么走的呢?
在数据包传输过程中,需要不断使用地址解析协议(IP和MAC地址对应的表,互相反查),进行路由选择(将数据包丢给一个路由器,路由器会根据数据包上带的地址,自动分拣,传给它认为比较好的下一站路,直到到达目的地)
2.TCP通讯三次握手
3.DNS域名解析服务:在浏览器输入url后,点击enter。
4.HTTP与HTTPS通信的区别
只是在应用层与传输层之间添加了一个SSL层
HTTPS为什么会安全?
既然HTTPS是披着SSL外衣的HTTP,那SSL是什么呢?
SSL是安全套接字层,是目前比较成熟的提供可靠数据传输的安全协议。SSL可以提供证书认证,数据加密,完整性保护等保护性策略。
数据加密原理
SSL采用的加密策略是:非对此加密+对称加密的混合加密方式
最中采用在第一次交换共享密钥时,使用非对称加密。然后用共享密钥加密。这样既避免了密钥被劫持,又保证了效率
数据完整性策略
采用报文摘要的策略,防止报文主题被修改。
在报文发送前,先通过md5-base64加密,得到一个报文主体的摘要,把这个摘要放到请求首部中,等服务器收到信息,采用同样的算法,加密报文主体,根据得到的结果是否和报文摘要一致来判断数据的完整性。
SSL和TLS的关系
目前常见的加密协议有两个SSL3.0和TLS1.0,它们之间有什么区别呢?
HTTPS协议安全通信步骤
HTTPS协议安全通信步骤中有三个主角元素:客户端,服务器,第三方可信任的证书颁发机构。
过程如下: