一文详解访问https网站连接使用的SSL/TLS协议
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
目录 1 发展历程 2 协议原理 2.1 网络通信模型 2.2 TLS协议原理 3 TLS握手 3.1 概述 3.2 TLS 握手具体步骤 3.3 wireshark抓包解析 4 TLS应用 5 TLS 1.3协议 5.1 TLS 1.3加密套件 5.2 TLS1.3握手协议 6 SSL证书 6.1 工作原理 6.2 证书类型 6.3 获得证书 SSL/TLS协议使用对称加密、非对称加密、数字证书、数字信封以及密钥协商等技术,实现数据的加密、身份验证、数据完整性验证等功能 发展历程 TLS协议:(Transport Layer Security)是用来保证 TLS协议能够保证通信消息的隐私性、消息完整性以及通信实体的身份鉴别 TLS协议(前身SSL)从1986左右开始,经过了多个版本的发展:
协议原理 2.1 网络通信模型网络安全
在网络通信过程中,如果未使用tls保护,会存在通信消息被 2.2 TLS协议原理TLS协议包含多个
TLS协议使用公钥加密和对称加密两种方式来保证通信的安全性: 公钥加密:在通信开始时,客户端和服务器之间进行握手,验证对方的身份,并交换加密所需的公钥信息。使用服务器的公钥加密的方式,客户端可以安全地将对称加密所需的密钥传输给服务器,以便后续通信的加密和解密 对称加密:一旦握手阶段完成,客户端和服务器之间使用共享的密钥进行通信,对称加密算法更高效,因此在实际通信中使用它来加密数据。服务器和客户端使用该密钥进行数据加密和解密,确保数据的机密性和完整性 TLS协议在应用层和传输层之间建立了一个安全的通道,可以在许多应用层协议(如HTTP、SMTP、FTP)之上使用,它已被广泛应用于Web浏览器与服务器之间的安全网页传输,即HTTPS(HTTP over TLS/SSL) TLS握手 3.1 概述在数据传输过程中,通常通过 TLS/SSL 连接对数据进行加密,而建立这样的连接需要进行 TLS 握手(TLS Handshake) TLS 握手是启动 TLS 通信会话的关键步骤,在握手过程中,通信双方(客户端和服务器)交换信息,互相验证身份,协商使用的加密算法,并生成一致的会话密钥 TLS 握手确保了通信的机密性和完整性,并为后续的数据传输提供加密保护 当用户访问一个使用 HTTPS 的网站时,浏览器会先定位网站的源服务器,并随后发起 TLS 握手,类似地,在所有涉及 HTTPS 的通信(如 API 调用、DNS over HTTPS 查询)中,TLS 握手同样会发生 在建立 TCP 连接(完成 TCP 握手)后,TLS 握手随即开始,以确保通信加密和安全性 在 TLS 握手过程中,客户端与服务器将共同完成以下关键步骤:
3.2 TLS 握手具体步骤主要包括以下几个阶段: 1.客户端问候(Client Hello) 客户端向服务器发起通信请求,并在此过程中提供:
2.服务器问候(Server Hello) 服务器响应客户端请求,并进行以下操作:
3.证书验证 客户端通过证书颁发机构(CA)验证服务器证书的有效性,确保服务器身份的真实性 4.预主密钥(Pre-Master Secret) 客户端生成一个预主密钥,使用服务器的公钥加密后发送给服务器,由于只有服务器拥有对应的私钥,因此只有服务器可以解密该密钥,从而增强通信安全性 5.会话密钥生成 服务器解密预主密钥,客户端和服务器根据客户端随机数、服务器随机数和预主密钥计算出相同的会话密钥,用于后续通信加密 6.完成握手 双方互相发送“握手完成”消息,并验证生成的密钥是否匹配,握手完成后,会话密钥将用于加密和解密客户端与服务器之间传输的数据 3.3 wireshark抓包解析以 概览 从抓包结果可以了解到:
客户端 -> 服务端:Client Hello 可以看到:
服务端 -> 客户端:Server Hello 可以看到:
服务端 -> 客户端:Certificate, Server Key Exchange, Server Hello Done 可以了解到,本次通信tcp包携带了3个tls握手协议包: 1. Certificate消息:
2. Server Key Exchange消息:
3. Server Hello Done消息:通知客户端加密套件协商结束 客户端 -> 服务端:Client Key Exchange, Change Cipher Spec, Encrypted Handshake Message 可以了解到,本次通信tcp包携带了3个tls握手协议包: 1. Client Key Exchange消息
2. Change Cipher Spec消息:通知服务端,客户端已准备好进行密文通信 3. Encrypted Handshake Message消息:同Finished消息(密文形式) 服务端 -> 客户端: New Session Ticket, Change Cipher Spec, Encrypted Handshake Message 可以了解到,本次通信tcp包携带了3个tls协议包:
客户端 <-> 服务端:Application Data 可以看到:
TLS应用 TLS协议广泛应用于互联网中,以便保护通信实体信息交换的安全性 TLS在 TLS协议工作在 TLS协议一种常见的应用就是:
此外,在gRPC中的应用,我们称之为 TLS 1.3协议 tls1.2作为主流的网路安全协议,被广泛应用,但tls1.2仍存在一些安全隐患和性能问题,如:
为了解决TLS1.2存在的问题,
5.1 TLS 1.3加密套件TLS1.3支持的加密套件如下:
从加密套件上看,与tls1.2相比(如:
5.2 TLS1.3握手协议TLS1.3协议握手流程如下
握手可以看作有三个阶段:
密钥交换(Key Exchange) 在
服务器处理ClientHello并确定适当的加密参数,然后通过ServerHello响应,指示协商的连接参数 ClientHello和ServerHello的组合确定了共享密钥
服务器参数(Sever Parameters) 然后,服务器发送两个消息以建立服务器参数:
身份验证(Authentication) 最后,客户端和服务器交换身份验证消息。具体来说:
收到服务器的消息后,客户端通过其身份验证消息(即Certificate和CertificateVerify(如果有请求)和Finished)做出响应 此时,握手过程完成,客户端和服务器生成了记录层所需的 SSL证书 SSL证书通过加密算法保证用户和网站或两个系统之间传输的数据是加密,这些数据可能包括用户名、地址、信用卡号码或其他财务详细信息等敏感信息 6.1 工作原理SSL证书的工作原理如下:
6.2 证书类型SSL证书有几种不同的类型,每种类型具有不同的身份验证级别和用途。以下是一些常见的SSL证书类型: 域名验证证书(DV):最基本的SSL证书类型,验证域名的所有权,确保证书持有者拥有指定的域名,域名验证证书通常是最便宜和最快速获得的证书,然而只验证了域名的真实性 组织验证证书(OV):验证了域名的所有权,并对证书持有者的组织身份进行验证,CA会检查域名持有者的组织信息,如名称、地址和联系信息等,OV证书提供了更高的可信度,显示了拥有者的组织信息 增强验证证书(EV):最高级别的SSL证书,提供了最大的可信度和认可,EV证书旨在验证网站所有者的合法性和业务身份,持有EV证书的网站在浏览器地址栏中显示绿色的地址栏和公司名称,以增强用户信任度,获取EV证书需要进行更严格的验证流程和文件提交 除了上述常见的证书类型,还有一些特殊用途的SSL证书,如: 通配符SSL证书:允许人们在单个证书上保护基本域和无限子域,可以作用于一个域名以及其所有的子域名,提供灵活性和便利性,一个通配符证书可以适用于*.example.com,以用来保护www.example.com、mail.example.com、blog.example.com等所有相关的子域名 多域名SSL证书:可以用于保护多个不同的域名,一个证书可以涵盖多达数十个域名或子域名,它适用于企业拥有多个域名或网站的情况,可简化管理和成本 6.3 获得证书要获得SSL证书,需要遵循以下步骤: 首先,选择合适的SSL证书类型——根据网站需求和预算,选择适合的SSL证书类型 其次,选择CA(证书颁发机构)——选择一个可信的证书颁发机构,以确保获得有效和受信任的SSL证书 再次,购买和注册SSL证书——在选择的证书颁发机构的网站上购买并注册SSL证书,将需要提供一些关于个人和网站的信息 然后,通过验证过程——完成CA要求的验证过程,以证明您对域名和网站的拥有权 最后,安装和配置SSL证书——获得SSL证书后,按照证书颁发机构提供的指南,将其安装和配置到您的网站服务器上 一旦SSL证书成功安装和配置,网站就会获得安全的HTTPS连接,为用户提供更安全的浏览体验。同时,搜索引擎也会对启用SSL证书的网站给予更高的排名,从而提升网站的可信度和可访问性 但,这并不意味着结束,定期更新SSL证书至关重要,人们需要确保在证书过期之前更新证书 阅读原文:原文链接 该文章在 2025/8/25 13:20:16 编辑过 |
关键字查询
相关文章
正在查询... |