《信息安全工程》课件第12章.ppt

上传人(卖家):momomo 文档编号:7817354 上传时间:2024-08-22 格式:PPT 页数:168 大小:1.25MB
下载 相关 举报
《信息安全工程》课件第12章.ppt_第1页
第1页 / 共168页
《信息安全工程》课件第12章.ppt_第2页
第2页 / 共168页
《信息安全工程》课件第12章.ppt_第3页
第3页 / 共168页
《信息安全工程》课件第12章.ppt_第4页
第4页 / 共168页
《信息安全工程》课件第12章.ppt_第5页
第5页 / 共168页
点击查看更多>>
资源描述

1、第12章安全协议 第12章安全协议 12.1概述概述 12.2密钥建立协议密钥建立协议 12.3认证协议认证协议 12.4认证的密钥建立协议认证的密钥建立协议 12.5安全协议设计规范安全协议设计规范 12.6协议工程协议工程 12.7协议验证协议验证 12.8协议测试协议测试 第12章安全协议 12.1概述概述12.1.1安全协议的定义安全协议的定义所谓协议(Protocol),就是两个或两个以上参与者为完成某项特定的任务而采取的一系列步骤。这个定义包含三层含义:第一,协议自始至终是有序的过程,每一步骤必须依次执行。在前一步没有执行完之前,后面的步骤不可能执行。第二,协议至少需要两个参与者。

2、一个人可以通过执行一系列步骤来完成某项任务,但构不成协议。第三,通过执行协议必须能够完成某项任务。即使某些东西看似协议,但没有完成任何任务,也不能称为协议,只不过是浪费时间的空操作。第12章安全协议 在现实生活中,人们对协议并不陌生,都在自觉或不自觉地使用着各种协议。例如,在处理国际事务时,国家政府之间通常要遵守某种协议;在法律上,当事人之间常常要按照规定的法律程序去处理纠纷;在打扑克、电话订货、投票、到银行存款或取款时,也要遵守特定的协议。通常我们把具有安全性功能的协议称为安全协议。安全协议的设计必须采用密码技术,因此,有时也将安全协议称做密码协议。安全协议的目的是在网络环境中提供各种安全服

3、务,在不安全的公共网络上实现安全的通信。第12章安全协议 NeedhamSchroeder协议是最著名的早期的认证协议,许多广泛使用的认证协议都是以NeedhamSchroeder协议为蓝本而设计的。NeedhamSchroeder协议可分为对称密码体制下的协议和非对称密码体制下的协议两种版本。这些早期的经典安全协议是安全协议分析的“试验床”,即每当出现一个新的形式化分析方法时,都要先分析这几个安全协议,验证新方法的有效性。同时,学者们也经常以它们为例,说明安全协议的设计原则和各种不同分析方法的特点。第12章安全协议 12.1.2安全协议的功能安全协议的功能安全协议提供安全服务,是保证网络安全

4、的基础。下面简单列举一些由安全协议所提供的常用的基本安全服务,它们可以有效地解决以下重要的安全问题:(1)源认证和目标认证:认证协议的目标是认证参加协议的主体的身份。此外,许多认证协议还有一个附加目标,即在主体之间安全地分配密钥或其他各种秘密。(2)消息的完整性:用于保证数据单元或数据单元流的完整性。(3)匿名通信:其主要目的就是隐藏通信双方的身份或通信关系,从而实现对网络用户的个人通信隐私及涉密通信的更好的保护。第12章安全协议(4)抗拒绝服务:抵抗DoS/DDoS攻击。(5)抗否认:其目标一个是确认发方非否认(nonrEpudiationofOrigin),即非否认协议向接收方提供不可抵赖

5、的证据,证明收到消息的来源的可靠性;另一个是确认收方非否认(nonrEpudiationofReceipt),即非否认协议向发送方提供不可抵赖的证据,证明接收方已收到了某条消息。(6)授权:一般指网络服务器向用户授权某种服务的可使用性。目前,安全协议越来越多地用于保护因特网上传送的各种交易,并保护针对计算机系统的访问等。安全协议的研究具有强大的现实应用背景。第12章安全协议 12.1.3密码协议的分类密码协议的分类从不同的角度出发,密码协议有不同的分类方法。迄今尚未有人对安全协议进行过详细的分类。其实,将密码协议进行严格分类是很难的事情。例如,根据安全协议的功能,可以将其分为认证协议、密钥建立

6、(交换、分配)协议、认证的密钥建立(交换、分配)协议;根据ISO的七层参考模型,又可以将其分成高层协议和低层协议;按照协议中所采用的密码算法的种类,又可以分成双钥(或公钥)协议、单钥协议或混合协议等。第12章安全协议 我们认为,比较合理的分类方法应该是按照密码协议的功能来分类,而不管协议具体采用何种密码技术。因此,我们把密码协议分成以下三类:(1)密钥建立协议(KeyEstablishmentProtocol):建立共享秘密。(2)认证协议(AuthenticationProtocol):向一个实体提供对他想要进行通信的另一个实体的身份的某种程度的确信。(3)认证的密钥建立协议(Authent

7、icatedKeyEstablishmentProtocol):与另一身份已被或可被证实的实体之间建立共享秘密。第12章安全协议 12.2密钥建立协议密钥建立协议 12.2.1采用单钥体制的密钥建立协议采用单钥体制的密钥建立协议密钥建立协议可分为密钥传输协议和密钥协商协议两种。前者是由一个实体把建立或收到的密钥安全传送给另一个实体;后者是由双方(或多方)共同提供信息建立起共享密钥,没有任何一方起决定作用。其他如密钥更新、密钥推导、密钥预分配、动态密钥建立机制等都可由上述两种基本密钥建立协议变化得出。可信赖服务器(或可信赖第三方、认证服务器、密钥分配中心KDC、密钥传递中心KTC、证书发行机构C

8、A等)可以在初始化建立阶段、在线实时通信阶段或两者都有的情况下参与密钥分配。第12章安全协议 这类协议假设网络用户Alice和Bob各自都与密钥分配中心KDC(Trent)共享一个密钥。这些密钥在协议开始之前必须已经分发到位。我们并不关心如何分发这些共享密钥,仅假设它们早已分发到位,而且敌手Mallory对它们一无所知。协议描述如下:(1)Alice呼叫Trent,并请求得到与Bob通信的会话密钥。(2)Trent生成一个随机会话密钥,并做两次加密:一次采用Alice的密钥,另一次采用Bob的密钥。Trent将两次加密的结果都发送给Alice。(3)Alice采用共享密钥对属于她的密文解密,得

9、到会话密钥。(4)Alice将属于Bob的那项密文发送给Bob。(5)Bob对收到的密文采用共享密钥解密,得到会话密钥。(6)Alice和Bob均采用该会话密钥进行安全通信。第12章安全协议 12.2.2采用双钥体制的密钥交换协议采用双钥体制的密钥交换协议在实际应用中,Bob和Alice常采用双钥体制来建立某个会话密钥,而后采用此会话密钥对数据进行加密。在某些具体实现方案中,Bob和Alice的公钥被可信赖的第三方签名后,存放在某个数据库中。这就使得密钥交换协议变得更加简单,即使Alice从未听说过Bob,她也能与其建立安全的通信联系。该协议描述如下:(1)Alice从数据库中得到Bob的公钥

10、。(2)Alice生成一个随机的会话密钥,采用Bob的公钥加密后,发送给Bob。(3)Bob采用其私钥对Alice的消息进行解密。(4)Bob和Alice均采用同一会话密钥对通信过程加密。第12章安全协议 12.2.3DiffieHellman密钥交换协议密钥交换协议DiffieHellman算法是在1976年提出的,它是第一个双钥算法。它的安全性基于在有限域上计算离散对数的难度。DiffieHellman协议可以用作密钥交换,Alice和Bob可以采用这个算法共享一个秘密的会话密钥,但不能采用它对消息进行加密和解密。第12章安全协议 12.2.4联锁协议联锁协议联锁协议(InterlockP

11、rotocol)是由R.Rivest和A.Shamir于1984年设计的,它能够有效地抵抗中间人攻击。该协议描述如下:(1)Alice发送她的公钥给Bob。(2)Bob发送他的公钥给Alice。(3)Alice用Bob的公钥对消息加密。此后,她将一半密文发送给Bob。(4)Bob用Alice的公钥对消息加密。此后,他将一半密文发送给Alice。(5)Alice发送另一半密文给Bob。第12章安全协议(6)Bob将Alice的两半密文组合在一起,并采用其私钥解密。Bob发送他的另一半密文给Alice。(7)Alice将Bob的两半密文组合在一起,并采用其私钥解密。第12章安全协议 这个协议最重要

12、的一点是:在仅获得一半而没有获得另一半密文时,对攻击者来说毫无用处,因为攻击者无法解密。在第(6)步以前,Bob不可能读到Alice的任何一部分消息。在第(7)步以前,Alice也不可能读到Bob的任何一部分消息。要做到这一点,有以下几种方法:(1)如果加密算法是一个分组加密算法,则每一半消息可以是输出的密文分组的一半。(2)对消息解密可能要依赖于某个初始化矢量,该初始化矢量可以作为消息的后一半发送给对方。(3)发送的前一半消息可以是加密消息的单向杂凑函数值,而加密的消息本身可以作为消息的另一半。第12章安全协议 12.2.5采用数字签名的密钥交换协议采用数字签名的密钥交换协议在会话密钥交换协

13、议中采用数字签名技术,可以有效地防止中间人攻击。Trent是一个可信赖的实体,他对Alice和Bob的公钥进行数字签名。签名的公钥中包含一个所有权证书。当Alice和Bob收到此签名公钥时,他们每人均可以通过验证Trent的签名来确定公钥的合法性,因为Mallory无法伪造Trent的签名。第12章安全协议 这样,Mallory的攻击就变得十分困难:他不能实施假冒攻击,因为他既不知道Alice的私钥,也不知道Bob的私钥;他也不能实施中间人攻击,因为他不能伪造Trent的签名。即使他能够从Trent获得一签名公钥,Alice和Bob也很容易发现该公钥属于他。Mallory能做的只有窃听往来的加

14、密报文,或者干扰通信线路,阻止Alice与Bob会话。该协议中引入了Trent这个角色。即使密钥分配中心KDC遭到攻击,泄露秘密的风险也要小很多,因为如果Mallory侵入了KDC,那么他能够得到的仅仅是Trent的私钥。Mallory可以采用这一私钥给用户签发新的公钥,但不能用其解密任何会话密钥或阅读任何报文。要想阅读报文,Mallory必须假冒某个合法网络用户,并欺骗其他合法用户采用Mallory的公钥对报文加密。第12章安全协议 一旦Mallory获得了Trent的私钥,他就能够对协议发起中间人攻击。他采用Trent的私钥对一些伪造的公钥签名。此后,他或者将数据库中Alice和Bob的真

15、正公钥换掉,或者截获用户的数据库访问请求,并用伪造的公钥响应该请求。这样,他就可以成功地发起中间人攻击,并阅读他人的通信。这一攻击是奏效的,但是前提条件是Mallory必须获得Trent的私钥,并对加密消息进行截获或修改。在某些网络环境下,这样做显然比坐在两个用户之间实施被动的窃听攻击要难得多。对于像无线网络这样的广播信道来说,尽管可以对整个网络实施干扰破坏,但是要想用一个消息取代另一个消息几乎是不可能的。对于计算机网络来说,这种攻击要容易得多,而且随着技术的发展,这种攻击变得越来越容易。考虑到现存的IP欺骗、路由器攻击等,主动攻击并不意味着非要对加密的报文解密,也不只限于充当中间人,还有许多

16、更加复杂的攻击需要研究。第12章安全协议 12.2.6密钥和消息传输密钥和消息传输Alice和Bob不必先完成密钥交换协议,再进行信息交换。在下面的协议中,Alice在事先没有执行密钥交换协议的情况下,将消息m发送给Bob。(1)Alice生成一随机数作为会话密钥k,并用其对消息m加密:Ek(m)。(2)Alice从数据库中得到Bob的公钥。(3)Alice用Bob的公钥对会话密钥加密:EkBP(k)。(4)Alice将加密的消息和会话密钥发送给Bob:Ek(m)、EkBP(k)。为了提高协议的安全性,以对付中间人攻击,Alice可以对这条消息签名。(5)Bob采用其私钥对Alice的会话密钥

17、解密。(6)Bob采用这一会话密钥对Alice的消息解密。第12章安全协议 12.2.7密钥和消息广播密钥和消息广播在实际中,Alice也可能将消息同时发送给几个人。在下面的例子中,Alice将加密的消息同时发送给Bob、Carol和Dave。(1)Alice生成一随机数作为会话密钥k,并用其对消息m加密:Ek(m)。(2)Alice从数据库中得到Bob、Carol和Dave的公钥。(3)Alice分别采用Bob、Carol和Dave的公钥对k加密:EkBP(k)、EkCP(k)、EkDP(k)。(4)Alice广播加密的消息和所有加密的密钥,将它传送给要接收它的人。(5)仅有Bob、Caro

18、l和Dave能采用各自的私钥解密求出会话密钥k。(6)仅有Bob、Carol和Dave能采用此会话密钥k对消息解密求出m。第12章安全协议 12.3认证协议认证协议12.3.1采用单向函数的认证协议采用单向函数的认证协议在对Alice进行认证时,主机无需知道其口令,只需能够辨别Alice提交的口令是否有效即可。这很容易采用单向函数做到,主机不必存储Alice的口令,只需存储该口令的单向函数值。认证过程如下:(1)Alice向主机发送她的口令。(2)主机计算该口令的单向函数值。(3)主机将计算得到的单向函数值与预先存储的值进行比较。第12章安全协议 12.3.2基于口令的身份认证基于口令的身份认

19、证口令是一种根据已知事物验证身份的方法,也是应用最广泛的身份认证法。在一般的计算机系统中,通常口令由58个字符串组成,其选择原则是易记忆、难猜中和抗分析能力强。同时,还要规定口令的选择方法、使用期限、口令长度以及口令的分配、管理和存储方法等。在计算机操作系统中,口令是一种最基本的安全措施。每个用户都要预先在系统中注册一个用户名和口令,以后每次登录时,系统都要根据用户名及其口令来验证用户身份的合法性,对于非法的口令,系统将拒绝该用户登录系统。第12章安全协议 口令可以由用户个人选择,也可以由管理员分配或系统自动产生。对于后者,不仅管理员知道用户的口令,而且存在口令分发的中间环节,容易产生口令泄漏

20、问题,引起纠纷。在一般情况下,口令最好由用户个人选择。第12章安全协议 防止口令泄漏是保证系统安全的关键环节。口令泄漏的主要原因如下:(1)用户保管不善或被攻击者诱骗而无意中泄漏。(2)在操作过程中被他人窥视而泄漏。(3)被攻击者推测猜中而泄漏。(4)在网上传输未加密口令时被截获而泄漏。(5)在系统中存储时被攻击者分析出来而泄漏。第12章安全协议 防止口令泄漏的主要措施如下:(1)用户必须妥善地保管自己的口令。(2)口令应当足够长,并且最好不要使用诸如名字、生日、电话号码等公开的和有规律性的信息作为口令,以防止口令被攻击者轻易猜中。(3)口令应当经常更换,最好不要长期固定不变地使用一个口令。(

21、4)口令必须加密后才能在网络中传输或在系统中存储,并且口令加密算法具有较高的抗密码分析能力。(5)在安全性要求较高的应用场合,应当采用一次性口令技术,即使口令被攻击者截获,下次也不能使用。第12章安全协议 1.口令存储口令存储通常口令不能以明文形式存储在计算机系统中,必须通过加密才能存储。例如,Unix系统中采用DES密码算法对口令进行加密、存储,即以用户口令的前8个字符作为DES的密钥,对一个常数进行加密,经过25次迭代后,将所得的64位结果变换成一个11位的可打印字符串,并存储在系统的字符表中。有关实验研究表明,使用穷举搜索法从95个可能的打印字符中筛选出4个字符只需二十几个小时。因此,口

22、令长度小于5个字符是不安全的。很多系统采用单向散列函数对口令加密存储,即使攻击者得到散列值,也无法推导出口令的明文。第12章安全协议 2.口令传输口令传输在网络环境下,口令认证系统通常采用客户/服务器模式,由服务器统一管理网络用户的账户,对用户身份进行认证。这时,用户从客户机输入的口令要传送到服务器上进行验证。为了解决口令在网上传输过程中的泄漏问题,通常采用双方默认的加密算法或单向散列函数对口令加密后再传输。3.口令验证口令验证口令认证系统得到用户输入的口令后,与预先存储的该用户口令相比较,如果两者一致,则该用户的身份得到了验证。在某些系统中,需要双方相互认证,不仅系统要检验用户的口令,用户也

23、要检验系统的口令,只有双方的身份都通过认证,才能开始执行后续操作。第12章安全协议 4.口令管理口令管理在网络操作系统中,通常为管理员提供了口令管理工具,可以用来对用户口令设置一些限制性措施,如口令最小长度、定期改变的周期、口令唯一性和口令到期后宽限的登录次数等。在一些系统中,为了解决口令短而带来的不安全问题,采用了在短口令后填充随机数的方法。例如,在一个有4个字符的口令后填充40位随机数,构成一个较长的二进制序列进行加密处理,可大大提高口令的安全性。第12章安全协议 12.3.3基于一次性口令的身份认证基于一次性口令的身份认证 1.未加保护的电话委托过程未加保护的电话委托过程(1)用户在证券

24、公司注册账号和口令。(2)用户使用电话机拨通证券公司账号服务器,并请求电话委托业务。(3)证券公司账号服务器通过电话语音提示用户输入账号和口令。(4)用户的账户和口令以明文方式通过电话线传输到证券公司账号服务器。(5)证券公司账号服务器验证用户的账户和口令后,允许用户通过电话提交委托业务。第12章安全协议 2.基于一次性口令的电话委托过程基于一次性口令的电话委托过程(1)用户在证券公司注册账号和口令(注册口令)。(2)用户使用电话机拨通证券公司账号服务器,并请求电话委托业务。(3)证券公司账号服务器通过电话语音提示用户输入账号。(4)证券公司账号服务器随机生成一个中间口令,并通过电话语音提示给

25、用户。(5)用户将中间口令和注册口令一起输入到一个事先配备的密码计算器中,计算出一个随机口令,然后通过电话线传输到证券公司账号服务器。(6)证券公司账号服务器收到用户的随机口令后,以同样的方法计算出随机口令,并比较两者的一致性。如果两者是一致的,则允许该用户通过电话提交委托业务。第12章安全协议 第12章安全协议 第12章安全协议 12.3.5采用双钥体制的认证采用双钥体制的认证采用双钥体制的认证中,主机保留每个用户的公钥文件,所有用户保留他们各自的私钥。用户登录时,协议的执行过程如下:(1)主机向Alice发送一随机数。(2)Alice用其私钥对此随机数加密,并将密文连同其姓名一起发送给主机

26、。(3)主机在它的数据库中搜索Alice的公钥,并采用此公钥对收到的密文解密。(4)如果解密得到的消息与主机首次发给Alice的数值相等,那么主机就允许Alice对系统进行访问。第12章安全协议 12.3.6基于数字证书的身份认证基于数字证书的身份认证通过数字证书和公钥密码技术可以建立起有效的网络实体认证系统,为网上电子交易提供用户身份认证服务。ISO定义了一种实体认证框架,用于实现实体间认证,也称为X.509协议。具体见本书第8章。第12章安全协议 12.3.7基于生物特征的身份认证基于生物特征的身份认证除了密码领域的身份认证技术外,基于生物特征的身份认证也越来越受到人们的重视。生物特征天生

27、就是用来进行身份认证的。在第11章中,我们已经较为详细地讨论了生物认证技术,因此,这里不再重复论述,仅将其归属为一种认证技术。第12章安全协议 12.3.8消息认证消息认证当Bob收到来自Alice的消息时,他如何判断这条消息是真的呢?如果Alice对这条消息进行数字签名,那么事情就变得十分容易。Alice的数字签名足以提示任何人她签发的这条消息是真的。单钥密码体制也可以提供某种认证。当Bob收到某条采用共享密钥加密的消息时,他便知道此条消息来自Alice。然而,Bob不能向Trent证明这条消息来自Alice。Trent只能知道这条消息来自Bob或者Alice(因为没有其他任何人知道他们的共

28、享密钥),但分不清这条消息究竟是谁发出的。第12章安全协议 12.4认证的密钥建立协议认证的密钥建立协议 12.4.1大嘴青蛙协议大嘴青蛙协议大嘴青蛙协议由Burrows等于1989年提出,它可能是采用可信赖服务器的最简单的对称密钥管理协议。该协议中,Alice和Bob均与Trent共享一个密钥,此密钥只用作密钥分配,而不用来对用户之间传递的消息进行加密,只传送两条消息,Alice就可将一个会话密钥发送给Bob。第12章安全协议 第12章安全协议 12.4.2Yahalom协议协议在Yahalom协议中,Alice和Bob均与Trent共享一个密钥。协议如下:(1)Alice将其姓名和一个随机

29、数链接在一起,发送给Bob:A,RA。(2)Bob将Alice的姓名、Alice的随机数和他自己的随机数链接起来,并采用与Trent共享的密钥kB加密。此后,Bob将加密的消息和他的姓名一起发送给Trent:B,EkB(A,RA,RB)。(3)Trent生成两条消息。首先,Trent将Bob的姓名、某个随机的会话密钥、Alice的随机数和Bob的随机数组合在一起,并采用与Alice共享的密钥kA对整条消息加密;其次,Trent将Alice的姓名和随机的会话密钥组合起来,并采用与Bob共享的密钥kB加密;最后,Trent将两条消息发送给Alice,即EkA(B,k,RA,RB)、EkB(A,k)

30、。第12章安全协议(4)Alice对第一条消息解密,提取出k,并证实RA与在(1)中的值相等。之后,Alice向Bob发送两条消息,第一条消息来自Trent,采用Bob的密钥加密,第二条是RB,采用会话密钥k加密,即EkB(A,k)、Ek(RB)。(5)Bob用他的共享密钥对第一条消息解密,提取出k;再用该会话密钥对第二条消息解密求出RB,并验证RB是否与(2)中的值相同。最后的结果是:Alice和Bob均确信各自都在与对方进行对话,而不是与另外第三方通话。这个协议的新思路是:Bob首先与Trent接触,而Trent仅向Alice发送一条消息。第12章安全协议 12.4.3NeedhamSch

31、roeder协议协议这个协议是由R.Needham和M.Schroeder设计的,采用了单钥体制和Trent,无时戳。协议描述如下:(1)Alice向Trent发送一条消息,其中包括她的姓名、Bob的姓名和某个随机数:A,B,RA。(2)Trent生成一个随机会话密钥k。他将会话密钥和Alice的姓名链接在一起,并采用与Bob共享的密钥对其加密。此后,他将Alice的随机数、Bob的姓名、会话密钥以及上述加密的消息链接,并采用与Alice共享的密钥加密。最后,Trent将加密的消息发送给Alice:EkA(RA,B,k,EkB(k,A)。第12章安全协议(3)Alice对消息解密求出k,并验证

32、RA就是她在(1)中发送给Trent的值。之后,她向Bob发送消息:EkB(k,A)。(4)Bob对收到的消息解密求出k。之后,他生成另一随机数RB,采用k加密后发送给Alice:Ek(RB)。(5)Alice用k对收到的消息解密得到RB。她生成RB-1,并采用k加密。最后,Alice将消息发送给Bob:Ek(RB-1)。(6)Bob采用k对消息解密,并验证得到的明文就是RB-1。第12章安全协议 12.4.4OtwayRees协议协议这一协议也采用了单钥密码体制,有Trent参与,无时戳。协议描述如下:(1)Alice生成一条消息,其中包括一个索引号码、Alice的姓名、Bob的姓名和一个随

33、机数,并将这条消息采用她与Trent共享的密钥加密。此后,将密文连同索引号I、Alice和Bob的姓名一起发送给Bob:I,A,B,EkA(RA,I,A,B)。(2)Bob生成一条消息,其中包括一个新的随机数、索引号、Alice和Bob的姓名,并将这条消息采用他与Trent共享的密钥加密。此后,将密文连同Alice的密文、索引号、Alice和Bob的姓名一起发送给Trent:I,A,B,EkA(RA,I,A,B),EkB(RB,I,A,B)。第12章安全协议(3)Trent生成一个随机的会话密钥。此后,生成两条消息:第一条消息是将Alice的随机数和会话密钥采用他与Alice共享的密钥加密;第

34、二条是将Bob的随机数和会话密钥采用他与Bob的共享密钥加密。最后,Trent将这两条消息连同索引号一起发送给Bob:I,EkA(RA,k),EkB(RB,k)。(4)Bob将属于Alice的那条消息连同索引号一起发送给Alice:I,EkA(RA,k)。(5)Alice对收到的消息解密得到随机数RA和会话密钥。如果RA与(1)中的值相同,那么Alice确认随机数和会话密钥没有被改动过,并且不是重发某个旧会话密钥。第12章安全协议 12.4.5Kerberos协议协议Kerberos协议描述如下:(1)Alice向Trent发送她的身份和Bob的身份:A,B。(2)Trent生成一条消息,其中

35、包含时戳、有效期L、随机会话密钥和Alice的身份,并采用与Bob共享的密钥加密。此后,他将时戳、有效期、会话密钥和Bob的身份采用与Alice共享的密钥加密。最后,Trent将这两条加密的消息发送给Alice:EkA(T,L,k,B),EkB(T,L,k,A)。第12章安全协议(3)Alice采用k对其身份和时戳加密,并连同从Trent收到的、属于Bob的那条消息发送给Bob:Ek(A,T),EkB(T,L,k,A)。(4)Bob将时戳加1,并采用k对其加密后发送给Alice:Ek(T+1)。此协议运行的前提条件是假设每个用户必须具有一个与Trent同步的时钟。实际上,同步时钟是由系统中的安

36、全时间服务器来保持的。通过设立一定的时间间隔,系统可以有效地检测到重发攻击。第12章安全协议 12.4.6NeumanStubblebine协议协议NeumanStubblebine协议的特点是能够对付等待重发攻击,它是Yahalom协议的加强版本,是一个很好的协议。该协议的描述如下:(1)Alice将她的姓名和某个随机数链接起来,发送给Bob:A,RA。(2)Bob将Alice的姓名、随机数和时戳链接起来,并采用与Trent共享的密钥加密。此后,Bob将密文连同他的姓名、新产生的随机数一起发送给Trent:B,RB,EkB(A,RA,TB)。第12章安全协议(3)Trent生成一随机的会话密

37、钥。之后,他生成两条消息:第一条采用与Alice共享的密钥对Bob的身份、Alice的随机数、会话密钥和时戳加密;第二条采用与Bob共享的密钥对Alice的身份、会话密钥和时戳加密。最后,他将这两条消息连同Bob的随机数一起发送给Alice:EkA(B,RA,k,TB),EkB(A,k,TB),RB。(4)Alice对属于她的消息解密得到会话密钥k,并确认RA与(1)中的值相等。此后,Alice发送给Bob两条消息:第一条消息来自Trent,第二条消息采用会话密钥对RB加密,即EkB(A,k,TB)、Ek(RB)。第12章安全协议(5)Bob对第一条消息解密得到会话密钥k,并确认TB和RB的值

38、与(2)中的值相同。假设随机数和时戳均匹配,那么Alice和Bob就相互确认了对方的身份,并共享一个会话密钥。这个协议不需要同步时钟,因为时戳仅与Bob的时钟有关,Bob只对他自己生成的时戳进行检查。第12章安全协议 这个协议的优点是:在预定的时限内,Alice能够将收自Trent的消息用于随后与Bob的认证中。假设Alice和Bob已经完成了上述协议,并建立连接开始通信,但由于某种原因连接被中断。这种情况下,Alice和Bob不需Trent的参与,仅执行三步就可以实现相互认证。此时,协议的执行过程如下:(1)Alice将Trent在(3)中发给她的消息,连同一个新随机数一起发送给Bob:Ek

39、B(A,k,TB),RA。(2)Bob采用会话密钥对Alice的随机数加密,连同一个新的随机数发送给Alice:RB,Ek(RA)。(3)Alice采用会话密钥对Bob的新随机数加密,并发送给Bob:Ek(RB)。第12章安全协议 12.4.7DASS协议协议分布认证安全服务(DistributedAuthenticationSecurityService)协议是由DEC(DigitalEquipmentCorporation)公司开发的,其目的也是提供双向认证和密钥交换。DASS既采用了双钥密码体制,也采用了单钥密码体制。该协议假设Alice和Bob各自具有一个私钥,而Trent掌握着他们的

40、签名公钥。DASS协议的描述如下:(1)Alice将Bob的身份发送给Trent:B。(2)Trent将Bob的公钥和身份链接,并采用其私钥SkTS对消息进行数字签名:SkTS(B,kBP),发送给Alice。第12章安全协议 (3)Alice对 Trent 的签名加以验证,以证实她收到的公钥就是 Bob的公钥。她生成一个会话密钥和一个随机的公钥/私钥对PK,并用K对时戳加密。之后,她采用私钥AK 对会话密钥的有效期L、自己的身份和PK 进行签名。最后,她采用 Bob 的公钥对会话密钥K加密,再用PK对 其 签 名。最 后,她 将 所 有 的 消 息 发 送 给 Bob:)(),(),(KES

41、KALSTEBPAKKPKAK。(4)Bob 将 Alice的身份发送给 Trent(这里的 Trent 可以是另外一个实体):A。第12章安全协议 第12章安全协议 第12章安全协议 第12章安全协议 (3)Alice 首先采用其私钥对一个随机的会话密钥和时戳签名,再采用 Bob 的公钥加密。最后,将结果连同收到的两个签名公钥一起发送给Bob:),(AABTKSE,),(),(ATBTKASKBS (4)Bob 采用其私钥对收到的消息解密,此后采用 Alice 的公钥对Alice 的签名进行验证。最后,检验时戳是否仍然有效。至此,Alice 和 Bob 都具有一个会话密钥K,他们可以用其进行

42、安全的通信。第12章安全协议 第12章安全协议 第12章安全协议 第12章安全协议 第12章安全协议 12.4.10EKE协议协议加密密钥交换EKE(EncryptedKeyExchange)协议是由S.Bellovin和M.Merritt于1992年提出的。该协议既采用了单钥体制,也采用了双钥体制。其目的是为计算机网络上的用户提供安全性和认证业务。这个协议的新颖之处是:采用共享密钥来加密随机生成的公钥。通过运行这个协议,两个用户可以实现相互认证,并共享一个会话密钥k。第12章安全协议 第12章安全协议 第12章安全协议(6)Bob对消息解密得到RB。假设收自Alice的RB与(4)中Bob发

43、送的值相同,则协议就完成了。通信双方可以采用k作为会话密钥。EKE协议可以采用各种双钥算法来实现,如RSA、ElGamal、DiffieHellman协议等。第12章安全协议 12.4.11安全协议的设计原则安全协议的设计原则选用和设计何种类型的协议要根据实际应用对确认的要求以及实现的机制来定,需要考虑多方面的因素,主要有:(1)认证的特性:是实体认证、密钥认证和密钥确认的任何一种组合。(2)认证的互易性(Reciprocity):认证可能是单方的,也可能是相互的。(3)密钥的新鲜性(Freshness):保证所建立的密钥是新的。(4)密钥的控制:有的协议由一方选定密钥值,有的则通过协商由双方

44、提供的信息导出,不希望由单方来控制或预先定出密钥值。第12章安全协议(5)有效性:包括参与者之间交换消息的次数、传送的数据量、各方计算的复杂度以及减少实时在线计算量的可能性等。(6)第三方参与:包括是否有第三方参与、在有第三方参与时是联机还是脱机参与,以及对第三方的信赖程度。(7)是否采用证书以及证书的类型。(8)不可否认性:可以提出收据证明已收到交换的密钥。第12章安全协议 12.5安全协议设计规范安全协议设计规范 12.5.1对协议的攻击对协议的攻击在分析协议的安全性时,常用的方法是对协议施加各种可能的攻击来测试其安全度。密码攻击的目标通常为:协议中采用的密码算法,算法和协议中采用的密码技

45、术,协议本身。由于本节仅讨论密码协议,因此我们将只考虑对协议自身的攻击,假设协议中所采用的密码算法和密码技术均是安全的。对协议的攻击可以分为被动攻击和主动攻击。第12章安全协议 被动攻击是指协议外部的实体对协议执行的部分或整个过程实施窃听。攻击者对协议的窃听并不影响协议的执行,他所能做的是对协议的消息流进行观察,并试图从中获得协议中涉及各方的某些信息。他们收集协议各方之间传递的消息,并对其进行密码分析。这种攻击实际上属于一种唯密文攻击。被动攻击的特点是难以检测,因此在设计协议时应该尽量防止被动攻击,而不是检测它们。第12章安全协议 主动攻击对密码协议来说具有更大的危险性。在这种攻击中,攻击者试

46、图改变协议执行中的某些消息以达到获取信息、破坏系统或获得对资源的非授权的访问等目的。他们可能在协议中引入新的消息,删除消息,替换消息,重发旧消息,干扰信道或修改计算机中存储的信息。在网络环境下,当通信各方彼此互不信赖时,这种攻击对协议的威胁显得更为严重。攻击者不一定是局外人,他可能就是一个合法用户或一个系统管理者,也可能是几个人联手对协议发起攻击,还可能就是协议中的一方。第12章安全协议 若主动攻击者是协议涉及的一方,我们称其为骗子(Cheater)。骗子可能在协议执行中撒谎,或者根本不遵守协议。骗子也可以分为主动骗子和被动骗子。被动骗子遵守协议,但试图获得协议之外更多的信息;主动骗子不遵守协

47、议,对正在执行的协议进行干扰,试图冒充它方或欺骗对方,以达到各种非法目的。如果协议的参与者中多数都是主动骗子,那么就很难保证协议的安全性。但是在某些情况下,合法用户可能会检测到主动欺骗的存在。显然,密码协议对于被动欺骗应该是安全的。第12章安全协议 12.5.2安全协议设计规范的具体内容安全协议设计规范的具体内容在协议的设计过程中,一方面,通常要求协议具有足够的复杂性以抵御交织攻击;另一方面,还要尽量使协议保持足够的经济性和简单性,以便应用于低层网络环境。如何设计密码协议才能满足安全性、有效性、完整性和公平性的要求呢?这就需要对设计空间规定一些边界条件。归纳起来,可以提出以下安全协议的设计规范

48、:第12章安全协议(1)采用一次随机数来替代时戳。在已有的许多安全协议设计中,人们多采用同步认证方式,即需要各认证实体之间严格保持一个同步时钟。在某些网络环境下,保持这样的同步时钟并不难,但对于某些网络环境却十分困难。因此,建议在设计密码协议时,应尽量采用一次随机数来取代时戳,即采用异步认证方式。第12章安全协议(2)具有抵御常见攻击的能力。对于所设计的协议,我们必须能够证明它们对于一些常见的攻击方法(如已知或选择明文攻击、交织攻击等)是安全的。换言之,攻击者永远不能从任何“回答”消息或修改过去的某个消息中推出有用的密码消息。(3)可采用任何密码算法。协议必须能够采用任何已知的和具有代表性的密

49、码算法。这些算法可以是对称加密算法(如DES、IDEA),也可以是非对称加密算法(如RSA)。例如,IEEE802.11(i)中的AESCCMP协议限定使用AES算法,而WAPI不限定分组算法为SMS4,明显后者更为灵活。IEEE后来承认了这个事实,并许诺进行改变,但到目前为止,并没有任何改变。第12章安全协议(4)不受出口的限制。目前,各国政府对密码产品的进出口都进行了严格的控制。在设计密码协议时,应该做到使其不受任何地理上的限制。现在大多数规定是针对分组加密/解密算法的进出口加以限制的。然而,对于那些仅仅用于数据完整性保护和具有认证功能的技术的进出口往往要容易得多。因此,对于某种技术,若其

50、仅依赖于数据完整性和认证技术而非数据加密函数,则它取得进出口许可证的可能性很大。例如,如果协议仅提供消息认证码功能,而不需要对大量的数据进行加密和解密,那么就容易获得进出口权。这就要求我们在设计协议时,尽量避免采用加密和解密函数。现有的许多著名的协议(如Kerberos、X9.17等),就不满足这个要求,因为它们涉及大量的数据加密和解密运算。IEEE802.11(i)中的AESCCMP协议使用的AES算法在无线局域网领域被中国限制,此外还有其他一些国家抵制使用AES。第12章安全协议(5)便于进行功能扩充。协议对各种不同的通信环境具有很高的灵活性,允许对其进行可能的功能扩展,起码对一些显然应具

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 计算机与IT类
版权提示 | 免责声明

1,本文(《信息安全工程》课件第12章.ppt)为本站会员(momomo)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|