信息安全系统工程SSL和OpenSSL精要

上传人:我** 文档编号:117884968 上传时间:2019-12-11 格式:PPTX 页数:81 大小:1.41MB
返回 下载 相关 举报
信息安全系统工程SSL和OpenSSL精要_第1页
第1页 / 共81页
信息安全系统工程SSL和OpenSSL精要_第2页
第2页 / 共81页
信息安全系统工程SSL和OpenSSL精要_第3页
第3页 / 共81页
信息安全系统工程SSL和OpenSSL精要_第4页
第4页 / 共81页
信息安全系统工程SSL和OpenSSL精要_第5页
第5页 / 共81页
点击查看更多>>
资源描述

《信息安全系统工程SSL和OpenSSL精要》由会员分享,可在线阅读,更多相关《信息安全系统工程SSL和OpenSSL精要(81页珍藏版)》请在金锄头文库上搜索。

1、一、一个简单的安全协议 n1、协议概述 n2、协议过程 一个简单的安全协议 n由于SSL协议的复杂性,为了更好地理解 SSL,引入一个简单的安全协议,该协议适 合于交互式应用。 n该协议的主要目标: n1、保证通信数据的机密性; n2、保证通信数据的完整性; n3、确保通信双方身份的可靠性; n4、不需为每个数据包都动用昂贵的公开密钥 操作,具有较高的效率。 协议过程 n基本步骤(假设通信双方为Alice、Bob): n1、握手(Handshake) nAlice和Bob使用他们的证书和私钥来对对方进行身份鉴别并交 换共享密钥(MSMaster secret) n2、导出密钥(Key deri

2、vation) nAlice和Bob使用他们达成一致的共享密钥(MS)导出一组用 于保护将要传输的数据的密钥(Session Key) n3、数据传输(Data transfer) n将要传输的数据分割成一系列的记录,并对每条记录加以保护 n4、关闭连接(Connection closure) n使用特殊的、经过保护的关闭消息,安全地关闭连接 协议过程握手 n握手阶段(Handshake) Alice Bob HelloHello CertificateCertificate( BobBob) Encrypt(Encrypt(Bob,MSBob,MS)=EMS)=EMS 单向单向鉴别(结束后双

3、方获得主密钥鉴别(结束后双方获得主密钥MSMS) 声称的身份(Bob ) 掌握Bob的私 钥才能解密 ,从而完成 身份证明 Alice产生主 密钥MS,并 用Bob公钥加 密(挑战) 协议过程握手(续) n握手阶段(Handshake) AliceAlice BobBob Hello, Certificate (AliceHello, Certificate (Alice) ) Certificate (Bob)Certificate (Bob) Sign(Alice,Encrypt(Bob,MS) 双向鉴别(结束后双方获得主密钥双向鉴别(结束后双方获得主密钥MSMS) Alice产生主 密钥

4、MS,并 用Bob公钥加 密(挑战) ,再用自己 私钥签名( 证明自己) 协议过程导出密钥 n使用同一个密钥来完成不同类型的加密操作是糟糕的思想 n本协议在每个传输方向上可以采用两个会话密钥,分别用 于加密和消息鉴别(MAC): n会话密钥可通过密钥导出函数(Key Derivation Function,KDF) 由 MS 和 nonce 导出; nKDF 一般基于 Hash 算法。 n一种最简单的 KDF 可能如下(由同一个主密钥MS生成了 四个不同的会话密钥): nEcs=Hash(MS, nonce, ”ECS”) /”ECS”等是一个常量 nMcs=Hash(MS, nonce, ”

5、MCS”) /E是加密密钥,M是MAC密钥 nEsc=Hash(MS, nonce, ”ESC”) /cs和sc是传输方向 nMsc=Hash(MS, nonce, ”MSC”) 协议过程数据传输 n数据记录 n为实现数据传输的灵活性,必须对数据分块(记录) 传输 n数据分块后 MAC 如何处理,放最后吗? n解决方法:分块后,每个记录应该自带 MAC n记录大小 n定长,不经济 n理想的应是变长记录,每个记录要加上长度字段 n记录格式 n长度Mx + 数据D + MAC nMAC计算 nM=MAC(Mx,D) 协议过程数据传输(续) n序号 n为对抗重放、删除、重排攻击,需要增加序号 Seq

6、uence n序号必须是 MAC 输入的一部分 n可以放在记录中 n在基于TCP的连接中,也可以使用隐含序号 nMAC的计算 nM=MAC(Mx, Sequence | D) 协议过程关闭连接 n控制信息 n为防止攻击者恶意切断连接,需要有一种机制使得Alice能告诉 Bob(或反之),她已完成数据传送 n两种方法 n1、传送长度为 0 的记录 n2、在记录中增加类型字段 n增加类型字段后的记录格式 n长度Mx + 序号Sequence + 类型Type + 数据D + MAC 类型为 0:普通数据 类型为 1:结束记录 类型为其他:报告错误信息 nMAC的计算 nM=MAC(Mx, Sequ

7、ence | Type | D) 协议过程完整图示 AliceAlice Bob HelloHello Certificate,nonceCertificate,nonce Sign(Alice,Encrypt(Bob,MS)Sign(Alice,Encrypt(Bob,MS) Type 0, Seq 1, DataType 0, Seq 1, Data Type 0, Seq 2, DataType 0, Seq 2, Data Type 0, Seq 1, DataType 0, Seq 1, Data Type 0, Seq 3, DataType 0, Seq 3, Data Type

8、 1, Seq 4, CloseType 1, Seq 4, Close Type 1, Seq 2, CloseType 1, Seq 2, Close 协议小结 n该简单协议已经包含了SSL绝大多数的核心功能 n握手 n密钥交换 n双向鉴别 n保密传输 n遗漏的部分 n不完整,不包括具体实现细节 n数据结构定义 n每一字段大小 n使用何种算法 n涉及到数据结构表示、翻译等问题 n更重要的是 n缺少协商(negotiation)功能 二、SSL协议 n1、SSL协议概述 n2、SSL的会话和连接 n3、SSL的握手协议 n4、SSL的Change Cipher Spec协议 n5、SSL的A

9、lert协议 n6、SSL的记录协议 1、SSL协议概述 nSSL:Secure Socket Layer (安全套接层) nSSL是用于Internet上两台机器间提供安全 通道的协议,主要有两项功能: n保护传输数据(机密性和完整性); n识别通信机器(认证性)。 nSSL协议的安全通道是透明的 n对传输的数据内容上不加变更,仅作了加密; n透明性使得几乎所有基于TCP的协议稍加改动 就可以在SSL上运行。 SSL的历史 SSLv1(1994SSLv1(1994,Netscape)Netscape) 未发布未发布 SSLv2(1994)SSLv2(1994) 第一版第一版 SSLv3(19

10、95)SSLv3(1995) 只进行认证的模式只进行认证的模式;DH,DSS;DH,DSS; 关闭握手关闭握手; ;再握手再握手; ;证书链证书链 TLS(1997-1999)TLS(1997-1999) IETF;IETF;必须支持必须支持DH,DSS;DH,DSS; 新的新的MACMAC算法算法; ;新的密钥扩展新的密钥扩展 TLSTLS:Transport Layer SecurityTransport Layer Security; TLSV1.0TLSV1.0是一个是一个InternetInternet协议,完全建立在协议,完全建立在SSL V3SSL V3的基础上,又称为的基础上,

11、又称为 SSLv3.1SSLv3.1; RFC2246RFC2246:The TLS Protocol Version 1.0The TLS Protocol Version 1.0 Rfc3546Rfc3546:Transport Layer Security (TLS) ExtensionsTransport Layer Security (TLS) Extensions SSL在协议栈中的位置 IP HTTPFTPSMTP TCP SSL or TLS 应用层应用层 表示层表示层 会话层会话层 传输传输层(层(TCPTCP) 网络层(网络层(IPIP) 数据链路层数据链路层 物理层物理层

12、 应用层应用层 表示层表示层 会话层会话层 传输传输层(层(TCPTCP) 网络层(网络层(IPIP) 数据链路层数据链路层 物理层物理层 物理介质物理介质 主机主机 A A主机主机 B B 在分层模型下,某层进行了加密,则上层协议都将自动被加密在分层模型下,某层进行了加密,则上层协议都将自动被加密 网络协议栈 TCP/IP协议报文封装 在分层模型下,某层进行了加密,则上层协议都将自动被加密在分层模型下,某层进行了加密,则上层协议都将自动被加密 SSLSSL的保的保 护区域护区域 SSL协议的使用 n用于Web的SSL n nhttps的端口:一般为 443; n在SSL上构建一切 nftps

13、-data(989), ftps(990) nnntps (563) npop3s(995) ntelnets(992) n目前SSL的主要应用范围是 http 协议。 加密传输加密传输 WWWWWW 服务器服务器 HTTPs HTTPs over SSLover SSL InternetInternet 客户浏览器客户浏览器 (1, 2, n)(1, 2, n) 路由器路由器 路由器路由器 路由器路由器 攻击者攻击者 实际的报文传输实际的报文传输 物理路径物理路径 利用利用SSLSSL构建的端到端的构建的端到端的 逻辑安全通道逻辑安全通道 SSL加密前明文数据(104协议) SSL加密后数据

14、 利用利用 WireSharkWireShark 抓包分析抓包分析 SSL的体系结构 SSLSSL由由 HandshakeHandshake、Change Cipher SpecChange Cipher Spec、Alert Alert 和和 Record Record 这四个子协议组成这四个子协议组成 2、SSL连接和会话 n连接(Connection):指一次提供适当类型服务的传送。 n会话(Session): n由握手协议创建; n定义了一组可以被多个连接共用的密码安全参数。 n连接 vs 会话 n在任意一对的双方之间,也许会有多个安全连接; n理论上,双方可以存在多个同时会话,但在实

15、践中并未用到这个 特性。 会话状态参数 (48字节) 会话状态中的Cipher spec Enum stream, block CipherType; Enum true, false IsExportable; Enum null, rc4, rc2, des, 3des, des40, idea, fortezza BulkCipherAlgorithm; Enum null, md5, sha MACAlgorithm; Struct BulkCipherAlgorithm Bulk_Cipher_Algorithm; MACAlgorithm MAC_Algorithm; Cipher

16、Type Cipher_Type; IsExportable Is_Exportable; Uint8 hash_size; /MAC的长度 Uint8 key_material; /对称加密密钥的长度 Uint8 IV_size; /IV的长度(CBC模式使用) CipherSpec; 连接状态参数 上述状态中的各种密钥 nSSL使用两个相互独立的密钥,即Server write key和 client write key,分别用于同一连接的两个方向上的加解 密,对于MAC操作也一样。 n各个密钥的关系如下: pre_master_secretpre_master_secretmaster secretmaster secret Client write MAC secretClient

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号