HTTPS协议

本文涉及的产品
数据传输服务 DTS,数据同步 small 3个月
推荐场景:
数据库上云
数据传输服务 DTS,数据迁移 small 3个月
推荐场景:
MySQL数据库上云
数据传输服务 DTS,数据同步 1个月
简介: HTTPS协议介绍

简介


HTTPS网络分层


SSL是一个介于HTTP协议与TCP之间的一个可选层,HTTPS协议通过SSL or TLS层来进行服务请求与数据交互

网络异常,图片无法展示
|


通信端口

协议

端口

http

默认80

https

默认443


SSL是一个二进制协议,与HTTP完全不同,其流量入口承载在默认的443端口,如果SSL和HTTP流量都从端口80进入,如果共用端口需要进行额外配置,基于TCP链接通过代理判断数据流报文头进行协议请求的转发与处理

网络异常,图片无法展示
|


通信方式


SSL/TLS协议区别


TLS的主要目标是使SSL更安全,并使协议的规范更精确和完善


  • SSL:(Secure Socket Layer,安全套接字层),为Netscape所研发,用以保障在Internet上数据传输之安全,利用数据加密(Encryption)技术,可确保数据在网络上之传输过程中不会被截取。当前版本为3.0。它已被广泛地用于Web浏览器与服务器之间的身份认证和加密数据传输。
    SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层: SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。 SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。
  • TLS:(Transport Layer Security,传输层安全协议),用于两个应用程序之间提供保密性和数据完整性。
    TLS 1.0是IETF(Internet Engineering Task Force,Internet工程任务组)制定的一种新的协议,它建立在SSL 3.0协议规范之上,是SSL 3.0的后续版本,可以理解为SSL 3.1,它是写入了 RFC 的。该协议由两层组成: TLS 记录协议(TLS Record)和 TLS 握手协议(TLS Handshake)。较低的层为 TLS 记录协议,位于某个可靠的传输协议(例如 TCP)上面。


SSL/TLS协议作用


  • 认证用户和服务器,确保数据发送到正确的客户机和服务器
  • 加密数据以防止数据中途被窃取
  • 维护数据的完整性,确保数据在传输过程中不被改变


SSL握手


SSL协议分为两部分:Handshake Protocol、Record Protocol

协议

内容

Handshake Protocol

用来协商通信密钥

Record Protocol

定义数据传输的格式


Handshake Protocol(密钥协商)


网络异常,图片无法展示
|


客户端发出请求(ClientHello)


客户端主要向服务器提供以下信息:


  • 支持的协议版本,比如TLS 1.0版
  • 一个客户端生成的随机数,稍后用于生成"对话密钥"
  • 支持的加密方法,比如RSA公钥加密
  • 支持的压缩方法


服务器回应(ServerHello)


服务器的回应包含以下内容:


  • 确认使用的加密通信协议版本,比如TLS 1.0版本。如果浏览器与服务器支持的版本不一致,服务器关闭加密通信
  • 一个服务器生成的随机数,稍后用于生成"对话密钥"
  • 确认使用的加密方法,比如RSA公钥加密
  • 服务器证书


证书是需要申请,并由专门的数字证书认证机构(CA) 通过非常严格的审核之后颁发的电子证书。颁发证书的同时会产生一个私钥公钥。私钥由服务端自己保存,不可泄漏。公钥则是附带在证书的信息中,可以公开的。证书本身也附带一个证书电子签名,这个签名用来验证证书的完整性和真实性,可以防止证书被串改。另外,证书还有个有效期。

网络异常,图片无法展示
|


客户端回应(Certificate Verify)


客户端向服务器发送下面三项信息:


  • 一个随机数。该随机数用服务器公钥加密,防止被窃听
  • 编码改变通知,表示随后的信息都将用双方商定的加密方法和密钥发送
  • 客户端握手结束通知,表示客户端的握手阶段已经结束。这一项同时也是前面发送的所有内容的hash值,用来供服务器校验


服务器最后回应(Server Finish)


  • 交换协议版本号
  • 选择一个两端都了解的密码
  • 对两端的身份进行认证
  • 生成临时的会话秘钥,以便加密信道


简易通俗版本SSL握手交互过程

网络异常,图片无法展示
|


Record Protocol(格式定义)


SSL安全性


网络异常,图片无法展示
|

通过分析SSL建立握手的过程,SSL的结构是严谨的,正确使用加密算法以及证书核验是不会出现安全问题的,如果没有合理使用SSL协议的话,则会有可能出现问题,常见的攻击就是 中间人攻击(middle in the middle) ,它是指在A和B通信的同时,有第三方C处于信道的中间,可以完全听到A与B通信的消息,并可拦截,替换和添加这些消息。


出现SSL安全隐患的原因如下:


  • 不进行证书核身。SSL可以允许多种密钥交换算法,而有些算法,如DH,没有证书的概念,这样A便无法验证B的公钥和身份的真实性,从而C可以轻易的冒充,用自己的密钥与双方通信,从而窃听到别人谈话的内容
    而为了防止middle in the middle攻击,应该采用有证书的密钥交换算法。
  • 忽略安全提醒。有了证书以后,如果C用自己的证书替换掉原有的证书之后,A的浏览器会弹出一个警告框进行警告,但又有多少人会注意这个警告呢
  • 加密强度弱。由于美国密码出口的限制,IE,netscape等浏览器所支持的加密强度是很弱的,如果只采用浏览器自带的加密功能的话,理论上存在被破解可能
  • 代理。像路由器、连接热点等都需要类似证书核验的支持,否则也会成为中间攻击的场所


参考


《HTTP权威指南》
SSL/TLS协商过程详解
实现http和https共用一个端口原理及实现


网络异常,图片无法展示
|

相关实践学习
RocketMQ一站式入门使用
从源码编译、部署broker、部署namesrv,使用java客户端首发消息等一站式入门RocketMQ。
Sqoop 企业级大数据迁移方案实战
Sqoop是一个用于在Hadoop和关系数据库服务器之间传输数据的工具。它用于从关系数据库(如MySQL,Oracle)导入数据到Hadoop HDFS,并从Hadoop文件系统导出到关系数据库。 本课程主要讲解了Sqoop的设计思想及原理、部署安装及配置、详细具体的使用方法技巧与实操案例、企业级任务管理等。结合日常工作实践,培养解决实际问题的能力。本课程由黑马程序员提供。
相关文章
|
18小时前
|
数据安全/隐私保护
数据防护之=HTTPS协议增加了<数据加密>
数据防护之=HTTPS协议增加了<数据加密>
|
1天前
|
安全 网络协议 网络安全
IP代理的三大协议:HTTP、HTTPS与SOCKS5的区别
**HTTP代理**适用于基本网页浏览,简单但不安全;**HTTPS代理**提供加密,适合保护隐私;**SOCKS5代理**灵活强大,支持TCP/UDP及认证,适用于绕过限制。选择代理协议应考虑安全、效率及匿名需求。
|
7天前
|
机器学习/深度学习 安全 数据安全/隐私保护
【计算机网络】深度学习HTTPS协议
【计算机网络】深度学习HTTPS协议
19 0
|
9天前
|
监控 小程序 前端开发
基础入门-抓包技术&HTTPS协议&WEB&封包监听&网卡模式&APP&小程序
基础入门-抓包技术&HTTPS协议&WEB&封包监听&网卡模式&APP&小程序
|
23天前
|
安全 前端开发 中间件
中间件中HTTP/HTTPS 协议
【6月更文挑战第3天】
18 3
|
1月前
|
存储 安全 前端开发
HTTP 协议 与HTTPS
HTTP 协议 与HTTPS
|
1月前
|
JSON 安全 网络协议
【Linux 网络】网络基础(二)(应用层协议:HTTP、HTTPS)-- 详解
【Linux 网络】网络基础(二)(应用层协议:HTTP、HTTPS)-- 详解
|
1月前
|
存储 算法 安全
[计算机网络]---Https协议
[计算机网络]---Https协议
|
1月前
|
安全 网络协议 算法
【计算机网络】http协议的原理与应用,https是如何保证安全传输的
【计算机网络】http协议的原理与应用,https是如何保证安全传输的
|
1月前
|
网络协议 安全 算法
HTTP协议与HTTPS协议
HTTP协议与HTTPS协议