1 / 60

网络安全协议 Network Security Protocols

网络安全协议 Network Security Protocols. 电子科技大学计算机科学与工程学院 School of Computer Science And Technology, UESTC. 安全协议的设计准则. 密码协议的设计准则.

shubha
Télécharger la présentation

网络安全协议 Network Security Protocols

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 网络安全协议Network Security Protocols 电子科技大学计算机科学与工程学院 School of Computer Science And Technology, UESTC

  2. 安全协议的设计准则

  3. 密码协议的设计准则 “ The principles are not necessary for correctness nor are they sufficient. They are however helpful, in that adherence to them would have simplified protocols, and prevented a number of published confusions and mistakes.” ——” Prudent Engineering Practice for Cryptographic Protocols”

  4. 为什么需要设计原则? • 原因 • (1)如果你遵循这些原则,就可以避免你犯下与一些经典安全协议相同的错误。 • 有了这些原则,不必完全依赖与形式化的方法与工具 • (2)如果你不遵循这些原则,也许你也能设计出安全的协议。但是,你也许会犯下与一些经典安全协议相同的错误。

  5. 一些符号 • A , B : 任意主体 • S: 一个服务器(T, 可信第三方) • Tx: a timestamp • N a nonce • K ,K-1:Key and its inverse • {x}k: 用k加密消息x ( or 签名) 注意: 我们也会用Ek(X) 来表示用密钥加密消息X,用Sk(x) 表示用私有密钥k对消息X进行数字签名

  6. 最基本的两项原则 • Principle 1(消息独立性原则) : • 对消息的含义取决于消息的内容 • Principle 2(消息前提准确原则): • 消息可被接受被处理的条件应该是清晰的,任何评估安全协议的人都能够看出消息是否是可接受的。

  7. Example 1 设计者的想法: 主体B 发送消息X给主体 A,这条消息是协议中的第四条,B相信消息是一定能被主体A接收到。 问题: (1) 消息能够按序到达吗? (2) 消息是一定能被主体A接收到吗? (3) 消息一定是B发出的吗? (4) 消息由B发出后不会被篡改吗? ……

  8. Principle 3 • Principle 3 (主体身份标识原则): • 如果主体的身份信息对消息含义很重要,最好在消息中出现明确的主体身份标识

  9. Review: Example 2 • Denning - Sacco Key Exchange Protocol 目标: 基于公钥机制在A与B之间交换会话密钥kab Protocol: the protocol contains three messages CA and CB are certificates of A and B respectively.

  10. (1) A,B (2) CA,CB (3) CA,CB,Eb(Sa(Kab, Ta)) Example 2 时刻Ta , A 说:“ Kab是A,B通信的好密钥 Trent (T) Kab Kab Alice (A) Bob (B) 当A发送消息,他认为除了B之外的主体都不能看到Kab, 这意味着B知道自己是消息的一定接收方。 B收到消息时, 它保证 kab来自主体A

  11. (2’) CA,CB (1’) A,B (3’) CA,CC,Ec(Sa(Kab, Ta)) Carol (C) Example 2 How to attack the protocol? Trent (T) (1) A,B (2) CA,CB Kab Kab (3) CA,CB,Eb(Sa(Kab, Ta)) Alice (A) Bob (B) Carol相信消息来自主体A,并利用 Kab加密消息。然后B可以看见这些消息 C收到消息时, 它保证 kab来自主体A???

  12. (1) A,B (2) CA,CB Kab Kab (3) CA,CB,Eb(Sa(A, B, Kab, Ta)) Example 2 How to remove the flaws recovered in above protocol? 第三条消息中加入A 与B的标识以表明是 A 与B在通信 Trent (T) Alice (A) Bob (B) 尽管从ka-1可以推断出A的名字,但他并不能保证这条消息确实来自于 A.

  13. Woo - Lam Authentication protocol: 通过对称密码体制, A向B 认证自己的身份 (4) EKbt(A, Ekat(Nb)) (5) EKbt(Nb) (1) A (2) Nb (3) Ekat(Nb) Example 3 B 将挑战发给T以验证 . Trent (T) Trent 将验证结果发给A 如果T发回Nb, 则B 相信 A 能应答挑战. 因此A的身份被B认证 Alice (A) Bob (B) A claims his identity B 给 A 一个挑战 A 应答B的挑战

  14. (4) EKbt(A, Ekat(Nb)) (5) EKbt(Nb) (1) A (2) Nb (3) Ekat(Nb) Example 3 Woo - Lam 认证协议中的瑕疵 Trent (T) 第五条消息中,返回的Nb是用来验证A的身份的吗? Alice (A) Bob (B)

  15. Trent (T) (4) EKbt(A, Ekct(Nb)) (5) EKbt(N’’b) (4’) EKbt(C, Ekct(Nb)) (5’) EKbt(Nb) (1) A (1’) C (2) Nb (2’) N’b (3) Ekct(Nb) (3’) Ekct(Nb) Alice (A) Bob (B) Carol (C) Example 3 结果: C能冒充A与B通信

  16. Example 3 • Question: • 如何修正woo-lam协议中的缺陷

  17. Principle 4 • Principle 4 (加密目的明确原则): • 必须清楚为什么要用加密运算. • 加密运算消耗资源,滥用将会导致冗余 • 加密<>安全性,滥用将导致错误

  18. 票据 Example 4 简化Kerberos 协议目的: A、B通过可信第三方交换会话密钥 Protocol con tains 4 messages: Ts, Ta: 时间戳 L: 生命期

  19. Trent (T) (1) A, B (2) EKas(Ts, L, Kab, B, EKbs(Ts, L, Kab, A)) (3) EKbs(Ts, L, Kab, A), Ekab(A,Ta) Bob (B) (4) Ekab(Ta+1) Alice (A) Example 4 (1) 为什么第一条消息不加密? (2) 第二条消息中加密的作用是什么? Kab Kab (3) 第三条消息中加密的作用是什么? (4)第四条消息中加密的作用是什么?

  20. Trent (T) (1) A, B (2) EKas(Ts, L, Kab, B, EKbs(Ts, L, Kab, A)) (3) EKbs(Ts, L, Kab, A), Ekab(A,Ta) Bob (B) (4) Ekab(Ta+1) Alice (A) Example 4 (1) 不需要加密 (2) 提供Kab的保密性 Kab Kab (3)提供Kab的保密性 提供 Kab与一个新鲜性标识(时间戳)的绑定 (4) 表示知道并认可Kab 与一个时间戳的绑定

  21. Principle 4 • Principle 4 (加密目的明确原则): • 加密的原因: • Confidentiality(保密性) • Authentication(认证性) • Confidentiality + Authentication(加密+认证) • 绑定: 将消息与一个密钥绑定;将消息与主体标识绑定 • 生成随机数

  22. Principle 5 • Principle 5 (签名原则): • 如果对加密的消息签名,则不应该假设主体知道消息的内容 • 相反,如果是先签名再加密,则主体应知道消息的内容 • 因此,如果需要同时进行加密和签名,则需谨慎. • Rule: 先签名再加密

  23. Example 5 目的: 保证Xa与Ya的完整性 保证Ya的机密性

  24. Example 6 H(): Hash Function Problem: B能相信A 知道X? 目的: 提供X的保密性及完整性 A 将X 告知B Answer: No

  25. Principle 5 • Principle 5 (签名原则): • Rule: 先签名后加密 • 先签名后加密就没有问题了吗? • Answer :NO • Denning - Sacco Key Exchange Protocol based on the asymmetric cryptographic scheme 提示:当你签名时,要确认你自己没有被当作预言机!!

  26. Principle 6 • Principle 6 (随机数使用原则): • 清楚 “nonce”(随机数)的属性. • 可以保证暂时的连续性(temporal succession),但不能保证关联性(association) • 关联性(association) 最好用其他方法保证(作用是什么?是否有其他更好的方法?)

  27. Principle 6 • 为什么要nonce? • 防范重放攻击 • Nonce作用 • Nonce能保证第二条消息在第一消息发出后生成的 • 有时,也用于将两条消息绑定在一起

  28. Example 7 Otway-Rees 密钥交换协议 协议目的: 在可信第三方的帮助下,A 与B交换会话密钥 Kab Protocol: the protocol contains 4 messages M, Na, Nb are nonces

  29. Example 7 • Question: • M在每条消息中出现,它的作用? • Na 的作用? • Nb在消息2,3中的作用? • 加密的作用?

  30. Example 7 改进的Otway-Rees 密钥交换协议 协议目的: 在可信第三方的帮助下,A 与B交换会话密钥 Kab Protocol: the protocol contains 4 messages Na, Nb are nonces

  31. Overview: Example 3 Woo - Lam Authentication protocol: 通过对称密码体制, A向B 认证自己的身份 加密的目的之一是将这个消息的两个部分关联起来 Protocol: Contain five messages Nb是为了保证新鲜性, 而不是与主体A的关联性.

  32. Overview: Example 3 Woo - Lam Authentication protocol: 通过对称密码体制, A向B 认证自己的身份 Protocol: Contain five messages

  33. Principle 7 • Principle 7 (随机数随机性原则): • 将可预测的值(例如一个计数器的值)用于挑战应答来保证新鲜性是可以的。 • 但是此时需要将这个可预测的值保护起来,以免攻击者构造一个挑战,并在后续合适的时机重放应答 • 谨慎使用可预测的nonces

  34. Example 9 Protocol Purpose:A向T获取时间Ts作为自己的本地时间。 Question: how does this protocol take effective? Question:如果随机挑战值是可预测的,如何攻击此协议 Answer: 这个协议依赖随机挑战值来同步时钟。 即:A将接受 Ts为其当前时间,如果能在足够短的时间内收到对挑战的回复。 Answer: 将A的时钟回拨 Condition: 随机挑战值是不可预测的.

  35. Alice (A) Carol (C) Carol (C) Alice (A) Trent (T) Trent (T) Example 9 Question:将A的时钟回拨?

  36. Example 9 结论: 如果随机挑战值是可预测,则需要将它保护起来

  37. Principle 8 • Principle 8 (时戳使用原则) • 使用绝对时间的时戳来保证消息的新鲜性,则需要注意不同机器时钟的差异不能超过消息有效期 • 时间的维护机制将成为可信计算的基础之一

  38. Example 10 如果主体使用时戳Ta, 则攻击者必须在时刻Ta左右转发消息

  39. Nonce & Timestamp • Nonce是局部的. 因此只对其生产者有效 • 时戳是全局的.因此只对所有用户有效 时戳总是需要保护。随机数可以明文传输 ???

  40. Principle 9 • Principle 9(密钥新鲜原则): • 最近使用过的密钥不一定是新鲜的,也许是很老的,还可能被破译了。

  41. 1:A, B, NA 2:EA(NA,B,Kab,EB(Kab,A)) Kab 3:EB(Kab,A) Kab 4:EKab(NB) 5:EKab(NB-1) 6:EKab(M) Example 11 Needham-Schroeder协议· 可利用一个老的会话密钥, Kab来攻击此协议。这是因为不能保证Kab的新鲜性 Trent (T) Alice (A) Bob (B)

  42. Example 11 Question: 如何修正Needham-Schroeder 协议 Answer: 使用时戳

  43. Principle 10 • Principle 10 (编码原则): • 应该提供一种编码机制,使得能够区分某条消息是否属于某个协议,是否属于某个协议某个实例,同时应该知道是第几条消息。

  44. Principle 10 这条准则对安全协议的设计非常重要 • 如果没有在消息中提供消息次序的标识,消息的次序可能会是混乱的 (1) 当前消息 Or?该协议上一个实例的类似消息 (2) 当前消息 Or?该协议中的另一条消息,或是协议另一个实例中的消息

  45. Example 12 (1) 当前消息 Or?该协议上一个实例的类似消息 此消息可能在以后的协议实例中被重放。 Needham-Schroeder协议· Trent (T) 1:A, B, NA 2:EA(NA,B,Kab,EB(Kab,A)) Kab 3:EB(Kab,A) Kab 4: EKab(NB) Alice (A) 5:EKab(NB-1) Bob (B) 6:EKab(M)

  46. Trent (T) (4) EKbs(A, Ekcs(Nb)) (5) EKbs(N’’b) (4’) EKbs(C, Ekcs(Nb)) (5’) EKbs(Nb) (1) A (1’) C (2) Nb (2’) N’b (3) Ekcs(Nb) (3’) Ekcs(N’b) Alice (A) Bob (B) Carol (C) Example 13 (2) 当前消息 Or?该协议中的另一条消息,或是协议另一个实例中的消息 One flaw in the Woo - Lam Authentication protocol

  47. Principle 10 • 因此,当一个主体收到一条消息,但却不能确认是否是它想要收到的消息。此时,可对此消息进行编码 例如: 一个协议的消息1包含了以下的形式: “密钥Kas的持有者认为在时刻Ta,Kab是与B通信的好的会话密钥。”

  48. Principle 10 • 但是,当接收者不能确定是否是意定的消息,就需要对消息进行编码 当接受者不能确定形式如“密钥Kas的持有者认为在时刻Ta,Kab是与B通信的好的会话密钥。”的消息是该协议的第一条消息,则需要如此编码。

  49. Example 14 这两条消息之间的区别太小 Needham-Schroeder协议· Trent (T) 1:A, B, NA 2:EA(NA,B,Kab,EB(Kab,A)) Kab 3:EB(Kab,A) Kab 4:EKab(NB) Alice (A) 5:EKab(NB-1) Bob (B) 6:EKab(M)

  50. Example 14 NS协议的另一种编码的方式

More Related