传输层安全协议
2020年3月15日
Web安全
完整性 保密性 拒绝服务 认证
Web安全威胁及对策
威胁
修改用户数据 浏览器种入特洛伊木马 内存修改 修改传送中的消息
网上窃听 窃取服务器数据 窃取客户端数据 窃取网络配置信息 窃取客户与服务器通话信息 破坏用户线程 用假消息使机器溢出 填满硬盘或内存 使用DNS攻击来孤立机器
伪装成合法用户 伪造数据
三. 握手消息
客户
服务器
1. 所支持的加密算法,随机数
2. 选中的加密算法,随机数,证书
3. 加密后的预主密钥
4. 计算密钥
4. 计算密钥
客户
服务器 ห้องสมุดไป่ตู้. 握手:ClientHello
2. 握手:ServerHello 2. 握手:Certificate 2. 握手:ServerHelloDone
客户和服务器之间相互认证 协商加密算法和密钥 提供连接安全性
身份鉴别,至少对一方实现鉴别,也可以是双 向鉴别 协商得到的共享密钥是安全的,中间人不能知道 协商过程是可靠的
TLS&SSLv3
1.1 概述 两个阶段,两个层次,两类认证,四个协议 两个阶段: 1.握手阶段:对服务器(客户端)进行认证并确立用于保护数
SSL 的结构
SSL是独立于各种协议的 常用于HTTP协议,但也可用于别的协议,如NNTP,TELNET
等
SSL体系结构
SSL 记录协议
建立在可靠的传输协议(如TCP)基础上 提供连接安全性
保密性,使用了对称加密算法 完整性,使用HMAC算法
用来封装高层的协议
SSL握手协议
记录头
SSL数据的分片与保护
加密的数据和MAC
数据
一.处理步骤
1. 发送数据
(1)数据分片(分片的最 大长度:214-1)
数据分片 MAC
数据分片 MAC
(2)可能进行数据压缩
(3)计算MAC (4)加密
记录头 加密的数据分片和 记录头 加密的数据分片和
MAC
MAC
(5)传输数据
2. 接收数据 (1)解密 (4)重组 (2)验证 (5)提交给高层协议 (3)解压
随机数分别计算加密和MAC密钥
5. 握手消息的MAC值 6. 握手消息的MAC值
5.客户端将所有握手消息的MAC值发 给服务器
6.服务器将所有握手消息的MAC值发 给客户端
SSL握手协议报文格式
ClientHello Version 3.1 Random[32]=38 f3 cb de 80 4c b4 79 0a 07 9f b3 51 ba b8 62 69 e3 8f bf ce c7 ff 25 3c 3b 84 16 38 b2 5e f7 Cipher suites(认证算法、密钥交换算法、加密算法、摘要算法) TLS_RSA_WITH_NULL_SHA TLS_DH_DSS_WITH_DES_CBC_SHA TLS_RSA_WITH_RC4_128_MD5 TLS_RSA_WITH_RC4_128_SHA TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5 TLS_RSA_WITH_IDEA_CBC_SHA TLS_RSA_EXPORT_WITH_DES40_CBC_SHA TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA TLS_RSA_WITH_3DES_EDE_CBC_SHA Compression methods NULL
5. 握手消息的MAC值 6. 握手消息的MAC值
3. 握手:ClientKeyExchange 5. 握手:finished
ClientHello
6. 握手:finished
ServerHello:包含了服务器选择的算法
Certificate:包含了服务器的证书
ServerHelloDone:标志服务器这一握手阶段完成
Web安全的组成部分
▪ Browser 安全 ▪ Web Server安全 ▪ Browser 与Web Server之间网络通信安全
Web安全方案
▪ 网络层:IPSec ▪ 传输层:SSL/TLS ▪ 应用层:SET/SHTTP
SSL与TLS的关系
TLS源于SSL,在被IETF(互联网工程任务组)最终采纳为标准 之前,都称为SSL,是Netscap公司的技术。IETF采纳该标准 后,称为TLS。
解决方案: (1)分设端口:协议设计者为协议分配一个不同的知名端口,而
服务器实现同时在原来的端口和新的安全端口上监听(HTTPS 443)。
(2)升级协商(upward negotiation):协议设计者通过修改应
用协议来支持一种用于表示一方想升级为SSL的消息 (基于 TLS的SMTP即基于这种策略。 )
二. 记录格式: 头 + 加密的数据块
(数据 + MAC +填充 + 填充长度)
application_data:应用层数据 alert:警告消息,报告各种错误信息,指示连接将要关闭 handshake:握手消息 change_cipher_spec:标志使用密码规范的更改,一旦协定了一
组新密钥,则发送该消息指示启用新的密钥。
40
DES-40
40
DES
56
3DES
168
FORTEZZA 80
RC4-40 40 RC4-128
4. 加密
5. 封装
作业:
1、SSL包含哪些协议? 2、SSL握手协议的作用 3、SSL记录协议提供哪些服务?SSL记录协议传输有哪些步骤? 4、HTTPS的目的是什么? 5、考虑以下web安全性威胁,并描述SSL是如何防止这些威胁的 (1)穷举密码分析攻击 (2)重放攻击:重放先前的SSL握手消息 (3)中间人攻击:在密钥交换时,攻击者向服务器假扮客户端,向客户端假 扮服务器 (4)密码窃听:HTTP或其他应用流量的密码被窃听 (5)IP欺诈:使用伪造的IP地址使主机接收伪造的数据 (6)IP劫持:中断两个主机间活动的,经过认证的连接,攻击者代替一方的 主机进行通信 (7)SYN洪:攻击者发送TCP SYN消息请求连接,但不回答建立连接的最后 一条消息。被攻击的TCP模块通常为此预留几分钟的“半开连接”,重复 SYN消息可以阻塞TCP模块。
在协议栈中的位置:
应用层 SSL TCP IP
SSL 功能
▪ SSL 提供四个基本功能
Authentication Encryption Integrity Key Exchange
SSL 功能
▪ 采用两种加密技术
非对称加密 认证 交换加密密钥
对称加密:加密传输数据
1. 用于Web的SSL
通常的HTTP过程: 1.建立TCP连接 2.请求-响应 3.断开连接
▪无损压缩 ▪不会增加1024字节
以上长度的内容
▪没有默认压缩算法
2. 压缩 By Introducing SSL and Certificates using SSLeay - Frederick J. hirsch
3. MAC计算
可供选择的加密算法:
AES
128 256
IDEA
128
RC2-40
的随机数
客户
服务器 3.客户端对服务器证书进行验证,并
1. 所支持的加密算法,随机数 2. 选中的加密算法,随机数,证书
提取服务器公钥。然后产生预主密 钥随机密码串,并使用服务器公钥 加密。最后客户端将加密后的信息
3. 加密后的预主密钥
发送给服务器。
4. 计算密钥
4.客户端和服务器根据预主密钥以及
4. 计算密钥
SSL记录协议操作 By Introducing SSL and Certificates using SSLeay - Frederick J. hirsch
214字节
1. 分片 By Introducing SSL and Certificates using SSLeay - Frederick J. hirsch
后果
对策
信息丢失 机器损害 易受所有其他威胁的攻击
加密校验和
信息失窃 秘密失窃
加密、 WEB代理
中断 干扰 阻止正常工作
用户错误 相信虚假信息
难以防止 加密技术
Web安全的特点
▪ 提供双向的服务,攻击防范能力脆弱 ▪ 作为可视化窗口和商业交互平台,提供多种服务,事关声誉 ▪ 底层软件庞大,如apache约10M,历来是漏洞之最,攻击手段最多 ▪ 如果被攻破可能导致成为进入企业的跳板 ▪ 使用Web服务的用户没有有效防范的工具和知识
1.2 握手
一. 目的
1.客户端与服务器就一组用于保护数据的算法达成一致
2.需要确立与算法相关的密钥
1.客户端将自己支持的算法列表同用于生 成密钥的随机数一起发送给服务器
3.对服务器(客户端)的认证 2.服务器从列表中选择一种加密算法,并
二. 过程
将其连同一份包含服务器公钥的证书
分析
发给客户端,还提供了用于生成密钥
ClientKeyExchange:发送预主密钥
Finished:包含握手消息MAC
说明:省略了两条ChangeCipherSpec消息
SSL记录协议-SSL数据处理
记录:SSL处理的基本单位 发送方以记录为单位保护,接收方则以记录为单位检查
数据
数据分片
MAC
数据分片
MAC
记录头
加密的数据和MAC
(3)服务器认证 (4)客户端认证(可选) (5)简化客户端操作 (6)透明性:除Web外,还为其它应用提供安全性,这些应用
基于TCP,所以基于TCP实现,相当于一个安全的TCP。