Download presentation
Presentation is loading. Please wait.
1
Chapter 8 Network Security
Computer Networking: A Top Down Approach 6th edition Jim Kurose, Keith Ross Addison-Wesley March 2012 A note on the use of these ppt slides: We’re making these slides freely available to all (faculty, students, readers). They’re in PowerPoint form so you see the animations; and can add, modify, and delete slides (including this one) and slide content to suit your needs. They obviously represent a lot of work on our part. In return for use, we only ask the following: If you use these slides (e.g., in a class) that you mention their source (after all, we’d like people to use our book!) If you post any slides on a www site, that you note that they are adapted from (or perhaps identical to) our slides, and note our copyright of this material. Thanks and enjoy! JFK/KWR All material copyright J.F Kurose and K.W. Ross, All Rights Reserved
2
Chapter 8: Network Security
Chapter goals: 理解网络安全原理: 加密 身份鉴别 报文完整性 网络安全应用: 防火墙和入侵检测系统 应用层、传输层、网络层和链路层上的安全 8: Network Security
3
Chapter 8 roadmap 8.1 What is network security?
8.2 Principles of cryptography 8.3 Message integrity and Digital Signature 8.4 End point authentication 8.5 Securing 8.6 Securing TCP connections: SSL 8.7 Network layer security: IPsec 8.8 Securing wireless LANs 8.9 Operational security: firewalls and IDS 8: Network Security
4
什么是网络安全? 网络安全的通用定义: 网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不受偶然的或者恶意的原因而遭到破坏、更改、泄露,系统连续可靠地运行,网络服务不中断。
5
网络中的通信安全 机密性: 端点鉴别: 报文完整性: 运行安全性: 报文内容的机密性 通信活动的机密性 发送者和接收者能够证实对方的身份
报文来自真实的源,且传输过程中未被修改 运行安全性: 网络不受攻击,网络服务可用 8: Network Security
6
安全攻击的类型:被动攻击 试图从系统中获取信息,但不对系统产生影响 两种类型: 偷听:监听并记录网络中传输的内容
流量分析:从通信频度、报文长度等流量模式推断通信的性质
7
安全攻击的类型:主动攻击 试图改变系统资源或影响系统的操作 四种类型: 伪装:一个实体假冒另一个实体
重放:从网络中被动地获取一个数据单元,经过一段时间后重新发送到网络中 报文修改:改变报文的部分内容、推迟发送报文或改变报文的发送顺序 拒绝服务:阻止通信设施的正常使用或管理
8
常见的安全机制 加密:使用数学算法对数据进行变换,使其不易理解 鉴别:通过报文交换确信一个实体的身份,以防假冒
数据完整性:用于保护数据单元或数据单元流的完整性,以防报文修改 数字签名:附加在一个数据单元后面的数据,用来证明数据单元的起源及完整性,以防伪造及抵赖 流量填充:在数据流间隙中插入比特,以挫败流量分析的企图 访问控制:通过授权机制限制用户对资源的访问,防止越权
9
Chapter 8 roadmap 8.1 What is network security?
8.2 Principles of cryptography 8.3 Message integrity and Digital Signature 8.4 End point authentication 8.5 Securing 8.6 Securing TCP connections: SSL 8.7 Network layer security: IPsec 8.8 Securing wireless LANs 8.9 Operational security: firewalls and IDS 8: Network Security
10
密码学术语 明文(plaintext):欲加密的原始数据 密文(ciphertext):明文经加密算法作用后的输出
密钥(key):加密和解密时需要使用的参数 密码分析(cryptanalysis):破译密文 密码学(cryptology):设计密码和破译密码的技术统称为密码学
11
密码学术语(图示) KA KB Alice的加密密钥 Bob的解密密钥 A 密文 KA(m) 明文 m 明文 m=KB(KA(m))
加密算法 解密算法 8: Network Security
12
加密算法的分类 按照加密密钥与解密密钥是否相同,加密算法分为: 按照明文被处理的方式,加密算法分为: 对称加密算法:加密密钥与解密密钥相同
非对称加密算法:加密密钥与解密密钥不同 按照明文被处理的方式,加密算法分为: 块密码(分组密码) :每次处理一个明文块,生成一个密文块 流密码:处理连续输入的明文流,并生成连续输出的密文流
13
传统加密方法:替换 替换密码: 单字母表替换的例子: 密钥:字母映射表 用密文字母替换明文字母,但字母位置不变
例子:凯撒密码,单字母表替换,多字母表替换 单字母表替换的例子: 密钥:字母映射表 plaintext: abcdefghijklmnopqrstuvwxyz ciphertext: mnbvcxzasdfghjklpoiuytrewq
14
传统加密方法:换位 换位密码: 保留明文字母不变,但改变字母的位置 例子:列换位密码 8: Network Security
15
密码的安全性 传统加密方法的安全性建立在算法保密的基础上 现代加密方法也使用替换和换位两种基本手段,但现代密码学的基本原则是:
加密与解密的算法是公开的,只有密钥是需要隐藏的 一个加密算法被称为是计算安全的,如果由该算法产生的密文满足以下两个条件之一: 破译密文的代价超过信息本身的价值 破译密文所需的时间超过信息的有效生命期 现代密码学中,密码的安全性是通过算法的复杂性和密钥的长度来保证的
16
针对加密系统的密码分析攻击 惟密文攻击: 已知明文攻击: 选择明文攻击: 一个安全的加密系统必须能抵御选择明文攻击
密码分析者仅能根据截获的密文进行分析,以得到明文或密钥(对密码分析者最不利的情况) 已知明文攻击: 密码分析者除了有截获的密文外,还有一些已知的“明文-密文对”来帮助破译密码,以得出密钥 选择明文攻击: 密码分析者可以任意选择一定数量的明文,用被攻击的加密算法加密,得到相应的密文,以利于将来更有效地破解由同样加密算法及相关密钥加密的信息 一个安全的加密系统必须能抵御选择明文攻击 8: Network Security
17
现代密码学:对称密钥算法 DES: Data Encryption Standard 1997年成为美国的数据加密标准
缺点:密钥长度不够长,迭代次数不够多 8: Network Security
18
DES的计算过程 首先进行一次初始换位(permute) 然后进行16轮相同的迭代,每轮迭代使用一个不同的子密钥(由主密钥生成)
最后再进行一次换位(与初始换位相反) 8: Network Security
19
Triple DES(3DES) 3DES使用两个密钥进行三轮DES计算: 第一轮令DES设备工作于加密模式,使用密钥K1对明文进行变换
20
有关3DES的三个问题 为什么使用两个密钥而不是三个密钥? 为什么不使用两重DES(EE模式)而是三重DES? 为什么是EDE而不是EEE?
112比特的密钥已经足够长 为什么不使用两重DES(EE模式)而是三重DES? 考虑采用EE模式的两重DES,且攻击者已经拥有了一个匹配的明文--密文对(P1, C1),即有C1=EK2 (EK1 (P1 ) ) 令X=EK1(P1)=DK2(C1)。攻击者分别计算EK1(P1)和DK2(C1),并寻找使它们相等的K1和K2,则穷尽整个密钥空间只需256的攻击量而不是2112。(中途攻击) 为什么是EDE而不是EEE? 为了与单次DES兼容。3DES用户解密单次DES用户加密的数据,只需令K1=K2就行了。
21
AES: Advanced Encryption Standard
2001年11月成为新的对密加密标准,代替DES 每次处理128比特明文块,输出128比特密文块 密钥长度可以是128、192或256比特 如果使用强力方法破解,假设破解DES需要1秒,则破解AES(128比特密钥)需要149万亿年! 8: Network Security
22
密码块链接(Cipher Block Chaining)
若每个明文块被独立加密,相同的明文块生成相同的密文块,容易被重放攻击利用。 m(1) = “HTTP/1.1” c(1) = “k329aM02” t=1 block cipher … m(17) = “HTTP/1.1” c(17) = “k329aM02” t=17 block cipher 密码块链接(CBC): 发送方生成一个随机的初始向量c(0),用明文发送给接收者 每一个明文块加密前,先与前一个密文块进行异或,然后再加密: 第一个明文块与c(0)异或 相同的明文块几乎不可能得到相同的密文块 m(i) + c(i-1) block cipher c(i) 8: Network Security
23
现代密码学:非对称加密 对称加密算法: 非对称加密算法: 要求发送者和接收者使用同一个密钥 发送者和接收者不共享密钥 存在密钥传递问题:
发送方选择了一个密钥后,如何将密钥安全地传递给接收方? 非对称加密算法: 发送者和接收者不共享密钥 发送者使用加密密钥 接收者使用解密密钥 不存在密钥传递问题: 加密密钥是公开的 解密密钥是私有的 8: Network Security
24
公开密钥算法的使用 每个用户生成一对加密密钥和解密密钥: 当Alice希望向Bob发送一个加密信息时: Bob用自己的解密密钥解密信息
加密密钥放在一个公开的文件中,解密密钥妥善保管 当Alice希望向Bob发送一个加密信息时: Alice从公开的文件中查到Bob的加密密钥,用Bob的加密密钥加密信息,发送给Bob Bob用自己的解密密钥解密信息 公开密钥和私有密钥: 公开密钥:加密密钥,由发送者使用 私有密钥:解密密钥,由接收者使用
25
公开密钥算法的使用示例 要求: 1 K (K (m)) = m 2 给定公钥K , 不可能计算出私钥K - + B + - B B K K
Bob的公钥 K B - Bob的私钥 K B 密文 明文 明文 m 加密算法 解密算法 K (m) B + m = K (K (m)) B + - K (K (m)) = m B - + 要求: 1 + - 2 给定公钥K , 不可能计算出私钥K B B 8: Network Security
26
公开密钥算法应满足的条件 从计算上说, 生成一对加密密钥和解密密钥是容易的 已知加密密钥,从明文计算出密文是容易的
已知解密密钥,从密文计算出明文是容易的 从加密密钥推出解密密钥是不可能的 从加密密钥和密文计算出原始明文是不可能的
27
RSA算法:生成密钥 选择两个大素数p和q(典型值为大于10100) 计算 n=pq 和 z=(p-1) (q-1)
选择一个与 z 互质的数,令其为 d 找到一个 e 使满足 ed=1 (mod z) 公开密钥为 (e, n),私有密钥为 (d, n)
28
RSA算法:加密和解密 加密方法: 解密方法: 将明文看成是一个比特串,将其划分成一个个数据块M,且有0≤M<n
对每个数据块M,计算C=Me (mod n),C即为M的密文 解密方法: 对每个密文块C,计算M=Cd (mod n),M即为要求的明文
29
RSA算法举例 密钥计算: 取p=3,q=11 则有n=33,z=20 7和20没有公因子,可取d=7
解方程7×e=1(mod 20),得到e=3 公钥为(3, 33),私钥为(7, 33) 加密: 若明文M=4,则密文C=Me (mod n)=43 (mod 33)=31 解密: 计算M=Cd (mod n)=317(mod 33)=4,恢复出原文
30
RSA: 另一个重要的特性 这个特性在数字签名中将会很有用: K (K (m)) = m K (K (m)) 先用公钥 先用私钥 再用私钥
B - + K (K (m)) = 先用公钥 再用私钥 先用私钥 再用公钥 结果相同! 8: Network Security
31
RSA的特点 优点: 缺点: RSA的应用: 安全性好:RSA的安全性建立在难以对大数提取因子的基础上,这是目前数学家尚未解决的难题
使用方便:免除了传递密钥的麻烦 缺点: 计算开销大,速度慢 RSA的应用: RSA一般用来加密少量数据,如用于鉴别、数字签名或发送一次性会话密钥等
32
Chapter 8 roadmap 8.1 What is network security?
8.2 Principles of cryptography 8.3 Message integrity and Digital Signature 8.4 End point authentication 8.5 Securing 8.6 Securing TCP connections: SSL 8.7 Network layer security: IPsec 8.8 Securing wireless LANs 8.9 Operational security: firewalls and IDS 8: Network Security
33
报文完整性(报文鉴别) 报文完整性(又称报文鉴别): 一个报文是可信的,如果它来自声称的源并且没有被修改 报文鉴别涉及两个方面:
用于验证一个报文是否可信的技术 一个报文是可信的,如果它来自声称的源并且没有被修改 报文鉴别涉及两个方面: 起源鉴别:报文是否来自声称的源 完整性检查:报文是否被修改过
34
方法一:对整个报文加密 如果发送方和接收方有一个共享的密钥,可以通过加密报文来提供报文鉴别: 这种方法的缺点:
发送方用共享的密钥加密整个报文,发送给接收方 如果接收方能够正确解密收到的报文,则报文必是可信的 这种方法的缺点: 混淆了机密性和报文鉴别两个概念,有时我们只想知道报文是否可信,而报文本身并不需要保密 加密整个报文会带来不必要的计算开销
35
将报文鉴别与数据机密性分开 设想: 用于鉴别报文的标签必须满足两个条件: 问题:
发送者用明文发送报文,并在报文后附上一个标签,允许接收者利用这个标签来鉴别报文的真伪 用于鉴别报文的标签必须满足两个条件: 能够验证报文的完整性(是否被修改) 不能被伪造 问题: 如何验证报文的完整性? 如何保证鉴别报文的标签不被伪造?
36
数据完整性和报文摘要 报文摘要(数字指纹): 使用报文摘要验证报文的完整性:
将一个散列函数作用到一个任意长的报文m上,生成一个固定长度的散列值H(m),这个散列值称为该报文的报文摘要(message digest),也称数字指纹。 使用报文摘要验证报文的完整性: 发送者对发送的报文计算一个报文摘要,作为标签和报文一起发给接收者 接收者对收到的报文也计算一个报文摘要,和收到的标签(发送方计算的报文摘要)进行比较
37
如何保证报文摘要不被修改? 报文鉴别之方法二: 缺点:
发送方计算报文摘要,然后用与接收方共享的密钥加密报文摘要,形成报文鉴别标签(也称报文鉴别码) 接收方用共享的密钥解密报文鉴别码,得到发送方计算的报文摘要,与自己计算的报文摘要进行比较 缺点: 需要使用加密算法
38
方法三:密码散列函数 为什么要开发一个不需要加密算法的报文鉴别技术?
加密软件通常运行得很慢,即使只加密少量的数据 加密硬件的代价是不能忽略的 加密算法可能受专利保护(如RSA),因而使用代价很高 加密算法可能受到出口控制(如DES),因此有些组织可能无法得到加密算法 使用密码散列函数(cryptographic hash function)生成报文鉴别码: 使用密码散列函数计算报文摘要时需要包含一个密钥,但它并不用来做加密运算 发送方用双方共享的一个秘密密钥KS添加到报文m之前,然后计算报文摘要H ( KS || m )形成报文鉴别码
39
报文鉴别码: Message Authentication Code(MAC)
共享密钥 s m H(m+s) H(.) compare 报文 public Internet append m H(m+s) m H(.) H(m+s) s 共享密钥 8: Network Security
40
散列函数H应满足的特性 H能够作用于任意长度的数据块,并生成固定长度的输出 对于任意给定的数据块x,H(x)很容易计算
对于任意给定的值h,要找到一个 x 满足H(x)=h,在计算上是不可能的(单向性): 该特性对于使用密码散列函数的报文鉴别很重要 如果根据 H(KS||m)=h 可以找到一个 x,使得H(x)=h,那么根据 x 和 m 可以推出KS
41
散列函数H应满足的特性(续) 对于任意给定的数据块x,要找到一个 y≠x 并满足H(y)=H(x),在计算上是不可能的:
该特性对于使用加密算法的报文鉴别很重要 如果能找到一个不同于x的数据块y,使得H(y)=H(x),那么就可以用y替换x而不被接收方察觉 要找到一对(x, y)满足H(y) = H(x),在计算上是不可能的。(抵抗生日攻击) 满足前四个特性的散列函数称为弱散列函数,满足所有五个特性的散列函数称为强散列函数。 8: Network Security
42
散列函数标准 目前使用最多的两种散列函数: MD5 [RFC 1321] :散列码长度为128比特
SHA-1:美国联邦政府的标准,散列码长度为160比特 目前获得最多支持的密码散列函数方案为HMAC(Hashed Message Authentication Code),已应用到许多安全协议中
43
数字签名 一个可以替代手写签名的数字签名必须满足以下三个条件: 接收方通过文档中的数字签名能够鉴别发送方的身份(起源鉴别)
发送方过后不能否认发送过签名的文档(防抵赖) 接收方不可能伪造被签名文档的内容
44
数字签名:用私钥加密报文摘要 发送方先计算报文摘要,然后用自己的私钥加密报文摘要形成数字签名,数字签名附加在报文后面一起发送。
接收方拷贝一份数字签名,妥善保存,以备将来需要时使用 接收方用发送方的公钥得到原始的报文摘要,对收到的报文计算摘要,如果两者相符,表明报文是真实的。
45
Digital signature = signed MAC
Bob发送签名的报文: Alice检验签名和报文的完整性: 报文 m H: 散列 函数 KB(H(m)) - 加密后的 报文摘要 H(m) 加密 函数 Bob的 私钥 报文 m K B - Bob的 公钥 加密 函数 K B + KB(H(m)) - 加密后的 报文摘要 H:散列 函数 + H(m) H(m) equal ? 8: Network Security
46
如何可靠地获取公钥? 考虑下面的例子: 问题: Bob将公钥EB发布在自己的主页上
Alice获取Bob主页的请求被Trudy截获,Trudy将假冒的Bob主页发送给Alice,主页中的公钥是Trudy的公钥ET Alice使用Trudy的公钥加密会话密钥,发送给Bob Trudy截获会话密钥,用Bob的公钥加密后再发送给Bob Alice和Bob之间通信的报文都被Trudy破译 问题: 当Alice从公开的途径得到Bob的公钥后,Alice如何确认她得到的就是Bob的公钥,而不是其他人的公钥? 8: Network Security
47
公钥证书 为使公钥密码体系有实际应用,每个实体必须能够确认它得到的公钥确实来自声称的实体。 解决方案是引入证书机制:
使用证书(certificate)来证明某个主体(principal)拥有某个公钥 证书由一个可信任的第三方机构颁发,该机构称为认证权威CA(certification authority) 证书包含主体的公钥和CA的签名,任何人无法伪造或篡改证书的内容 当一个主体获得其公钥证书后,可将证书放在任何一个可公开访问的地方
48
证书的获取 Bob向CA注册其公钥: Bob向CA提供身份证明 CA验证了Bob的身份后创建证书,绑定Bob及其公钥
digital signature (encrypt) K B + Bob的 公钥 K B + CA的 私钥 由CA签名的 Bob的公钥证书 - Bob的身份证明信息 K CA 8: Network Security
49
证书的验证 当Alice需要Bob的公钥时: 获取Bob的证书 使用CA的公钥验证Bob的证书,得到Bob的公钥 + K K K
digital signature (decrypt) Bob的 公钥 K B + CA的 公钥 + K CA 8: Network Security
50
X.509证书 目前最常用的证书标准是X.509 X.509建立在公钥算法和数字签名的基础上: 为验证公钥证书的真实性:
CA对证书内容先进行SHA-1散列,然后用CA的私钥对报文摘要加密,形成数字签名。 为验证公钥证书的真实性: 验证方用CA的公钥解开证书的签名,得到证书内容的报文摘要 对收到的证书内容计算报文摘要,并与解密得到的报文摘要进行比较,两者相同表明这是合法的公钥证书
51
X.509证书格式 字段 含义 Version X.509版本号 Serial number 证书序列号,与CA名字一起唯一标识一个证书
Signature algorithm 签名该证书使用的算法及相关参数(与Signature重复) Issuer 签发该证书的CA的名字 Valid period 证书有效期的起止时间 Subject name 主体名字,证书被颁给的对象 Public key 与主体绑定的公钥、使用该公钥的算法名字及相关参数 Issuer ID 唯一标识CA的一个可选的ID Subject ID 唯一标识主体的一个可选的ID Extensions 一个或多个扩展字段(X.509v3才有) Signature 签发该证书使用的算法、相关参数及证书签名。证书签名 覆盖证书的所有内容
52
如何管理公钥和证书? 问题:谁可以运行CA?世界上有几个CA? 使用一个CA签发全世界所有的证书? 由一个组织运行多个CA?
流量压力,单点失效 由一个组织运行多个CA? 密钥泄露,信任问题 分布式公钥基础设施(Public Key Infrastructure,PKI) 提供公钥加密和数字签名服务的系统或平台 包含不同组织运行的CA,每个CA拥有自己的私钥,负责为一部分用户签发证书 用户自已决定使用哪一个CA
53
CA的一种组织结构 (a) A hierarchical PKI. (b) A chain of certificates.
54
信任锚与信任链 信任锚(trust anchor): 信任链(chain of trust): 根CA的选择:
有许多根CA,每个根CA都有自己的一个分级结构,所有根CA间可以进行交叉认证 用户自行决定信任哪个根CA 实际上,许多根CA的公钥被预装在浏览器上,这些根CA由浏览器厂商认证并嵌入到软件中,随软件一起发布
55
证书的撤销 每个证书都有有效期,过期后证书自动失效
CA也可以显式地撤销证书,这要求CA定期地发布证书撤销列表(Certificate Revocation List,CRL),表中给出已经撤销的证书序列号 每个用户在使用一个证书前都要去获取CRL,检查该证书是否在CRL中
56
证书目录 证书存放在哪里? 证书撤销列表通常与证书存放在一起,CA定期地将CRL推进目录服务器,由目录服务器负责将CRL中列出的证书清除掉
使用DNS作为证书目录,该方案的标准为DNSSEC 使用专门的目录服务器存放证书,该方案的标准为LDAP 证书撤销列表通常与证书存放在一起,CA定期地将CRL推进目录服务器,由目录服务器负责将CRL中列出的证书清除掉
57
Chapter 8 roadmap 8.1 What is network security?
8.2 Principles of cryptography 8.3 Message integrity and Digital Signature 8.4 End point authentication 8.5 Securing 8.6 Securing TCP connections: SSL 8.7 Network layer security: IPsec 8.8 Securing wireless LANs 8.9 Operational security: firewalls and IDS 8: Network Security
58
Protocol ap1.0: Alice says “I am Alice”
鉴别(Authentication) Goal: Bob希望Alice“证明”她的身份 Protocol ap1.0: Alice says “I am Alice” “I am Alice” Failure scenario?? 8: Network Security
59
Protocol ap1.0: Alice says “I am Alice”
鉴别(Authentication) Goal: Bob希望Alice“证明”她的身份 Protocol ap1.0: Alice says “I am Alice” 在网络中,Bob“看”不到Alice, 因此Trudy可以声称她就是Alice “I am Alice” 8: Network Security
60
Authentication: another try
Protocol ap2.0: Alice用自己的IP地址进行证明 “I am Alice” Alice’s IP address Failure scenario?? 8: Network Security
61
Authentication: another try
Protocol ap2.0: Alice用自己的IP地址进行证明 Trudy用Alice的IP地址创建一个数据包(IP地址欺骗) “I am Alice” Alice’s IP address 8: Network Security
62
Authentication: another try
Protocol ap3.0: Alice向Bob发送口令证明自己 “I’m Alice” Alice’s IP addr password Failure scenario?? OK Alice’s IP addr 8: Network Security
63
Authentication: another try
Protocol ap3.0: Alice向Bob发送口令证明自己 Alice’s IP addr Alice’s password “I’m Alice” Trudy监听到Alice发送的明文口令,过后发送给Bob OK Alice’s IP addr “I’m Alice” Alice’s IP addr password 8: Network Security
64
Authentication: yet another try
Protocol ap3.1: Alice将口令加密,发送给Bob “I’m Alice” Alice’s IP addr encrypted password Failure scenario?? OK Alice’s IP addr 8: Network Security
65
Authentication: another try
Protocol ap3.1: Alice将口令加密,发送给Bob Alice’s IP addr encrypted password “I’m Alice” Trudy截获数据包, 过后发送给Bob (重放攻击) OK Alice’s IP addr “I’m Alice” Alice’s IP addr encrypted password 8: Network Security
66
Authentication: yet another try
Goal: 避免重放攻击 Nonce: 只用一次的数(不重数) ap4.0: Bob向Alice发送不重数R,Alice用共享密钥加密R,回送给Bob。 “I am Alice” R K (R) A-B 只有Alice知道加密不重数的密钥,所以肯定是Alice! 缺点:需要一个共享的对称密钥 8: Network Security
67
“send me your public key”
Authentication: ap5.0 ap5.0: 采用公开密钥算法加密不重数 “I am Alice” Bob计算: R (K (R)) = R A - K + K (R) A - 只有Alice拥有这个私钥,因而一定是Alice! “send me your public key” K A + 8: Network Security
68
X.509的鉴别服务 X.509定义了三种鉴别程序,供不同的应用选择: 单向鉴别:涉及一个用户到另一个用户的一次报文传输(接收方鉴别发送方)
双向鉴别:通信双方相互鉴别 三向鉴别:通信双方相互鉴别,并提供报文同步机制
69
单向鉴别(one-way authentication)
A→B:tA ||rA|| IDB || Data || Kb+(Ka-b) || signatureA 说明: tA:时间戳,由报文的产生时间和到期时间组成 rA:A随机选择的一个不重数,供接收者检测重放攻击 IDB:B的标识,指示报文的接收者 Data:报文中包含的数据信息 Ka-b :若Data需要保密,则Ka-b为A加密Data使用的对称密钥 Kb+ :B的公开密钥,用于加密对称密钥Ka-b signatureA :A的数字签名,对tA、rA、IDB和Data的明文生成 接收方鉴别: B用自己的私钥解出Ka-b,用Ka-b解密Data,计算前面4个部分的报文摘要 B用A的公钥从签名中得到原始的报文摘要,进行比较
70
双向鉴别和三向鉴别 双向鉴别(two-way authentication):
A→B:tA || rA || IDB || Data || Kb+ (Ka-b) || signatureA B→A:tB || rB || IDA || rA|| Data || Ka+(Kb-a) || signatureB 三向鉴别(three-way authentication): A→B:rB || signatureA
71
Chapter 8 roadmap 8.1 What is network security?
8.2 Principles of cryptography 8.3 Message integrity and Digital Signature 8.4 End point authentication 8.5 Securing 8.6 Securing TCP connections: SSL 8.7 Network layer security: IPsec 8.8 Securing wireless LANs 8.9 Operational security: firewalls and IDS 8: Network Security
72
电子邮件安全 电子邮件安全包括真实性和机密性两个方面 目前最流行的两个安全电子邮件协议:
PGP:一个开放源码的安全电子邮件软件包,提供对邮件的保密、鉴别、数字签名和压缩服务。PGP较多地用于个人电子邮件安全。(因特网安全电子邮件的事实标准) S/MIME:基于公钥加密技术对MIME所做的安全扩展。S/MIME较可能作为一种工业标准被商业组织或一些机构使用。
73
Pretty Good Privacy(PGP)
鉴别,机密性,压缩,兼容电子邮件,分段 鉴别: PGP使用基于公开密钥算法的数字签名提供鉴别服务 生成可供鉴别的电子邮件: 发送方创建电子邮件(报文) 用SHA-1计算邮件的报文摘要,然后用发送者的私钥加密报文摘要,形成数字签名 将数字签名附在报文的前面,与报文一起发送: Sgn || Data
74
PGP的机密性服务 PGP使用对称密钥算法保护邮件的机密性: 仅使用机密性服务的过程:
发送方将选择的一次性会话密钥用接收方的公钥加密,与报文一起发送给接收方 仅使用机密性服务的过程: 发送方(A)生成一个报文和一个随机的128比特数(一次性会话密钥) 先用会话密钥加密报文,再用接收方(B)的公钥加密会话密钥 将加密后的会话密钥放在报文前面,与报文一起发送: KB+(KA-B) || KA-B(Data)
75
PGP的压缩服务 缺省地,PGP在完成签名之后、在加密报文之前对报文进行压缩,压缩算法采用ZIP:
KB+(KA-B) || KA-B (Zip (Sgn || Data)) 在压缩报文之前计算数字签名,是为了方便日后对报文的验证。 在加密报文之前进行压缩,一方面可以减少要加密的数据量,另一方面压缩后的消息冗余很少,增加密码分析的困难。
76
PGP的兼容电子邮件服务 PGP使用Base64编码将二进制数据流转换成可打印ASCII文本,以解决邮件的传输问题。
77
鉴别 + 机密性 + 压缩 + 兼容性 同时使用以上四种服务的过程: 发送方先对明文报文计算签名,将签名放在报文前面 签名与明文一起被压缩
用会话密钥对压缩后的数据块进行加密 用接收方的公钥加密会话密钥,放在报文的前面 将整个数据块转换成Base64编码格式: EncodeBase64(KB+(KA-B) || KA-B (Zip (Sgn || Data)))
78
PGP的邮件分段服务 许多电子邮件系统能够接收的最大报文长度不超过50,000字节
接收端去掉每个片段的头部,然后将所有的片段重新组装成一个数据块
79
使用PGP发送一个邮件
80
Chapter 8 roadmap 8.1 What is network security?
8.2 Principles of cryptography 8.3 Message integrity and Digital Signature 8.4 End point authentication 8.5 Securing 8.6 Securing TCP connections: SSL 8.7 Network layer security: IPsec 8.8 Securing wireless LANs 8.9 Operational security: firewalls and IDS 8: Network Security
81
Secure sockets layer (SSL)
SSL向基于TCP的网络应用提供安全的传输层服务: 如支持Web浏览器和服务器之间的安全通信(https) SSL提供的安全服务: 服务器鉴别,数据加密,客户鉴别(可选) Application Application SSL sublayer SSL socket TCP TCP TCP socket IP IP TCP API TCP enhanced with SSL 8: Network Security
82
SSL SSL是涉及到两个层次的一组协议: SSL记录协议:为各种高层协议(如HTTP)提供基本的安全服务
83
SSL握手协议 允许服务器和客户之间相互鉴别,并协商加密算法、MAC算法及密钥等 握手协议由客户和服务器之间的一系列报文交换组成:
浏览器向服务器发送建立SSL会话的请求报文,说明可支持的SSL协议最高版本、支持的加密算法(按优先级从高到低排列)和压缩方法等,以及浏览器选择的一个随机数Rc。 服务器从浏览器给出的选择中确定合适的SSL版本号、加密算法和压缩方法,与服务器选择的一个随机数Rs一起发送给浏览器。
84
SSL握手协议(续) 服务器向浏览器发送它的公钥证书(和必要的证书链)以及其它信息
浏览器检查签发证书的CA是否在其可信CA列表中,若不在向用户警告该问题; 如果在则使用该CA的公钥验证证书,得到服务器的公钥。 如果客户也需要被鉴别(收到服务器的证书请求),则浏览器向服务器发送它的公钥证书。(图中未画出) 8: Network Security
85
SSL握手协议(续) 浏览器生成一个48字节的随机数,称预密钥,用服务器的公钥加密后发送给服务器。
客户和服务器各自从预密钥、Rc和Rs中计算加密数据需要的会话密钥,以及计算MAC需要的密钥。
86
SSL握手协议(续) 浏览器向服务器发送一个报文,通知它后面的报文都用这个会话密钥加密,然后发送一个用协商的算法及密钥加密的报文,指示握手协议的浏览器部分完成。 服务器向浏览器发送一个报文,通知它后面的报文都用这个会话密钥加密,然后发送一个用协商的算法及密钥加密的报文,指示握手协议的服务器部分完成。 8: Network Security
87
SSL记录协议 SSL记录协议为SSL连接提供两种服务: SSL记录协议的操作过程: 机密性:通过加密SSL载荷实现
完整性:通过报文鉴别码保护 SSL记录协议的操作过程: 将应用报文划分成长度不超过214字节的数据块 对数据块进行压缩(可选) 使用密码散列函数对(压缩的)数据块计算报文鉴别码 使用对称密钥算法对数据块及报文鉴别码进行加密 在处理完的数据块前加上SSL头,包括内容类型、SSL版本号、压缩数据块的长度等
88
使用SSL传输数据
89
Chapter 8 roadmap 8.1 What is network security?
8.2 Principles of cryptography 8.3 Message integrity and Digital Signature 8.4 End point authentication 8.5 Securing 8.6 Securing TCP connections: SSL 8.7 Network layer security: IPsec 8.8 Securing wireless LANs 8.9 Operational security: firewalls and IDS 8: Network Security
90
IP安全协议(IPSec) IPv4在设计时没有考虑安全性: IP Security(IPSec):
缺少对通信双方身份的鉴别,容易遭受地址欺骗攻击 缺少对网络中数据的完整性和机密性的保护,数据很容易被窃听、修改甚至劫持 IP Security(IPSec): IETF以RFC形式公布的一组安全协议集 目标是把安全特征集成到IP层,以便对因特网中的安全业务提供低层的支持。
91
专用网和虚拟专用网 专用网: 虚拟专用网(Virtual Private Network):
通过电信专线将分散在各地的计算机(网络)连接而成的网络 安全性好,但代价高 虚拟专用网(Virtual Private Network): 建立在公用网上的一个覆盖网络(overlay),在逻辑上与其它流量隔离 数据在发送到公用网之前进行加密
92
(a) A leased-line private network. (b) A virtual private network.
专用网和虚拟专用网 (a) A leased-line private network. (b) A virtual private network.
93
VPN的实现 VPN的典型结构: VPN的优点:
在每个局域网上设置一个安全网关,在每一对安全网关间创建一条穿过因特网的隧道,在隧道中使用IPSec VPN的优点: 可以在一对局域网间提供完整性控制及机密性服务,甚至对流量分析也有相当的抵御能力 对因特网中的路由器及用户软件是透明的,只要系统管理员设置好安全网关就可以了
94
VPN的实现 laptop w/ IPsec public Internet salesperson in hotel router w/
header IPsec Secure payload salesperson in hotel header IP IPsec Secure payload header IP IPsec payload Secure router w/ IPv4 and IPsec router w/ IPv4 and IPsec IP header payload header IP payload branch office headquarters
95
IPSec提供了一个安全体系框架 IPSec提供了一个用于集成多种安全服务、加密算法及安全控制粒度的安全体系框架
IPSec提供多种安全控制粒度,包括:一条TCP连接上的通信,一对主机间的通信,一对安全网关之间的所有通信 用户可以为数据通信选择合适的安全服务、算法、协议和控制粒度
96
IPSec的组成 从技术上说,IPSec主要包括两个部分: 将以上两部分绑定在一起的是称为安全关联(SA)的抽象。
IPSec安全协议:包括AH和ESP两个安全协议,定义了用于安全通信的IP扩展头和字段,以提供机密性、完整性和源鉴别服务。 密钥管理协议:定义了通信实体间进行身份鉴别、协商加密算法以及生成共享会话密钥的方法。 将以上两部分绑定在一起的是称为安全关联(SA)的抽象。
97
Security Association(SA)
SA是两个通信端点间的一个单工连接,由一个安全参数索引(SPI)唯一标识,如果在两个方向上都需要安全通信,则需要建立两个SA SPI携带在数据包中,由数据包的处理进程用来查找密钥及相关信息 SA可以建立在一对主机之间、一台主机与一个安全网关之间、或一对安全网关之间
98
IPSec的使用模式 传输模式:IPSec头被插入到原始IP头和传输层头之间,路由器根据原始IP头转发数据包。
隧道模式:原始数据包被封装在一个新的IP包中,IPSec头被放在新的IP头和原始IP头之间,路由器根据外层IP头的信息转发数据包。隧道的端点(外层IP头中的地址)通常是一个支持IPSec的安全网关。
99
两种模式的比较 传输模式比隧道模式占用较少的带宽 隧道模式更安全: 隐藏内部网络的细节(原始IP头不可见)
隧道模式可以将一对端点间的通信聚合成一个加密流,从而有效地防止入侵者进行流量分析
100
鉴别头部(Authentication Header)协议
安全参数索引SPI:32比特的数,和目的IP地址、安全协议结合起来唯一标识数据报的SA SeqNum:对SA上发送的数据包进行编号,供接收端检测重放攻击。一个SA上的序号不能重用,因此在传输的数据包数量达到232之前,必须协商一个新的SA和新的密钥 Authentication Data:包含报文鉴别码的可变长度域。所有AH实现必须支持HMAC-MD5-96和HMAC-SHA-1-96。 AH定义的IPSec头
101
AH头在传输模式和隧道模式中的位置 传输模式 隧道模式 注意:在计算报文鉴别码时,IP头中的可变域置0
102
AH协议提供的安全服务 AH协议提供无连接完整性、数据起源认证和抗重放攻击,但不提供机密性服务:
HMAC覆盖数据包的载荷部分,因而可提供无连接完整性服务 HMAC覆盖原始IP头中的不变域(传输模式)或整个原始IP头(隧道模式),因而可提供数据起源认证 AH头中有序号,且被HMAC覆盖,因而可抵抗重放攻击
103
封装安全载荷(Encapsulating Security Payload)
ESP数据包大致分为以下几个部分: ESP头:包含SPI和SeqNum 载荷:原始数据包中被加密部分的密文 ESP尾:包括填充(需要的话)、填充长度和下一个头,ESP尾也要被加密 鉴别数据:覆盖ESP头、载荷和ESP尾的报文鉴别码
104
“enchilada” authenticated
传输模式下的ESP封装形式 original IP hdr ESP hdr Original IP datagram payload trl auth encrypted “enchilada” authenticated padding pad length next header SPI Seq # 注意:原始IP头未被保护(未被加密和鉴别覆盖)
105
“enchilada” authenticated
隧道模式下的ESP封装形式 new IP header ESP hdr original IP hdr Original IP datagram payload trl auth encrypted “enchilada” authenticated padding pad length next header SPI Seq # 注意:原始IP头被完全保护(被加密和鉴别覆盖)
106
ESP协议提供的安全服务 ESP协议提供数据机密性、无连接完整性、抗重放攻击、数据起源鉴别和有限的数据流机密性服务:
原始数据包的载荷部分被加密,因而可提供数据机密性 HMAC覆盖数据包载荷部分,可提供无连接完整性服务 ESP头中有序号,且被HMAC覆盖,可抵抗重放攻击 ESP隧道模式中,原始IP头也被HMAC覆盖,因而ESP隧道模式可提供数据起源鉴别 ESP隧道模式中,原始IP头也被加密,路由器只能看到外层IP头,因而ESP隧道模式可提供数据流机密性服务
107
AH协议、ESP协议的安全性比较 ESP隧道模式的安全性最强: 数据机密性服务: 鉴别服务: 整个原始IP包被加密和鉴别
只有ESP提供,AH不提供 鉴别服务: ESP隧道模式 > AH(原始IP头被鉴别) > ESP传输模式(原始IP头未被鉴别)
108
Chapter 8 roadmap 8.1 What is network security?
8.2 Principles of cryptography 8.3 Message integrity and Digital Signature 8.4 End point authentication 8.5 Securing 8.6 Securing TCP connections: SSL 8.7 Network layer security: IPsec 8.8 Securing wireless LANs 8.9 Operational security: firewalls and IDS 8: Network Security
109
IEEE 802.11 security 802.11 WEP(Wired Equivalent Privacy): 802.11i
最初的802.11规范使用的安全协议 在主机和基站之间提供较弱的加密及鉴别服务 没有密钥分发机制 802.11i 具有更强安全机制的802.11版本 提供较强的加密机制及鉴别机制 提供密钥分发机制 8: Network Security
110
WEP:主机鉴别 主机鉴别过程: WEP利用主机与基站共享密钥这个事实鉴别主机 无线主机向AP请求鉴别 AP向主机发送一个128比特的不重数
8: Network Security
111
WEP:数据加密 主机与AP共享一个40比特的对称密钥KS(半永久)
对于每个帧,发送方生成一个24比特的初始向量IV,添加到KS后面,形成一个64比特的密钥 (KS, IV) (KS, IV) 用于生成一个密钥流 {kiIV|i=1,2,…} 第 i 个密钥kiIV用来加密帧中的第 i 个字节di: ci = di XOR kiIV IV和加密后的字节ci放在帧中传输 接收方使用相同的 (KS, IV) 生成相同的密钥流,执行解密运算:di = ci XOR kiIV 8: Network Security
112
WEP加密(图示) 发送方WEP加密 8: Network Security
113
802.11 WEP加密的安全漏洞 安全漏洞: 攻击: 每个KS只有224个(KS, IV) 可用:IV会被重复使用
Trudy(可能通过欺骗方式)让Alice加密他选择的明文(d1 d2 d3 d4 … ) Trudy能够获得Alice加密的密文: ci = di XOR kiIV Trudy知道ci和di, 就可以计算出kiIV: di XOR ci = kiIV Trudy得到了加密所用的密钥流 k1IV k2IV k3IV … 当过后观察到IV被重用时,Trudy就可以破解密文了! 8: Network Security
114
802.11i: 增强的安全性 可以使用各种(较强的)加密算法 提供了密钥分发机制 使用专门的鉴别服务器(而不是AP)来提供鉴别服务
8: Network Security
115
802.11i的操作 AP: 接入点 STA: AS: 客户主机 鉴别服务器 有线网络 1 安全能力发现 2
1 安全能力发现 2 STA和AS相互鉴别, 生成主密钥(MK),AP起一个中继的作用 3 STA导出成对主密钥(PMK) 3 AS导出相同的PMK,发送给AP 4 STA和AP使用PMK导出用于通信所需的临时密钥 8: Network Security
116
Chapter 8 roadmap 8.1 What is network security?
8.2 Principles of cryptography 8.3 Message integrity and Digital Signature 8.4 End point authentication 8.5 Securing 8.6 Securing TCP connections: SSL 8.7 Network layer security: IPsec 8.8 Securing wireless LANs 8.9 Operational security: firewalls and IDS 8: Network Security
117
防火墙 在可信的内部网络与不可信的外部网络之间执行访问控制策略的硬件或软件系统 目的是保护内部网络免受来自外部网络的攻击。 因特网 内部网络
8: Network Security
118
防火墙的类型 包过滤防火墙 状态检测防火墙 应用网关 8: Network Security
119
Should arriving packet be allowed in? Departing packet let out?
包过滤防火墙 Should arriving packet be allowed in? Departing packet let out? 内部网络通过有包过滤功能的路由器连接到因特网上 路由器对数据包进行逐包过滤,一般基于以下字段决定转发包还是丢弃包: 源IP地址,目的IP地址 TCP/UDP源端口号、目的端口号 ICMP 报文类型 TCP SYN标志和 ACK标志 8: Network Security
120
包过滤策略的例子 策略 防火墙设置 不允许访问外部Web网站 丢弃所有外出的、目的端口为80的包
不允许外部发起的TCP连接,除非访问的是内网的公共web服务器 丢弃进入的TCP SYN包,除非去往 的端口80 防止因特网广播吞噬网络带宽 除DNS包和路由器广播包,丢弃其它进入的UDP包 防止网络拓扑被探测(traceroute) 丢弃所有外出的ICMP TTL expired包 8: Network Security
121
访问控制列表(Access Control Lists)
访问控制列表是一个规则表,包含一系列<动作, 匹配条件>对 路由器对于每个进出的包,从上到下地匹配规则和执行动作 action source address dest protocol port flag bit allow 222.22/16 outside of TCP > 1023 80 any ACK UDP 53 --- ---- deny all 8: Network Security
122
状态检测防火墙 包过滤防火墙孤立地过滤每个包,仍会允许一些异常的包进入: 状态检测防火墙可以跟踪TCP连接的状态:
例如,允许dest port = 80, ACK=1的包进入,哪怕并没有相应的连接存在 action source address dest protocol port flag bit allow outside of 222.22/16 TCP 80 > 1023 ACK 状态检测防火墙可以跟踪TCP连接的状态: 跟踪连接的建立(SYN)和关闭(FIN)等状态,判断收 到的包是否有意义 8: Network Security
123
状态检测防火墙 扩展ACL,指示在允许放行一个包前需检查连接的状态 x action source address dest proto
port flag bit check conxion allow 222.22/16 outside of TCP > 1023 80 any ACK x UDP 53 --- ---- deny all 8: Network Security
124
应用网关 应用网关除了检查网络层及传输层协议头,还检查应用层数据 例如: 允许特定的内部用户使用telnet登录外部主机
gateway-to-remote host telnet session host-to-gateway telnet session 应用网关除了检查网络层及传输层协议头,还检查应用层数据 例如: 允许特定的内部用户使用telnet登录外部主机 application gateway router and filter 1. 所有telnet用户必须连接到应用网关 2. 对于授权用户,应用网关建立与目的主机的telnet会话,并在2个连接之间中继数据 3. 包过滤防火墙阻塞所有不源自应用网关的telnet连接 8: Network Security
125
防火墙的局限性 无法抵御IP欺骗攻击: 路由器无法知道包是否来自声称的源 对于UDP包,过滤器或者全部允许,或者全部禁止
应用网关处理开销大,速度慢 每个被代理的应用都需要一个应用网关 应用网关对于用户不透明:客户软件必须设置应用网关的IP地址 对于UDP包,过滤器或者全部允许,或者全部禁止 和外界的通信强度与网络安全等级是一对矛盾 许多受到高度保护的站点仍然遭到攻击 8: Network Security
126
Intrusion detection systems
防火墙: 包过滤防火墙、状态检测防火墙仅检查传输层和网络层协议头 应用网关仅检查特定应用的数据包 不检查包之间的关联 IDS: intrusion detection system 深度数据包检查: 查看包内容(如检查包中是否包含已知的病毒特征、攻击特征等) 检查多个包之间的关联性: 端口扫描:短时间内依次向不同的端口发送连接请求 DoS攻击:短时间内向同一个主机发送大量的包 8: Network Security
127
Intrusion detection systems
网络中可以设置多个IDS: 在不同位置进行不同类型的检查 防火墙 应用网关 Internet 内部网络 Web server IDS 探点 DNS server FTP server 隔离区 (非军事区) 8: Network Security
128
Network Security (summary)
Basic techniques…... cryptography (symmetric and public) message integrity end-point authentication …. used in many different security scenarios secure secure transport (SSL) IP sec 802.11 Operational Security: firewalls and IDS 8: Network Security
129
作业 实验:SSL 提交时间:12月9日 作业:8,12,18 不需要提交,一周后在主页上公布答案
课堂测验:试题发布在主页上,一周后发布答案 8: Network Security
Similar presentations