3511efe834808bc429b5f2df86de8914.ppt
- Количество слайдов: 75
网络与信息安全 安全基础 (三) 潘爱民,北京大学计算机研究所 http: //www. icst. pku. edu. cn/Info. Sec. Course
内容 u IPSec Ø Ø u 协议 密钥管理 PKI
IATF(信息保障技术框架)的范围 Enclave Boundaries Networks & Infrastructures Classified Enclave Local Computing Environment Telecommunications Service Providers (TSPs) Via TSPs Remote Users Classified Networks Private Networks Local Computing Environment Remote Users Via TSPs Public Network (Internet) Public Enclave Local Computing Environment Remote Users Remote Connections Via TSPs Remote Users Internet Service Provider Public Telephone Network Connections to Other Enclaves Private Enclave PBX Facility Enclave Boundaries Boundary Protection (Guard, Firewall, etc. ) Remote Access Protection (Communications Servers, Encryption, etc. ) Supporting Infrastructures: 1 Detect & Respond 2 Key Management Infrastructure/Public Key Infrastructure
IPSec u 网络层安全性 Ø Ø Ø u 需求:真实性(认证)、完整性和保密性 好处:对于应用层透明 可以针对链路,也可以针对最终用户 可以实现在防火墙或者路由器上 弥补IPv 4在协议设计时缺乏安全性考虑的不足 IPSec是IETF定义的一组安全IP协议集 Ø Ø Ø 它在IP包这一级为IP通讯业务提供保护 IPv 4中是一项可选支持的服务,在IPv 6中是一项必须 支持的服务 本课程只讨论IPv 4的情形
IPSec的内容 u 协议部分,分为 Ø Ø u AH: Authentication Header ESP: Encapsulating Security Payload 密钥管理(Key Management) Ø Ø SA(Security Association) ISAKMP定义了密钥管理框架 Ø IKE是目前正式确定用于IPSec的密钥交换协议
SA(Security Association) u 基本概念 Ø Ø u SA与IPSec系统中实现的两个数据库有关 Ø Ø u 是发送者和接收者两个IPSec系统之间的一个简单的 单向逻辑连接,是与给定的一个网络连接或一组网络 连接相关联的安全信息参数集合 因为SA是单个方向的,所以,对于一个双向通信, 则需要两个SA 安全策略数据库(SPD) 安全关联数据库(SAD) 每个SA通过三个参数来标识 Ø Ø Ø SPI(Security Parameters Index) 目标地址IP 安全协议标识
SPD & SAD u SPD Ø 对于通过的流量的策略 Ø Ø Ø u 三种选择:discard, bypass IPsec, apply Ipsec 管理界面 条目的粒度不必很细,因为作用在IP包上 SAD,通常用到以下一些域 Ø Ø Ø Ø Ø Sequence Number Counter Sequence Counter Overflow Anti-Replay Window AH Authentication algorithm, keys, etc ESP Encryption algorithm, keys, IV mode, IV, etc ESP authentication algorithm, keys, etc Lifetime of this Security Association IPsec protocol mode Path MTU
AH(Authentication Header) u u u 为IP包提供数据完整性和认证功能 利用MAC码实现认证,双方必须共享一个 密钥 认证算法由SA指定 Ø u 认证的范围:整个包 两种认证模式: Ø Ø 传输模式:不改变IP地址,插入一个AH 隧道模式:生成一个新的IP头,把AH和原来 的整个IP包放到新IP包的净荷数据中
AH两种模式示意图 传输模式 隧道模式
IPSec Authentication Header u u u Next Header: 下一个头的类型 Payload Length:AH的长度(32位字为单位) SPI:用来标识SA Sequence Number:用来避免重放攻击 Authentication Data:可变长度的域,包含针对这个包 的ICV或者MAC
AH处理过程 u AH定位 Ø u 认证算法 Ø u 在IP头之后,在上层协议数据之前 计算ICV或者MAC 对于发出去的包(Outbound Packet )的处理,构 造AH Ø Ø Ø 查找SA 产生序列号 计算ICV(Integrity Check Value) Ø Ø 内容包括:IP头中部分域、AH自身、上层协议数据 分片
AH处理过程(续) u 对于接收到的包(Inbound Packet )的处理 Ø Ø 分片装配 查找SA Ø Ø 检查序列号(可选,针对重放攻击) Ø Ø 依据:目标IP地址、AH协议、SPI 使用一个滑动窗口来检查序列号的重放 ICV检查
ESP(Encapsulating Security Payload) u u 提供保密功能,也可以提供认证服务 将需要保密的用户数据进行加密后再封装 到一个新的IP包中,ESP只认证ESP头之 后的信息 加密算法和认证算法由SA指定 也有两种模式:传输模式和隧道模式
ESP两种模式示意图 经认证的数据 经加密的数据 Orig IP Hdr ESP hdr TCP Data ESP trlr ESP auth (1) 传输模式 经认证的数据 经加密的数据 New IP ESP Hdr hdr Orig IP TCP hdr Data (2) 隧道模式 ESP trlr ESP auth
IPSec ESP格式 0 认 证 保 范 密 围 范 围 8 16 24 Security Parameters Index (SPI) Sequence Number 32 Payload Data (variable) Padding (0 -255 bytes) Pad Length Next Header Authentication Data (variable)
ESP处理过程 u ESP头定位 加密算法和认证算法由SA确定 u 对于发出去的包(Outbound Packet )的处理 u Ø Ø 查找SA 加密 Ø Ø Ø 封装必要的数据,放到payload data域中 不同的模式,封装数据的范围不同 增加必要的padding数据 加密操作 产生序列号 计算ICV,注意,针对加密后的数据进行计算 分片
ESP处理过程(续) u 对于接收到的包(Inbound Packet )的处理 Ø Ø 分片装配 查找SA Ø Ø 检查序列号(可选,针对重放攻击) Ø Ø Ø 依据:目标IP地址、ESP协议、SPI 使用一个滑动窗口来检查序列号的重放 ICV检查 解密 Ø Ø Ø 根据SA中指定的算法和密钥、参数,对于被加密部分的数 据进行解密 去掉padding 重构原始的IP包
AH和ESP的典型组合 Transport --------- Tunnel ----------- 1. [IP 1][AH][upper] 4. [IP 2][AH][IP 1][upper] 2. [IP 1][ESP][upper] 5. [IP 2][ESP][IP 1][upper] 3. [IP 1][AH][ESP][upper] u u u 这里upper指上层协议数据 IP 1指原来的IP头 IP 2指封装之后的IP头
IPSec实现 u 实现形式 Ø 与IP协议栈紧密集成 Ø Ø Ø (BITS) Bump-in-the-stack Ø Ø Ø 要求访问IP协议栈的源代码 既适用于主机模式,也适用于安全网关 位于IP协议栈和网络驱动程序之间 通常适用于主机模式 BITW (Bump-in-the-wire) Ø Ø 如果是在单独的主机上,类似于BITS情形 如果一个BITW设备,通常是可IP寻址的
IPSec密钥管理 u ISAKMP: Internet Security Association and Key Management Protocol Ø Ø u RFC 2408 是一个针对认证和密钥交换的框架 IKE: The Internet Key Exchange Ø Ø 基于ISAKMP框架 结合了Oakley和SKEME的部分密钥交换技术
ISAKMP u 基本的需求 Ø 商定SA Ø Ø u 确定身份,密钥交换 与协议、算法、厂商都无关 框架结构 Ø Ø 针对身份认证和密钥交换的协商过程 定义了基本的消息结构 定义了各种消息类型和payload结构 提供了几种缺省的密钥交换模型
ISAKMP消息结构 u ISAKMP头部结构 u ISAKMP的payload结构
各种payload Type Security Association(SA) Proposal(P) Transform(T) Key Exchange(KE) Identification(ID) Certificate(CERT) Certificate Request(CR) Hash(HASH) Signature(SIG) Nonce(NONCE) Notification(N) Delete(D) Parameters DOI, Situation Proposal #, Protocol-ID, … Transform #, SA Attributes Key Exchange Data ID type, ID date Cert Encoding, Certificate data #Cert types, Cert auths, … Hash Data Signature Data Nonce Data DOI, Protocol-ID, …
两阶段协商 (Two phases of negotiation) u The first phase, 建立起ISAKMP SA Ø Ø u 双方(例如ISAKMP Servers)商定如何保护以后的通 讯 此SA将用于保护后面的protocol SA的协商过程 The second phase, 建立起针对其他安全协议 的SA(比如,IPSec SA) Ø Ø 这个阶段可以建立多个SA 此SA将被相应的安全协议用于保护数据或者消息的 交换
两阶段协商的好处 u u 对于简单的情形,两阶段协商带来了更多的通讯开 销 但是,它有以下一些好处 Ø Ø 第一阶段的开销可以分摊到多个第二阶段中 所以,这允许多个SA建立在同样的ISAKMP SA基础上 第一阶段商定的安全服务可以为第二阶段提供安全特性 Ø Ø 例如,第一阶段的ISAKMP SA提供的加密功能可以为第二阶 段提供身份认证特性,从而使得第二阶段的交换更为简单 两阶段分开,提供管理上的便利
回顾: Diffie-Hellman密钥交换 u u u 允许两个用户可以安全地交换一个秘密信息,用 于后续的通讯过程 算法的安全性依赖于计算离散对数的难度 算法: Ø Ø Ø u 双方选择素数q以及q的一个原根r A选择X<q, 计算XA=r. Xmod p, A B: XA B选择Y<q, 计算YB=r. Ymod p, B A: YB A计算: (YB)X (r. Y)X r. XYmod p B计算: (XA)Y (r. X)Y r. XYmod p 双方获得一个共享密钥(r. XYmod p) 素数q以及q的原根r如何确定?
Cookie exchange u 背景: Diffie-Hellman密钥交换算法面临的问题 Ø Ø u Cookie exchange Ø u 要求每一方在初始消息中发送一个伪随机数,即cookie,而另 一方对此做出相应的应答 Cookie的要求 Ø Ø Ø u 中间人攻击、重放攻击 Clogging attack Cookie的值必须依赖于特定的参与方,即与参与方的某种标识 关联 除了产生cookie的这一方之外,其他人都无法产生出可被他接 受的cookie值,所以,产生和验证cookie时都会用到本地的秘 密信息 Cookie的产生和验证方法必须足够快速 一个例子:对IP源和目标地址、源和目标端口,以及一 个本地秘密值做一个hash算法的结果
ISAKMP的消息交换 u ISAKMP定义了5种消息交换类型 Ø Base Exchange Ø Ø Identity Protection Exchange Ø Ø 只有认证(对消息的认证) Aggressive Exchange Ø Ø 交换密钥,也提供身份保护 Authentication Only Exchange Ø Ø 交换密钥,但是不提供身份保护 只有三条消息,类似于base exchange Informational Exchange Ø 传输信息,用于SA管理
IKE中几个概念 u PFS: Perfect Forward Secrecy Ø u Phase Ø u 同ISAKMP中的phase Group Ø u 一旦一个密钥被泄漏,只会影响到被一个密钥保护的 数据 Oakley定义的Diffie-Hellman密钥交换参数 Mode Ø Ø Ø 来自Oakley中的定义 指一个密钥交换过程 四个mode Ø Ø Ø Main Mode, Aggressive Mode用于phase 1 Quick Mode用于phase 2 New Group Mode用在phase 1之后,为将来的协商商定一 个新的组
IKE中的组 u IKE定义了四个组(Diffie Helman参数设定) Ø 768 -bit MODP group Ø Ø Ø 1024 -bit MODP group Ø Ø 参数:q = 2^768 - 2 ^704 - 1 + 2^64 * { [2^638 pi] + 149686 } α=2 参数:q = 2^1024 - 2^960 - 1 + 2^64 * { [2^894 pi] + 129093 } α=2 EC 2 N group on GP[2^155] EC 2 N group on GP[2^185]
IKE中的密钥交换——Main Mode u 是ISAKMP的Identity Protection Exchange的一个实例 I -> R: SA R -> I: SA I -> R: KE; NONCE R -> I: KE; NONCE I -> R: IDI; AUTH (加密传输) R -> I: IDR; AUTH (加密传输) Ø Ø Ø u 前两条消息商定策略 接下来两条消息交换密钥资料 最后两条消息认证Diffie-Hellman Exchange 用于phase 1
IKE中的密钥交换——Aggressive Mode u 是ISAKMP的Aggressive Exchange的一 个实例 I -> R: SA; KE; NONCE; IDI R -> I: SA; KE; NONCE; IDR; AUTH I -> R: AUTH (加密传输) Ø Ø Ø u 前两条消息商定策略,交换Diffie-Hellman公 开的值,以及必要的辅助资料,和个人标识 第二条消息也认证应答者 第三条消息认证发起者 用于phase 1
IKE Phase 1中的认证方案 u IKE Phase 1 Authenticated With Signatures u Phase 1 Authenticated With Public Key Encryption u Phase 1 Authenticated With a Pre. Shared Key
IKE中的密钥交换——Quick Mode u 在ISAKMP中没有对应的交换类型 I -> R: SA; NONCE; [IDI, IDR, KE]; HASH(1) R -> I: SA; NONCE; [IDI, IDR, KE]; HASH(2) I -> R: HASH(3) 以上消息都是加密传输 u 如果PFS不需要的话,则可以不传KE u 只用于第二阶段
IKE中的密钥交换——New Group Mode u 在ISAKMP中没有对应的交换类型 I -> R: SA; HASH(1) R -> I: SA; HASH(2) 以上消息都是加密传输 u 用于第一阶段之后
IPSec和IKE小结 u IPSec在网络层上提供安全服务 Ø u IKE提供了密钥交换功能 Ø u u u 定义了两个协议AH和ESP 利用ISAKMP提供的框架、以及Oakley和SKEME的密钥 交换协议的优点 通过SA把两部分连接起来 已经发展成为Internet标准 一些困难 Ø IPSec太复杂 Ø Ø Ø 协议复杂性,导致很难达到真正的安全性 管理和配置复杂,使得安全性下降 实现上的兼容性 攻击:DOS,网络层之下的协议、之上的协议的弱点 还在进一步完善
IPSec实现 u 一些网络设备厂商 Ø u 各种操作系统 Ø u u u 比如CISCO等 例如Linux、各种UNIX版本 IPv 6实现 一些VPN软件包 ……
Windows 2000和XP下的IPSec u 文章 Ø Ø Ø u 实现特点 Ø Ø Ø u http: //online. securityfocus. com/infocus/1519 http: //online. securityfocus. com/infocus/1526 http: //online. securityfocus. com/infocus/1528 与IETF兼容 支持Kerberos、基于证书的认证、基于共享密钥的认证 一些不受IPSec保护的流量:广播包、组播包、RSVP包、IKE包、 Kerberos包 与L 2 TP结合起来提供安全的VPN远程访问 不能与NAT协同 作 仍然面临一些攻击:DOS,其他层上协议的攻击 对比Free. BSD的实现: http: //www. freebsd. org/doc/en_US. ISO 88591/books/handbook/ipsec. html
Windows 2000和XP下的IPSec管理 具 u IPSec Security Policies snap-in for the MMC (secpol. msc) u. IPSecmon. exe
回顾:公钥技术 u 公钥技术 Ø Ø Ø 建立在非对称密码算法基础上 公钥和私钥对 服务:保密性和认证
回顾:数字签名 u 两种数字签名方案
密钥对的用法 u 用于加密的密钥对 用公钥加密 用私钥解密 u 用于签名的密钥对 用私钥签名 用公钥验证
PKI之动机 u 公钥技术 Ø Ø Ø 如何提供数字签名功能 如何实现不可否认服务 公钥和身份如何建立联系 Ø Ø u 为什么要相信这是某个人的公钥 公钥如何管理 方案:引入证书(certificate) Ø 通过证书把公钥和身份关联起来
密钥生命周期 密钥产生 证书签发 Bob 密钥使用 证书检验 Bob 密钥过期 密钥更新
PKI(Public Key Infrastructure) u 定义: Ø u 用公钥原理和技术实施和提供安全服务的具有普适性 的安全基础设施 一个完整的PKI应该包括 Ø Ø Ø Ø Ø 认证机构(CA) 证书库 证书注销 密钥备份和恢复 自动密钥更新 密钥历史档案 交叉认证 支持不可否认 时间戳 客户端软件
PKI提供的基本服务 u 认证 Ø 采用数字签名技术,签名作用于相应的数据之上 Ø Ø Ø u 完整性 Ø PKI采用了两种技术 Ø Ø u 数字签名:既可以是实体认证,也可以是数据完整性 MAC(消息认证码):如DES-CBC-MAC或者HMAC-MD 5 保密性 Ø u 被认证的数据 —— 数据源认证服务 用户发送的远程请求 —— 身份认证服务 远程设备生成的challenge信息 —— 身份认证 用公钥分发随机密钥,然后用随机密钥对数据加密 不可否认 Ø Ø 发送方的不可否认 —— 数字签名 接受方的不可否认 —— 收条 + 数字签名
PKI的应用考虑 u 在提供前面四项服务的同时,还必须考虑 Ø 性能 Ø Ø Ø 在线和离线模型 Ø Ø 签名的验证可以在离线情况下完成 用公钥实现保密性也可以在离线情况下完成 离线模式的问题:无法获得最新的证书注销信息 证书中所支持算法的通用性 Ø Ø 尽量少用公钥加解密操作,在实用中,往往结合对称密码技 术,避免对大量数据作加解密操作 除非需要数据来源认证才使用签名技术,否则就使用MAC 或者HMAC实现数据完整性检验 在提供实际的服务之前,必须协商到一致的算法 个体命名 Ø 如何命名一个安全个体,取决于CA的命名登记管理 作
PKI基本组件 u RA(Registration Authority) Ø u CA(Certificate Authority) Ø u 把用户的身份和它的密钥绑定起来——建立 信任关系 发证 证书库/目录 Ø 保存证书,供公开访问
证书的注销机制 u 由于各种原因,证书需要被注销 Ø u PKI中注销的方法 Ø u 比如,私钥泄漏、密钥更换、用户变化 CA维护一个CRL(Certificate Revocation List) 基于Web的CRL服务 Ø Ø 检查CRL的URL应该内嵌在用户的证书中 可以提供安全途径(SSL)访问URL 返回注销状态信息 其他的用法由浏览器决定
PKI中的证书 u u u 证书(certificate),有时候简称为cert PKI适用于异构环境中,所以证书的格式 在所使用的范围内必须统一 证书是一个机构颁发给一个安全个体的证 明,所以证书的权威性取决于该机构的权 威性 一个证书中,最重要的信息是个体名字、 个体的公钥、机构的签名、算法和用途 签名证书和加密证书分开 最常用的证书格式为X. 509 v 3
X. 509证书格式 u u 版本 1、2、3 序列号 Ø u 签名算法标识符 Ø u CA的名字 有效时间 Ø u 指该证书中的签名算法 签发人名字 Ø u 在CA内部唯一 起始和终止时间 个体名字
X. 509证书格式(续) u 个体的公钥信息 Ø Ø Ø u u 算法 参数 密钥 签发人唯一标识符 个体唯一标识符 扩展域 签名
X. 509证书示意图
CA(Certificate Authority) u 职责 Ø Ø Ø u 接受用户的请求 (由RA负责对用户的身份信息进行验证) 用自己的私钥签发证书 提供证书查询 接受证书注销请求 提供证书注销表 各个组件和功能示意图 健壮的数据 库系统 密钥 PKI 无缝的目录接口 CA硬件 安全的审计 管理和运 行平台
密钥备份和恢复 PKI RA Help!! 最终用户 Password? ? 授权恢 复密钥 进一步授权 (# 可定制) 新的签名密钥对 和证书 加密密钥的历史
CA密钥更新 u 保证透明性 CA Aug Jul Jun May Apr Mar Feb Jan Dec Nov Oct 1999 Sep 1998 用于验证的CA公钥 用于签名的CA私钥 新的CA签名 密钥对 最终用户 CA密钥历史保证对于 最终用户和其他的PKI 是透明的
CA信任关系 u 当一个安全个体看到另一个安全个体出示的证书 时,他是否信任此证书? Ø u 可信CA Ø u 信任难以度量,总是与风险联系在一起 如果一个个体假设CA能够建立并维持一个准确的“个 体-公钥属性”之间的绑定,则他可以信任该CA,该 CA为可信CA 信任模型 Ø Ø Ø 基于层次结构的信任模型 交叉认证 以用户为中心的信任模型
CA层次结构 u u 对于一个运行CA的大型权威机构而言,签发证 书的 作不能仅仅由一个CA来完成 它可以建立一个CA层次结构 根CA 中间CA
CA层次结构的建立 u u u 根CA具有一个自签名的证书 根CA依次对它下面的CA进行签名 层次结构中叶子节点上的CA用于对安全个体进 行签名 对于个体而言,它需要信任根CA,中间的CA可 以不必关心(透明的);同时它的证书是由底层的 CA签发的 在CA的机构中,要维护这棵树 Ø 在每个节点CA上,需要保存两种cert (1) Forward Certificates: 其他CA发给它的certs (2) Reverse Certificates: 它发给其他CA的certs
层次结构CA中证书的验证 u u 假设个体A看到B的一个证书 B的证书中含有签发该证书的CA的信息 沿着层次树往上找,可以构成一条证书链,直到 根证书 验证过程: Ø Ø Ø u 沿相反的方向,从根证书开始,依次往下验证每一个 证书中的签名。其中,根证书是自签名的,用它自己 的公钥进行验证 一直到验证B的证书中的签名 如果所有的签名验证都通过,则A可以确定所有的证 书都是正确的,如果他信任根CA,则他可以相信B的 证书和公钥 问题:证书链如何获得?
证书链的验证示例
交叉认证 u 两个不同的CA层次结构之间可以建立信任关系 Ø 单向交叉认证 Ø Ø u 双向交叉认证可以分为 Ø Ø u 一个CA可以承认另一个CA在一定名字空间范围内的所有被 授权签发的证书 域内交叉认证(同一个层次结构内部) 域间交叉认证(不同的层次结构之间) 交叉认证的约束 Ø Ø Ø 名字约束 路径长度约束 策略约束
以用户为中心的信任模型 u u 对于每一个用户而言,应该建立各种信任关系, 这种信任关系可以被扩展 例子:用户的浏览器配置
以用户为中心的信任模型示例:PGP
与PKI有关的标准情况 u u u Certificates —— X. 509 v. 3 交叉认证 —— PKIX group in IETF(RFC 2459) 智能卡/硬件插件 PKCS #11 PKCS系列 目录服务LDAP
PKCS系列标准 u PKCS #1 Ø u PKCS #3 Ø u Extended-Certificate Syntax Standard PKCS #7 Ø u Password-Based Encryption Standard PKCS #6 Ø u Diffie-Hellman Key-Agreement Standard PKCS # 5 Ø u RSA Encryption Standard Cryptographic Message Syntax Standard PKCS #8 Ø Private-Key Information Syntax Standard
PKCS系列标准(续) u PKCS #9 Ø u PKCS #10 Ø u Personal Information Exchange Standard PKCS #13 Ø u Cryptographic Token Interface Standard PKCS #12 Ø u Certification Request Syntax Standard PKCS #11 Ø u Selected Attribute Types Elliptic Curve Cryptography Standard PKCS #15 Ø Cryptographic Token Information Format Standard
客户通过Web申请一个证书 PKCS#10
CA处理证书请求 PKCS#7
PKI应用 u 基本的应用 Ø Ø Ø u 文件保护 E-mail Web应用 其他 Ø Ø Ø VPN SSL/TLS XML/e-business WAP ……
PKI实现的选择 u u u 建立自己的PKI 购买一个PKI 从第三方购买PKI服务 等待一个政府PKI PKI和应用联合开发,相互协作
Windows 2000中的PKI u Windows 2000中的安全模块示意图
Windows 2000中的证书存储区
Windows 2000中,获得密钥对和证书
参考资料 u 书 Ø Ø Ø u 文章 Ø Ø Ø u William Stallings, Cryptography and network security: principles and practice, Second Edition 冯登国,计算机通信网络安全,清华大学出版社,2001 David Chappell, Understanding Microsoft Windows 2000 Distributed Services, 中文版(清华大学出版社,潘爱民译), 2001 RFC 2401, Security Architecture for the Internet Protocol RFC 2402, IP Authentication Header RFC 2406, IP Encapsulating Security Payload (ESP) RFC 2408, Internet Security Association and Key Management Protocol (ISAKMP) RFC 2409, The Internet Key Exchange(IKE) Web站点 Ø RSA公司,http: //www. rsasecurity. com/
3511efe834808bc429b5f2df86de8914.ppt