密码协议(Cryptographic Protocol)
目录 |
密码协议,也称安全协议,一般是指在大型公众网络上,多人参与并凭借其达到秘密信息交换,和确定信息完整性的方法。一般而言,密码学中所有的密码系统,例如密钥分配系统、数字签名认证系统、秘密共享系统,均可称为密码协议。密码协议为网络提供安全服务,是网络安全的基本保障。近年来,随着Internet的飞速发展,网络上越来越多的数据传输和交易都需要密码协议的保障和支持。
密码协议的目的不仅仅是为了简单的秘密性,参与协议的各方可能为了计算一个数值需要共享它们的秘密部分、共同产生随机序列、确定互相的身份、或同时签署合同等。
认证协议是一个认证过程,是两方或多方通信实体为达到向对方证明自己拥有某种属性进行的一系列步骤。认证协议可以分为三个子类型:数据源认证、实体认证、密钥建立的认证。
1、数据源认证
数据源认证与数据完整性认证无法完全隔离开来,逻辑上来讲,被篡改过的消息可以认为不是来自最初消息源。不过,这两个概念差别很大,且用途功能不同。数据源认证协议包含以下特征。
(1)包含从某个声称的消息源到接收者的传输过程,该接收者在接收时会验证消息。
(2)接收方执行消息验证的目的在于确认消息发送者的身份,防比敌手冒充合法用户发送消息。
(3)接收方执行消息验证的目的还在于确认收到的消息是否完整(离开消息源之后没有被篡改)。
(4)验证的进一步目的是验证消息的鲜活性(消息是否第一次从正确的消息源被发送出来的)。
2、实体认证
所谓实体认证指的是依照认证协议进行通信的一个过程,基于实体认证技术,一个通信实体可以向另一个通信实体证实自己的身份并得到对方的确认。认证协议的一个重要目标就是实体认证。
3、密钥建立认证协议
认证密钥建立协议主要实现以下功能:为参与某具体协议的若干个参与者实现身份认证,并为这些参与者建立一个新的共享密钥,用于后续的安全通信。作为应用最为广泛的网络通信协议之一,认证密钥建立协议所生成的会话密钥可以构建安全通道,保证应用层上的后续通信的安全。当然,该协议也可以与公钥密码体制一起使用,同时实现机密性和认证性。密钥建立协议通常分为密钥分发协议和密钥交换协议(或密钥协商)等。我们经常用到的认证密钥协议包括Kerboro、认证协议、Needham-Schroeder认证协议等。在密钥建立协议中会包含对实体认证和数据源认证。认证协议也可用于无线网络中安全切换认证,在无线网络中,一个终端用户可能由于实际通信需求,需要切换到另一个基站所覆盖的范围内,这个用户就需要和新的接入点进行相互认证和密钥协商。
在密码技术领域中,认证协议会而临多种攻击方法,这就是认证协议的安全性问题难以解决的原因所在。对认证协议或认证的密钥建立协议的成功攻击,通常并不是指攻破该协议的密码算法,相反,它通常是指攻击者能够以某种未授权并且不被察觉的方式获得某种密码信任证件或者破坏某种密码服务,同时不用破环某种密码算法。这是由于密码设计的错误而不是密码算法的问题。密码协议而临的典型攻击众多。
1、消息重放攻击
攻击者预先记录某个协议先前的某次运行中的某条消息,然后在该协议新的运行中重放(重新发送)记录的消息,由于认证协议的目标是建立通信方之间的真实通信,并且该目标通常是通过多方直接交换新鲜的消息来实现,所以协议之间的消息重发会导致通信方的错误判断,从而导致通信者之间的不真实的通信,且通信者察觉不到。
2、中间人攻击
中间人攻击在本质上众所周知的“象棋大师问题”,它主要针对缺乏双方认证的通信协议中,在攻击过程中,攻击者能够把协议的参与者所提出的困
难问题提交给另一个参与者来回答,然后把答案交给原来提问者,反之亦然。
3、平行会话攻击
在攻击者的安排下,一个协议的多个运行并发执行,在此过程中,攻击者能够从一个运行中得到另外某个运行中的困难问题答案,从而达到攻击的目的。
4、交错攻击
某个协议的两次获多次运行在攻击者的特意安排下按交织的方式执行。在这种模式下,攻击者可以合成其需要的特定消息并在某个运行中进行传送,以便得到某主体应答消息,此应答消息又被用于另外运行的协议中,如此交错运行,最终达到其攻击目的。
在协议的攻击类型中,还有其它更多的攻击方法,比如姓名遗漏攻击、类型缺陷攻击、密码服务滥用攻击等。对密码协议的攻击无法穷尽,除了人们发现或己知的很多攻击之外,可能还存在很多人们没有发现的潜在攻击。由上述针对各种密码协议的攻击方法来看,密码协议所而临的攻击方式是通常是多种多样的,常常会以令人非常吃惊的方式出现。如何设计安全的密码协议或如何检测一个密码协议是否安全是密码技术中的一个严峻课题。
由于认证协议会而临诸多己知攻击及未知的攻击,因此,针对认证协议的安全性分析也成为密码研究中的一个特别重要的研究方向。目前已经有的关于安全协议的分析方法主要可以归纳为4种。
1、基于逻辑推理的分析方法
1989年,BAN逻辑成为逻辑分析的典型代表。作为一个开创性工作,BAN逻辑首次对基于逻辑推理所设计的密码协议进行了形式化分析。在BAN逻辑中,各个参与者在最初始时刻的知识有了形式化定义,参与者的职责也同样得到了形式化。BAN逻辑通过信息的发送和接收等协议步骤可以得到新知识,再利用推理规则获取最终的知识。当协议执行完成后,如果最终得到的知识和信任语句集中没有目标知识和信任的相应语句时,就表明所设计的协议是不安全的,存在缺陷。具体的逻辑分析步骤如下。
(1)协议理想化:通过BAN逻辑语言对实际协议的所有步骤进行描述。
(2)确定初始假设:协议运行开始时的信仰假设和状态假设。
(3)确定断言:所谓确定断言就是将相关逻辑公式附加给协议的语句。
(4)逻辑化推理:所谓逻辑化推理就是利用推理规则,基于假设和断言来得到参与者最终的信仰。最后,对最终得到的逻辑结果判断,检查所设计的协议是否达到设计之初的目标。
2、基于模型检验的分析方法
模型检验技术是一种适用于有限状态系统的自动化分析技术,实际上也是密码协议的一种自动验证工具。从协议的初始状态开始,模型检验(Model Checking)技术就对协议主体和潜在攻击者的所有可能的执行路径进行状态搜索,以确定是否存在错误状态。这种技术方法进行密码协议分析建模是以进程代数、Dolev-Yao模型等为理论基础的。1996年,基于通信顺序进程(Communication Sequential Processes, CSP)方法和模型检验技术,Lowe实现了密码协议的形式化分析。基于CSP模型以及CSP模型的失败差异细化(Failures-Diver-gences Refinement, FDR)检验工具,Lowe对Needham-Schroeder认证协议进行了分析,并发现了针对该协议的一个可行的攻击。其它类似的方法包括Interrogator系统、FDR模型检验工具和NRL(Naval Research Laboratory)协议分析器等。模型检验技术需要而临的难题是如何恰当地把安全协议用对应的分析语言描述。由于该方法是一种状态搜索的过程,当协议稍微复杂时,会而临状态爆炸问题。此外,这种方法的分析过程与攻击者能力的刻画和密码协议的形式化都紧密相关,而攻击者的行为方式却在不断地发展变化。
3、基于定理证明的分析方法
就基于定理证明的分析方法来说,串空间(Strand Space)方法非常重要。串空间方法是Thayer、 Herzog和Guttman于1998年提出并用于密码协议分析的。多个strand的集合构成串空间,strand是一个线性结构,由发送和接收的消息组成,是协议主体或者攻击者的行为事件的一个序列。对于协议的一个诚实主体而言,已在协议一次运行中的行为可以基于一个Strand来表示,不同strand表示不同主体的行为。特别地,一个主体在某个时间段里参加了多次协议运行也用不同的strand来表示。对于攻击者而言,它所获知的消息的发送和接收行为共同组成其、trand中的行为。
4、密码学可证明安全性分析方法
该方法使用现代密码学中可证明安全性的理论,在复杂性理论的框架下提供协议安全证明,是一种规约式证明,把协议的安全性规约到某特定的已知难题。在一些特定框架下能够给出密码协议的安全性证明。