基本安全协议与ASN.1编码.ppt
文本预览下载声明
7/8/2003 Internet安全协议及标准 Internet安全协议与标准第4课 唐礼勇 博士 tly@ 安全协议基础 Agenda 何谓协议 Base64编码 加密算法同明文相关的几个问题 一个简单协议的分析 安全消息系统-发送方 安全消息系统-接收方 安全消息系统-存在的问题 对单条消息工作得很好 可方便地用于电子邮件、文件等的安全传送 对要传输任意信息不适用 交互式应用 引入一个简单的安全协议(TSP: Toy Security Protocol) 不需为每个数据包都动用昂贵的公开密钥操作 实现证书发现 TSP (1) 基本步骤 假设通信双方:Alice, Bob 握手(Handshake) Alice和Bob使用他们的证书和私钥来对对方进行身份鉴别并交换共享密钥 导出密钥(Key derivation) Alice和Bob使用他们达成一致的共享密钥导出一组用于保护将要传输的数据的密钥 数据传输(Data transfer) 将要传输的数据分割成一系列的记录,并对每条记录加以保护 关闭连接(Connection closure) 使用特殊的、经过保护的关闭消息,安全地关闭连接 TSP (2) 握手阶段(Handshake) TSP (2) 握手阶段(Handshake) TSP (3) 制作一组密钥 原则上,使用同一个密钥来完成不同类型的加密操作被认为是糟糕的思想 每个方向上需要两个密钥,分别用于加密和消息鉴别(MAC) 可通过密钥导出函数(KDF)由MS和nonce导出 KDF一般基于Hash算法 一种最简单的KDF可能(当然现实的协议应该用更好的)如下: Ecs=Hash(MS,nonce,”ECS”) Mcs=Hash(MS,nonce,”MCS”) Esc=Hash(MS,nonce,”ESC”) Msc=Hash(MS,nonce,”MSC”) TSP (4) 数据记录 如何对数据打包 设想成在传输数据时对恒定的数据流加密 MAC如何处理?放最后吗? 解决方法 将数据分割成一系列记录,每个记录自带MAC 记录大小 定长:不经济 理想的应是变长记录,加上长度字段 记录格式 长度 + 数据 + MAC MAC计算 M=MAC(Mx,D) TSP (5) 序号 重放、删除、重排攻击 需要增加序号 序号必须是MAC输入的一部分 可以放在记录中 在基于TCP的连接中,也可以使用隐含序号 MAC的计算 M=MAC(Mx, Sequence || D) TSP (6) 控制信息 如何防止攻击者恶意切断连接 需要有一种机制使得Alice能告诉Bob(或反之),她已完成数据传送 两种方法 传送长度为0的记录 增加类型字段 增加类型字段后的记录格式 长度 + 序号 + 类型 + 数据 + MAC 类型为0:普通数据 类型为1:结束记录 类型为其他:报告错误信息 MAC的计算 M=MAC(Mx, Sequence || Type || D) TSP – 完整图示 TSP – 小结 实际上,TSP已经包含了SSL绝大多数的核心功能 握手 密钥交换 双向鉴别 保密传输 遗漏的部分 不完整,不包括具体实现细节 数据结构定义 每一字段大小 使用何种算法 涉及到数据结构表示、翻译等问题 更重要的是 缺少协商(negotiation)功能 涉及到Policy/Mechanism的问题 协议实现中的同消息传递有关的问题 可靠传输/不可靠传输 发送方能否知道传输中的错误 如果不能保证可靠传递,应用程序必须自己处理应答 阻塞/非阻塞 (Blocking/Nonblocking) 非阻塞 发出消息,然后返回 更加灵活,但难以调试 阻塞 发出消息,等待发送成功 ASN.1初步 Agenda Abstract Syntax Notation One (ASN.1) Overview 类型和值定义 简单类型 构造类型 Basic Encoding Rules (BER) Overview Type-Length-Value/Identifier-Length-Content 编码示例 其他编码方式 Distinguished Encoding Rules (DER) ASN.1开发流程 ASN.1 - Overview 一种独立于机器的描述语言,用于描述在网络上传递的消息 ITU-T(X.680)和ISO (ISO 8824-1)标准 定义应用程序数据的抽象语法 定义应用程序数据结构和表示协议数据单元(PDUs) 独立于机器、语言及应用程序内部表示 ASN.1特别适合表示现代通信应用中那些复杂的、变化的及可扩展的数据结构 类似标准有 IDL XDR XML ASN.1 可分为两个部分 语法规则:从数据类型、内容顺序或结构等方面来描述消息的
显示全部