HTTPS的工作原理

1、HTTP和HTTPS的区别:
HTTP:超文本传输协议,用来发送和接收HTML页面的方法,用于在WEB浏览器和服务器之间传递信息
HTTP协议以明文的方式发送数据,不提供任何数据加密,如果攻击者截取了浏览器和服务器之间的传输报文,就可以直接读懂传输的信息,HTTP不适合发送敏感信息
HTTPS:超文本传输安全协议,通过计算机网络进行安全通信的传输协议,HTTPS经由HTTP进行通信,利用SSL/TLS加密数据包
目的:提供对网站服务器的身份认证,保护交换数据的隐私和完整性
2、工作流程:
1、TCP三次握手
2、客户端校验服务端数字证书
3、DH算法协商堆成加密算法秘钥,hash算法秘钥
4、SSL安全加密隧道协商完成
5、网页以加密的方式传输,用对称加密算法和秘钥加密,保证数据机密性;用hash算法进行数据完整性保护,保护数据不被篡改
3、http和https的区别
1、http明文传输,安全性较差;https数据传输过程是加密的,安全性较好
2、使用https需要到CA(数字证书认证机构)申请证书
3、http页面的响应速度比https快,HTTP使用TCP三次握手连接,客户端和服务端只需要交换3个包;HTTPS除了TCP的三个包,还要加上SSL握手的9个包
4、http连接的TCP端口是80,https是443
5、https是构建在SSL之上的HTTP协议,更加消耗服务器资源
4、TCP三次握手工作流程:在TCP/IP中,TCP协议通过三次握手建立可靠的连接
5、HTTPS工作流程:
1、客户端发起HTTPS请求
2、服务端配置:
   使用HTTPS协议服务端必须持有一套数字证书(可以自己制作,或者向组织申请),自己制作的需要客户端验证通过才能继续访问;组织申请的不会弹出提示页面
   证书指的是一对公私钥对
3、传送证书
   指的是传送公钥,包含了颁发机构,过期时间等
4、客户端解析证书
   通过客户端的TLS完成的,首先验证公钥是否有效(比如颁发机构,过期时间等),如果有异常则同时证书存在问题
   证书没有问题,则生成一个随机值,使用证书对随机中加密
5、传送加密的信息
   客户端传送使用证书加密后的随机值,服务端获取这个随机值,以后客户端和服务端通信就通过这个随机值进行加解密
6、服务端解密
   服务端通过私钥解密到随机值,把要传输的信息通过随机值进行对称加密(将信息和随机值通过某种算法混合在一起),数据就足够安全
7、传输加密后的信息
   服务端用随机值加密后的信息,在客户端可以被还原并获取到服务端发送过来的信息,整个过程第三方即使监听到了数据,也无法解密


 

HTTPS的工作原理