最新 密码协议设计与分析
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
9.2.1 协议设计的一般原则
准则1 每个消息应清楚地说明它的意思,对消 息的解释应完全依靠其内容,而不必借助 于上下文来推断。即使存在合适的形式化 表达方法,每个消息的内容也应该可以用 一个完整的、有意义的语句来描述。
例如: A B : Ta , Kab , B, AKb A发送的消息的意义可解释为:A在时刻向Ta B发送了一个共享的( K b 来保证)会话密 钥 K ab 。 B 接收到上述消息但不能确信这个消息 是不是 A发送的,因此B把接收到的消息 解释为:B在 Ta 时刻收到了自称是主体 A发送来的会话密钥 K ab 。
认证协议:认证协议中包括实体身份 认证协议、消息认证协议、数据源认 证和数据目的认证协议等,用来防止 假冒、篡改、否认等攻击。 认证和密钥交换协议:这类协议将认 证和密钥交换协议结合在一起,是网 络通信中最普遍应用的安全协议。
电子商务协议:电子商务协议中主体 往往代表交易的双方,交易双方的利 益目标是不一致的,或者根本就是矛 盾的(买卖双方利益当然是矛盾的)。 电子商务协议为下一步的安全通信分 配所需的会话密钥,是网络通信中应 用最普通的安全协议。
a
1
Kb
另外,可以用 Hash 函数来代替非 对称密码体制中的加密,达到秘密 通信和签名认证的效果,消息形式 如下:
A B : X Kb , H X Ka1
准则6 要清楚地知道协议中所使用的 临时值的特性。临时值可以用于确 保时间上的连续性,也可以用于确 保关联性,还可以通过其它方式建 立关联性。
a 1 b
准则4(加密准则) 应该清楚地知道协议中使用加 密的目的,因为加密不是一种简单的 运算,它需要的计算量较大,不清楚 加密的目的可能会导致冗余。而且加 密并不等同于安全,不正确的使用加 密将导致协议的错误。
例如: 在原Kerberos协议的消息(2)
S A : Ts , L, K ab , B, Ts , L, K ab , AK
bs
K as
பைடு நூலகம்
中采用了双重加密,而从安全和认 证的角度来看,这并不能加强安全性, 却增加了计算量。
准则5(加密消息的签名准则) 如果主体对已加过密的消息进 行了签名操作,那么不能由此推断出 主体知道该消息的内容。反之,如果 主体对消息先签名然后再加密,那么 可以推断出主体知道该消息的内容。
例如 : 在规则 1的例子中,为了进一步确定 发送者的身份,可将消息流改为:
准则7 在激励――响应交换中可以使用 可预测的值(如计数器的值)来保证 新鲜性,但是如果这一可预测的值对 协议的影响很大,那么就应该对该值 进行保护,这样入侵者就不能模拟激 励、以后再重放响应。
密码协议设计与分析
本章的目标
理解对经典的协议Kerberos协议的分 析和设计。掌握协议设计的一般原则 (11条),和更直观的设计准则(8 条)。2课时 有兴趣的同学还可以自学BAN逻辑和 BAN类逻辑,对安全协议进行形式化 分析。
主要内容
9.1 密码协议概述
9.3 密码协议的安全性分析
9.4大嘴青蛙协议,Kerberos认证协议 9.2 协议设计的一般原则 小结
准则2 一个消息起作用的条件应该清 楚地说明,以便协议的使用者能够 根据条件来判断是否采用该协议。
例如: 如果某人认为会话密钥应该由 合适的可信第三方而不是参与会话 的某一方选定,那么他将不会希望 使用大嘴青蛙这样的协议。
准则3(主体命名准则) 如果主体的身份对于某个消 息的意义来说是必要的,那么应 该谨慎处理主体的身份信息,如 在消息中明确地提到主体的名字。
9.1 密码协议概述
所谓协议,就是指两个或两个以上
的参与者为完成某项特定的任务而采
取的一系列步骤。
密码协议就是建立在密码体制基
础上的一种交互通信的协议。
网络通信中的密码协议按照其完成 的功能可以分成以下4类: 密钥交换协议:又称为密钥创建协议, 一般情况下是在参与协议的两个或者 多个实体之间建立共享的秘密,通常 用于建立在一次通信中所使用的会话 密钥。
Ka
Kc
这样,就可以对 C 进行欺骗,使 得C相信消息来自于A。尤其是,C可 能会用 K ab加密敏感信息并发送给A, 这时 B 就可以看到这些信息。改进的 方法很简单,即把通信双方的身份信 息加入消息(3)中: K ab , Ta , A, BK K (3)A B : CA, CB,
9.2 协议设计的一般原则
如果在协议的设计阶段就能充分考虑 一些不当的协议结构可能使协议的安全性 遭受破坏从而避免不必要的协议错误,将 是 事 半 功 倍 的 。 Martin Abadi 和 Roger Needham在《密码协议谨慎的工程实现》 一文中很好地总结了密码协议设计应该遵 循的一般原则和方法,归纳如下。
例如,对于如下协议: (1) A S : A, B (2) S A : CA, CB (3)A B : CA, CB, K ab , Ta K 1 a Kb 在第( 3 )步中的加密消息中, 由于没有主体的身份信息,因此主 体 B得到消息( 3 )后,可以进行以 下操作: B C : CA, CC , K ab , Ta 1
例如,对于Ottway-Rees协议: (1)A B : M , A, B, N a , M , A, BKas (2)B S : M , A, B, N a , M , A, BKas , Nb , M , A, BKbs (3)S B : M , N a , K ab Kas , N b , K ab Kbs (4) B A : M , N a , K ab Kas 一次性随机数据和在消息流( 1 )、 (2)中起到连接认证A、B的作用, 而在消息流(3)、(4)中是用来保 证新鲜性。
A B : Ta , K ab , B, AK
又如,对于ITU-T X.509协议中的消息: (1) A B : A, Ta , N a , B, X a , Ya K b K a 1 在该消息流中,虽然是包含在签过名的 消息中发送的,但却没有证据表明发送者 确实知道经过私钥加密的数据。