当前位置:文档之家› TLS安全传输协议

TLS安全传输协议

客户端验证证书的合法性,如果验证通过才会进行后 续通信,否则根据错误情况不同做出提示和操作
信息举例说明
ClientHello
ServerHello
四次信息的交换
3> -1Clientkey exchange 发送生成主密钥所需的额外信息。 客户端计算产生随机数字 Pre-master,并用证书公钥 加密。 enc_key=Fuc(random_C, random_S, Pre-Master)-消 息随机数,随机数字→协商密钥 -2 Change Cipher Spec 客户端通知已取得足够信息,已生成加密密钥,并切换 到加密模式。服务器后续的通信都采用协商的通信密钥 和加密算法进行加密通信; -3 Finish hand shake 结合之前所有通信参数,采用协商密钥 与算法进行加 密,然后发送给服务器用于数据与握手验证 4> -1服务器用私钥解密加密的 Pre-master 数据,计算之 前所有接收信息的 hash 值判断正确性 -2知客户端后续的通信都采用协商的密钥与算法进行加 密通信,服务器也结合所有当前的通信参数信息生成一 段数据发送到客户端
TLS :安全传输层协议(TLS)用于在两个通信应用程序之间提供保密性 和数据完整性。 当使用 TLS 时,客户端和服务器之间的连接具有以下一个或多个属性:
连接私密性:使用对称加密算法用于加密数据的传输,例如 AES [AES], RC4 [SCH] 等 可以使用公钥加密来验证通信方的身份 连接可靠性:发送的每个消息都使用 MAC(消息认证码) 进行完整 性检查
记录协议示意图
一条记录是TLS协议中的最小单元。每个记录以5字节的元数据开头,即内容长度(1字节)、 协议版本(2字节)和数据长度(2字节)。如果缓冲区超过记录的长度限制(16384字节), 记录协议会将其切分成更小的片段。(反过来也可以,同一个子协议的小缓冲区也可以组合成 一个记录。)这些由应用协议完成。
TLS:安全性协议 根据TLS所在位置,可得其在TCP/IP握手之后。每一个 TLS 连 接都会以握手开始。在使用中经常可以观察到以下三种流程: 1>完整握手,对服务器进行身份验证 2>短握手(恢复以前某个会话 根据session id) 3>对客户端和服务器都进行身份验证的握手(与完整相比,对 客户端也有个证书验证)
TLS协议组成
TLS协议由两层组成: TLS 记录协议(TLS Record)和 TLS 握手协议
(TLS Handshake),
TLS 记录
TLS 握手
协议
协议
(TLS
(TLS
TLS协议
Handshak
Record)
e)
较低的层为 TLS 记录协议,位于某个可靠的传输协议(例如 TCP)上面
所以一般把TLS协议归为传输层安全协议。
TLS安全传输协议
为什么使用TLS?
无加密的传输层协议的安全问题
传统的传输层协议如TCP、UDP等使用明文传输数据 公网上的IP数据包很容易被人截获,从而引发诸多安全问题 明文传输的主要安全隐患包括:
−− 窃听:通信内容被获知 −−篡改:通信内容被恶意更改 −−伪装:第三方伪装成通信的一端
为了解决以上明文传输的问题,网景公司最早提出了SSL协议,它不会影 响上层协议(如HTTP、电子邮件等),但可以保证上层协议的通信gt;客户端发起请求(ClientHello) 将自身支持的加密功能提交给服务器
2>server_hello+server_certificate+sever_hello_done 服务器 server_hello返回,选择一个支持的密码套件。 并发送证书。 服务端返回协商的信息结果,通知客户端 server_hello 信息发送结束(serverhellodone)。
SSL经历了1.0,2.0,3.0版,并最终发展成为TLS协议(Transport Layer Security)。很多人会混用SSL与TLS,但严格来说它们指代的协议版本 不同(SSL3.0的升级版才是TLS1.0)现在最新的版本为1.3,目前使用最 广泛的是1.2。
在最初设计互联网的时候,是没有考虑到信息安全方面的问题,使得通信协 议本身不安全,所以才开发出TLS实现加密传输,确保信息安全。
TLS协议在网络通信模型中的位置
TCP/IP 4层模型:
(4) 应用层 (3)传输层
TLS
(2)网络层
(1)物理层
OSI七层模型:
(7)应用层
(6)表示层
TLS
(5)会话层
(4)传输层
(3)网络层
(2)数据链路层
(1)物理层
根据分层的原理:一个下层协议可以服务于多个上层协议,SSL/TLS位于TCP协议之上, 他们的上层协议有 http,ftp, pops,ntp,snmp等,不想要加密的时候,可以将TLS去掉,并 不对上层协议产生任何影响,需要加密的时候就可以使用TLS加密HTTP等上层协议。
TLS记录协议负责消息的压缩、加密以及数据的认证,其处理过程如下:
记录协议有四种类型的客户:握手协议、警告协议、改变密码格式协议和应用数据协议。通常使用 一个对称算法,算法的密钥由握手协议提供的值生成,从而提供数据保密性和一致性保护。
TLS 记录协议提供的连接安全性具有两个基本特性:
私有――对称加密用以数据加密(DES 、RC4 等)。对称加密所产生的密钥对每个连接都是唯 一的,且此密钥基于另一个协议(如握手协议)协商。记录协议也可以不加密使用。
可靠――信息传输包括使用密钥的 MAC 进行信息完整性检查。安全哈希功能( SHA、MD5 等)用于 MAC 计算。记录协议在没有 MAC 的情况下也能操作,但一般只能用于这种模式,即 有另一个协议正在使用记录协议传输协商安全参数。
TLS-握手协议
握手协议 (handshake protocol)
TLS-完整握手
如果客户端此前并未与服务器建立会话,那么双方会执行一次完整的握手流程来协商 TLS 会话。握手过程中, 客户端和服务器将进行以下四个主要步骤:
·交换各自支持的功能,对需要的连接参数达成一致 ·验证出示的证书,或使用其他方式进行身份验证 ·对将用于保护会话的共享主密钥达成一致 ·验证握手消息并未被第三方团体修改
TLS层的工作机制
整体上看,TLS用记录协议(record protocal)实现,与底层数据 交换。其他协议(如http)将不透明数据缓冲区的数据提交给它,记 录协议传输这些数据。
记录协议中的每个“数据包”,包括标头和数据,除了可见字段, 还会给每个TLS记录指定唯一的64位序列号,但不会在线路上传输。 通信双方都有自身的序列号并跟踪来自另一端记录的数量。这些值 是对抗重放攻击的一部分。
记录协议的具体工作流程
记录协议的具体流程: 一个刚建立的连接(TCP连接)上,最初的消息是没有受到加密保护的(从技 术上讲,就是使用了TLS_NULL_WITH_NULL_NULL密码套件)。 一旦TLS握手完成,记录层就按照双方协定达成的参数进行加密和完整性验证。 记录协议只关注数据传输和加密,将其他功能转交给子协议;这个方法使TLS 可以扩展,可以很方便地添加子协议。子协议伴随着记录协议被加密,所有子 协议都会被其加密保护(以协商参数为准。)
相关主题