版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章协议安全技术一.协议安全基础
1.安全协议的概念安全协议与信息安全何谓安全协议?
我们从一个有关安全协议的经典例子入手来介绍安全协议的基本念。在这个例子中,有两个用户Alice(简称A)和Bob,他们通过某种方式获得了对方可行的公钥。Alice希望和Bob实现在不安全网络环境中的安全通信。
所谓安全通信,首先Alice要知道她所通信的对象一定是Bob。同样,Bob也要确信他所通信的对象是Alice。这种对通信实体身份的确认就是所谓的身份认证(IdentificationAuthentication),因此Alice和Bob之间安全通信的第一个目标就是实现双向认证。其次,还需确保通信过程中消息的机密性,即除了Alice和Bob之外,不应该有第三方知道他们正在交换的消息的内容。解决消息机密性最有效的方法就是加密。但是,由于Alice和Bob除了知道对方的公钥(即和)之外,并无其它有关机密的任何信息。当然,他们可以通过用对方的公钥来加密消息的方式来提供消息的机密性。但是,一来公钥加密算法加密速度慢,有可能影响通信性能,二来包含公钥的密文积累过多,可能造成密钥失窃的情况。为此,他们约定采用对称加密算法(如DES)来实现消息的机密性。
但是,如何获得称加密算法所需要的加密和解密密钥又成为了一个问题。简单的方法是,该密钥可以由Alice在本地生成后传给Bob,但是由于二人相隔千里,无法面对面交换,而其它方式(如电子邮件、电话等)均不是理想和安全的交换方式。为此,他们希望通过某种方式,能够在已知对方公钥的基础之上,提供加密密钥交换的功能。此即为安全通信的第二个目标:在Alice和Bob之间实现共享秘密(分别记为和)的安全交换。获得共享秘密和后,对称加密算法所需要的密钥可以通过某种约定的方式由和来生成。当然,Alice和Bob希望在网络上通过交换消息来实现。一个称之为Needham-Schroeder公钥认证协议(简称NSPK协议)的安全协议可以用来实现Alice和Bob的目标。其描述如协议4-1-1所示。NSPK协议协议主体就是协议的参与者(或用户)。其中圆括号中的数字表示消息的顺序;符号“→”表示消息的流向:M”表示Alice向Bob发送消息M;{M}K表示用密钥k对消息M进行加密;A是Alice的身份,Na和Nb是新鲜的一次性随机数。所谓新鲜的一次性随机数(Nonce)或一次性随机数是指该随机数在产生时间上很新,且用完后即被丢弃,不会重用。上述NSPK就是一个典型的安全协议(SecurityProtocol)。通过对NSPK协议的分析,可得到如下结论:(1)NSPK是一个协议定义5-1-1协议(Protocol):是两个或两个以上参与者之间为完成某项特殊任务而采取的一系列步骤。NSPK本质上看就是一个网络协议,它必须具备网络协议的三要素。(2)NSPK中用到了密码技术综合上述两个特点,可以得到安全协议的定义:定义5-1-2安全协议(SecurityProtocol):是在消息交换和处理过程中使用了若干密码算法的协议。安全协议的内涵是,安全协议是一个协议;安全协议必定涉及密码算法;安全协议目标是在密码算法的基础之上为网络安全提供一个解决方案。2.安全协议的分类(1)密钥交换协议密钥交换协议可分为两种情况:密钥传输和密钥协商。在密钥传输中,需交换的共享密钥其中的一个协议主体生成,通过密钥交换协议传递给其它协议主体。而在密钥协商协议中,需交换的共享密钥不是有协议主体单方面生成,而是协议主体在交换一个或多个共享秘密信息之后,将这些秘密信息输入一个预定函数而得到。协议5-1-2是一个典型的密钥传输协议的例子,而协议5-1-3则是一个密钥协商协议。协议5-1-2由4条消息组成,需要交换的共享密钥由Bob生成,通过协议传递给Alice。协议过程中用到了对称密码算法和认证,使用一次性随机数的目的是为了防范重放攻击。Diffie-Hellman密钥交换协议是基于有限域中计算离散对数的困难性问题之上的。离散对数问题是指对任意正整数x,计算gx(modp)是容易的;但是已知g、Y、p和求x,使Y=gx(modp)是计算上几乎不可能的。协议5-1-3由3条消息组成,其中xa和xb分别为Alice和Bob选择的随机数。在消息交换之后,Alice计算。同理,Bob计算,因此实现了共享密钥(或秘密)的交换。协议5-1-4和协议5-1-5分别为基于公钥体制的单向和双向认证协议。需要注意的是,双向认证协议一般不能等同于两个单向认证协议的简单叠加。认证协议按照哪些实体的身份需要进行认证可分为单向认证协议和双向认证协议。在前者中,仅有一个实体的身份得以认证,而在后者中,两个实体的身份均得到认证。认证协议一般需要使用密码算法。协议5-1-5由3条消息组成,其中、、和是可选内容。协议的认证过程读者可结合有关知识自行分析。协议5-1-6是DH协议的一个改进版本,不仅实现了双向认证,而且实现了双向密钥确认,因而属于认证与密钥交换协议。协议5-1-6由3条消息组成,其中。由于采用了签名机制来保证消息的真实性,因此可以抵御许多针对DH协议的攻击。(3)认证与密钥交换协议与其它类型的安全协议相比,电子商务协议具有显著的特殊性。在电子商务安全协议中,协议主体往往是交易的双方和金融机构,因此远比一般安全协议复杂。此外,除了一般协议中要求的机密性、完整性和不可抵赖性之外,电子商务安全协议还特别强调公平性(Fairness)和匿名性(Anonymity)。前者指协议应该保证交易双方都不能通过损害对方的利益而得到不应该得到的利益,后者指交易双方的身份应该尽量不为他人所知(有时甚至要求交易双方和金融机构也不能知道交易方的信息)。安全电子交易(SET协议)是一个典型的电子商务安全协议,有关电子商务安全协议及SET协议的有关内容可参照本书的其它章节。(4)电子商务安全协议(1)仲裁协议仲裁协议需要借助于一个称之为仲裁者的可信第三方(TrustedThirdParty)来完成消息交换。可信意味着仲裁者在协议过程中并无既得利益,且于协议中的其它任何主体之间无厉害关系,因此协议主体也乐于信赖该仲裁者。在仲裁者的帮助下,协议主体之间完成协议过程。2.按照是否需要可信第三方分类仲裁协议原理示意图裁决协议原理示意图如图5-1-3所示。由图5-1-3可知,裁决者Trent并不参与Alice和Bob之间的交易,仅当Bob没有收到书款提交裁决请求时,Trent才参与协议。如果交易顺利完成,Trent在协议中无需承担任何工作,其负担大为减轻。(3)自动执行协议自动执行协议不需要任何第三方(如仲裁者和裁决者)的参与,在协议主体之间完成协议过程。由于自动执行协议本身就保证了协议的安全性(如机密性、公平性等),因此不需要仲裁者来协助完成协议,也不需要裁决者来解决争端,因此是比较好的一种安全协议。但是,设计一个安全的自动执行协议具有很高的难度,目前属于安全协议研究的热点问题。以上述Alice向Bob购书为例,要设计一个无仲裁者和裁决者的自动执行协议无疑是极为困难的事情。1.安全协议缺陷与安全协议模型二.协议安全的缺陷
在实际应用中,要设计一个安全的协议是极为困难的。以著名的DH协议(协议5-1-3)为例,由于存在针对该协议的“中间人攻击”,因此DH协议就不是一个绝对安全的协议。所谓中间人攻击,就是攻击者作为第三者,插入到协议主体Alice和Bob的通信过程的中间,对对消息进行处理,从而破坏协议的正常执行。DH协议的中间人攻击如攻击5-2-1所示。在攻击5-2-1中,Malice作为中间人,截获Alice发送给Bob的gx,并用自己计算的替代后以Alice的名义转发给Bob。而Bob并不知晓中间人Malice的存在,因此以为是Alice向自己发起密钥交换请求,因此发送自己的给Alice。Malice在此截获,用替代后以Bob的名义转发给Alice。按照协议规则,Alice和Bob在协议终止后计算所得共享密钥分别为和,二人并不知晓所共享的密钥是否相同,且已为Malice所拥有。而作为中间人的Malice,则同时获得了Alice和Bob所拥有的两个密钥(即和)。在随后的通信中,当Alice用加密消息时,Malice可以用相同的解密,得到消息的明文,并对该明文消息用加密后转发给Bob。后者可以用自己拥有的解密,因此不能感知任何错误或异常。同样,对于Bob发送给Alice的加密消息,Malice可以采用密钥实施欺骗功能。因此,了解安全协议常见问题及其产生原因,有助于设计和验证协议的安全性。导致协议不安全的根本原因在于协议所运行环境的复杂性。该复杂性的典型代表是存在协议攻击者。协议攻击者(ProtocolAttacker,以下简称攻击者)是指了解安全协议,并利用一定的方式对安全协议的过程进行破坏,从而导致安全协议预定目标不能正常实现的通信实体。攻击者可以是协议的主体,也可以是协议主体之外的其它主体(如DH协议中的中间人)。因此,攻击者可能存在与协议运行过程中,也可能存在于协议运行的环境中。图5-2-1是攻击者与协议及其协议运行环境的关系示意图。图5-2-1是攻击者与协议及其协议运行环境的关系示意图。攻击者有被动和主动之分。被动攻击者通过窃听并截获协议消息。而主动攻击者不仅可以截获消息,而且可以对其进行修改,甚至于它还可以伪装成协议主体与其它诚实协议主体通信。在考虑协议安全时,需要对攻击者的能力进行定义,即必须对攻击者进行建模,获得攻击者模型(attackermodel或adversarymodel)。一般而言,绝对安全的协议是极难设计和构造的,因此所谓协议的安全性,一般为在假定攻击者模型下,证明协议是安全的。为此,攻击者模型在协议安全分析占有举足轻重的地位和作用。(1)截获并延迟消息的发送;(2)截获并重新发送消息到任意接收者;(3)截获并修改消息,并可转发给任意接收者;(4)可以产生新的消息(包括新鲜的消息)。(5)可以对消息进行分离;(6)可以对多个消息进行组合;(7)知道密钥后可解密消息和重新加密消息;(8)可以查看和掌握协议相关的公用信息;在众多攻击者模型中,Dolev-Yao模型是公认较好的模型之一。在Dolev-Yao攻击者模型中,一般假设攻击者具有如下能力:由此可见,一个合理的攻击者模型,应该假定攻击者的能力较强。如果轻视或忽略攻击者这种能力,得出协议是安全的结论是极为不合理的,有时甚至是荒谬的。此外,Dolev-Yao模型假定攻击者不具备如下能力:(1)不知道密钥不能进行加密和解密操作(即密码算法是安全的);(2)不能获得加密消息的部分内容;(3)不能猜测密钥或密钥的一部分;(4)不能进行统计分析。总之,由于存在攻击者,因此设计一个安全的协议是非常困难的任务.除了由于存在攻击者而导致协议不安全之外,协议自身的缺陷也是导致协议不安全的原因之一。存在协议缺陷的原因可能是协议设计过程不规范,也可能是在协议执行时产生。常见的协议缺陷包括:(1)基本协议缺陷:协议中没有或者很少考虑对攻击者的防范而引发的协议缺陷(如TCP/IP协议的安全缺陷问题等)。(2)口令/密码设置缺陷:在设置和使用口令或密码的过程中,未考虑攻击者对其的猜测攻击等情况(如口令和密码过短,直接采用用户名来作为口令和密码等)。(3)陈旧消息缺陷:在协议设计过程中,未考虑消息的时效性(即新鲜性),从而使得攻击者可以利用协议过程中产生的过时消息来对协议进行重放攻击。(4)并行会话缺陷:协议设计对仅考虑单个协议执行的情况,对多个协议(或同一个协议的多个运行实例)并行会话缺乏考虑,使得攻击者可以相互交换适当的协议消息来获得更为重要的消息。(5)内部协议缺陷:协议参与者中至少有一方不能够完成所有必须的动作而导致缺陷。(6)密码系统缺陷:协议中使用的密码算法的安全强度问题导致协议不能完全满足所要求的机密性、完整性、认证等需要而产生的缺陷。以下通过针对协议5-2-2(NSSK协议)来阐释消息重放攻击。攻击者Malice通过对Alice和Bob过去某次NSSK协议的通过过程进行窃听,获得了其中的第三条消息{kab,A}kbt.通过对该加密消息的攻击(如典型的蛮力破解),破译了该消息,从而得到了Alice和Bob使用的会话密钥kab.当然,该破译过程可能需要较长的时间(如一年甚至更长)。一旦获得旧的会话密钥kab之后,Malice可以在今后某个时刻重新发送过去截获的旧消息{kab,A}kbt而Bob对此并无只觉,因此它按照协议执行。随后的过程重Malice可以成功欺骗Bob,使得Bob认为和Alice发起了一次认证和密钥交换协议,并使得Alice(实质上是Malice伪装成Alice)的身份得以认证通过。但是,Alice在整个协议过程中根本未出现,所有的行为均为攻击者Malice所为。通过对攻击5-2-2的分析可知,重放攻击之所以成功,其根本原因在于消息的新鲜性无法得到保证。如当Bob收到NSSK协议中第三条消息{kab,A}kbt时,他并不能区分该消息是现在产生的,还是过去的旧消息。从被重放消息的来源来看,重放攻击可分为协议轮内攻击和协议轮外攻击。协议轮是指一个协议的整个过程消息交换过程(如NSSK协议中的5条消息交换即为一个协议轮)。因此,协议轮内的重放攻击就是指重放在本协议轮被截获的消息,而协议论外攻击则是重放从其它协议轮中捕获的消息。根据消息的去向,重放攻击可分为偏转攻击和直接攻击。偏转攻击是通过改变消息的去向而实施的攻击。直接攻击是将消息发送给任意接收方而实施的攻击。其中偏转攻击分为反射攻击和第三方攻击。前者指将消息返回给发送者,而后者指将消息发给协议合法通信双方之外的任一方。攻击5-2-2中的重放攻击属于协议轮外攻击和直接攻击。消息重放对策主要有三种:挑战-应答机制、时戳机制(Timestamp)和序列号机制(SequenceNo)。挑战-应答机制通过发送挑战值(Nonce:中文含义是现在,目前)来确保消息的新鲜性。时戳机制对消息加盖本地时戳,只有当消息上的时戳与当前本地时间的差值在意定范围之内,才接受该消息。时戳机制要求有一个全局同步时钟。如果双方时钟偏差过大或者允许的范围过大,则可以被攻击者利用。序列号机制是指通信双方通过消息中的序列号来判断消息的新鲜性。序列号机制要求通信双方必须事先协商一个初始序列号,并协商递增方法。(1)挑战-应答机制在挑战-应答机制中,发送者(或挑战者)向接收者发送一条挑战消息(Challenge)(如可能是一个称之为Nonce的一次性随机数);接收者(或应答者)对该挑战消息进行密码操作,并发送该挑战对应的应答消息(Response)给发送者进行验证;发送者收到应答消息之后卡,能够通过他自己输入消息的新鲜性来验证接收者通信的新鲜性和真实性。其中,接收者的应答消息中所包含的对挑战的应答必须进行完整性保护,即对于应答消息一般需要进行某种密码变换。依据接收者对该消息进行密码操作不同,挑战-应答机制可分为对称密钥加密机制和非对称密钥签名机制。典型的挑战-应答机制如图5-2-2所示。需要说明的是,对新鲜随机数的保护(或变化)也可以由挑战者来进行,而应答者仅需简单回复即可。一般而言,挑战者和应答者同时对新鲜随机数进行变换是不必要的,但是在某些安全协议中也可同时进行变换。如图5-2-2所示,Alice通过在消息中嵌入表示消息新鲜性的标志(新鲜一次性随机数Nonce)来发起挑战,Bob收到带有挑战信息(Nonce)的消息之后,对挑战信息先进性变换后返回给Alice。而Alice能够通过对比Bob的应答和自己所知道的答案来判断消息是否是新鲜的。如果Bob的应答不能满足Alice的挑战,则Bob所回应的消息被认为是陈旧消息,即可能是重放攻击。协议5-2-1为采用挑战-应答机制来设计抗重放攻击的安全协议协的一例。在协议5-2-1中,Bob对Alice的挑战是利用对称密钥进行加密。Alice收到Bob发送的消息之后,用相同的密钥解密得到自己所期望的应答,并与自己在第一步中所发送的挑战进行比较。如果相同,则消息是新鲜的;否则消息即为陈旧消息。需要说明的时,协议5-2-1仅仅证明了消息的新鲜性,而其它消息的新鲜性则未提供保证。(2)时戳机制时戳机制是指发送者在消息中嵌入发送消息的本地时刻,而接收者在消息达到后,通过对比消息中所包含的时间信息和本地时间信息的差值,来决定该消息是否为新鲜消息。如果接收者对消息延迟达到所能容忍的时间差值为,发送消息的时刻为,收到消息的时刻为,如果则接收者认为该消息是新鲜的,否则该消息是陈旧消息(即可能时重放攻击)。同样,消息中的时戳信息必须进行完整性保护。典型的利用时戳机制对抗重放攻击的过程如图5-2-3所示。与挑战-应答机制不同,对时戳的保护(或变化)只能由消息的发送者提供在图5-2-3中,Alice通过在消息中嵌入时戳来表示消息的新鲜性。Bob收到带有时戳信息的消息之后,计算出消息的时间差,并依据本地安全策略判断该消息是否是新鲜的。在攻击5-2-2中,我们描述了针对Needham-Schroeder对称密码认证与密钥交换协议的重放攻击,而协议5-2-2则是利用时戳机制对NSSK协议的一种改进。由于Trent在第二条消息中嵌入了自己的本地时戳,因此Bob在收到Alice所发送的第三条消息之后,可以通过对比时戳来挫败攻击者所发起的重放攻击。(3)序列号机制在序列号机制中,协议主体之间首先协商一个一致的初始序列号。协议过程中每条协议消息均带上序列号。每发送一条消息,序列号对应加1。因此,协议实体可以通过对比消息中的序列号和自己当前所期望的序列号是否相同来判断消息的新鲜性。典型的采用序列号机制来对抗消息重返的过程如图5-2-4所示。当然,每条消息的序列号必须进行保护。由于序列号需要协商并保持同步,因此在实际应用中较少采用。三种对抗重放攻击的方法各有优缺点,设计安全协议时须结合各自的特点和应用的要求来选择。三种防御方法对比如表5-2-1所示。方法特点缺点应用挑战-应答机制通过新鲜一次性随机数保证消息的新鲜性需要生成一次性随机数的算法用于挑战的发起者验证所收到消息的新鲜行时戳机制利用时戳保证消息的新鲜性需要全局时钟同步;时间窗口大小不易控制用于消息的接收者判断消息的新鲜性序列号机制利用消息序列号来保证消息的新鲜性需要协商初始序列号,序列号不易同步可用于发送者和接收者判断消息的新鲜性表5-2-1
三种对抗重放攻击的方法对比分析攻击者和协议的缺陷是导致协议不安全的两大原因。为了设计出更为安全的协议来,需掌握协议设计的工程方法。在协议设计中遵循一些基本原则,不仅有助于帮助设计者避免那些已在许多安全协议出现过的错误,而且有助于设计者掌握一套良好的协议设计技巧和方法。以下是设计一个安全协议时应遵循的一般原则:(1)消息独立性原则
协议中的每条消息应该尽可能是自包含的,即消息的含义应该是一目了然,且消息含义的翻译直接通过该消息就可以完成,而无需依赖于其它协议或协议中的其它消息。(2)消息前提准确原则
消息所依赖的条件必须明确地定义出来,从而使得协议的评价者知道这些条件是否可以接受。其原因在于绝对安全的协议是很难设计和构造的,一般的安全协议均是有条件的。因此,协议安全的前提必须明确的提出来。(3)协议主体身份标识原则如果协议主体的身份对于理解消息的含义是必须的,那么协议主体身份就应该在消息中明确地标识出来,以避免歧义。(4)加密目的明确原则(5)签名原则加密需要计算开销和空间开销,因此必须在必要时才使用加密。此外,加密并不等于安全,如果必须使用加密,则必须明确加密在协议安全中的作用和目的。一般而言,加密的目的包括:机密性、认证、认证与机密性、消息绑定、生成随机数。消息绑定是指通过密钥加密,可以将加密密钥所对应的协议主体的身份与被加密消息的身份绑定在一起。例如,如果某个密钥仅为Alice和Bob使用,则当Alice收到一条由加密的消息时,她知道该消息的加密者是Bob(因为除了她和Bob之外,无其它人知道该密钥)。生成随机数一般是利用了加密算法的雪崩效应,即输入产生少许变化,将带来输出的巨大变化。
当协议主体对加密消息进行签名(即先加密后签名)时,则不应当假设该主体对消息的含义是清楚的。相反,如果是对明文进行签名后再加密(即先签名后加密)时,协议主体对消息的含义是完全清楚的。如果在一个安全协议中需要同时进行加密和签名,则须谨慎。一般的原则是先加密后签名。需要明确的是,这并非对所有协议实用,且即便如此不能保证协议的绝对安全。(6)随机数使用原则(7)随机数随机性原则(8)时戳使用原则(9)密钥新鲜性原则当使用随机数时,必须明确随机数对应的含义。例如,随机数是用来对抗重放攻击,还是用来绑定时间上邻接的两条消息?此外,由于生成真正的随机数是非常困难的,因此如果有好的替换方法,应尽量少用随机数。如果决定在协议中使用随机数,则必须明确对随机数随机性的要求。例如,由于挑战-应答机制中对随机数进行了保护,因此可以使用可预测的随机数来保证消息的新鲜性。但是,当使用可预测的随机数时,必须谨慎,以确保随机数的作用得到保证。如果时戳是用来表示消息新鲜性的绝对时间,那么不同协议主体的本地时钟必须进行全局同步,以确保新鲜性的真实性。此外,如果使用了全局时钟同步,那么该同步机制也应该被视为安全协议的一部分。会话密钥仅能用来加密当前消息,因此用过的会话密钥不应当在以后协议执行过程中再次有效。因此,协议过程中用到的密钥应尽可能提供新鲜性保证。如果协议中使用了编码方案,那么就应当明确地对所采用地编码方法进行说明。如果编码方法是依赖于协议的,那么可以推测该消息是确实属于这个协议的。有时候甚至要求知道该消息对应的协议实例及其消息顺序号。(10)编码原则(11)信任性原则协议设计者必须知道自己所设计的安全协议所依赖的信任关系,并清楚地知道为什么该信任是必须和可能地。此外,如果存在信任关系,那么这种信任关系必须是依赖于安全策略和判断的,而不能依赖于逻辑推理。综上所述,正如一位著名的安全学者所言,安全协议的设计原则对于协议的安全性是必须的,但也是不够的。不过,掌握一般的设计原则,在某些条件下可以帮助协议设计者简化协议,并避免那些已经公开的混乱和错误。认证(即身份认证)是声称者向验证者出示自己的身份的证明过程。认证目的是使别的成员(验证者)获得对声称者所声称的事实的信任。身份认证是获得系统服务所必须的第一道关卡。常见的协议包括用户口令认证协议(PAP)、挑战-握手认证协议(CHAP)、Kerberos认证协议和X.509认证协议等。用户口令认证协议(PAP:PasswordAuthenticationProtocol)是用于用户向点到点连接(PPP:Point-toPointProtocol)服务器证明自己的身份的协议,它仅在链路建立初期进行认证,一旦完成认证,以后就不再进行认证。其认证过程如图5-3-1所示。其中认证请求消息主要包括用户名及其口令,而认证响应消息则指明认证是否通过。因此,PAP协议就是简单的用户口令认证协议,且口令明文传送。PAP的缺点是显然的:任何网络窃听均可获得用户口令,从而假冒用户。与PAP认证协议相似,挑战-握手认证协议(CHAP:ChallengeHandshakeAuthenticationProtocol)也是用于用户与PPP服务器之间的认证。但是,与PAP不同,CHAP协议虽然在链路建立初期需要进行认证,但是它也可以在再次进行认证。在认证之前,用户和服务器之间必须共享某个秘密值S(如用户口令)和一个单向函数H。CHAP认证协议原理如图5-3-2所示。其中认证挑战消息(M)包含用户ID等信息,而认证响应消息是包含挑战消息及用户和服务器共享的秘密值的一个单向函数的输出结果:H1=H(M+S)。服务器收到认证响应消息之后,利用相同的单向函数和自己所知道的共性秘密值计算:H2=H(M+S)
;如果H1=H2则认证通过,否则认证失败。CHAP协议避免了口令在网络上的明文传送的缺点,是对PAP协议的改进。但是,CHAP协议由于需要预共享秘密值,因此其应用范围受到一定的限制。“Kerberos”的本意是希腊神话中守护地狱之门的三头犬。Kerberos认证协议是美国麻省理工学院雅典娜(Athena)研究计划中的一部份,由Miller和Neuman两位研究人员以Needham-Schroeder认证协议为基础改进而成。Kerberos提供了一个集中式的认证服务器结构,认证服务器的功能是实现用户与其访问的服务器间的相互鉴别,其实现采用对称密钥加密技术,而未采用公开密钥加密技术。公开发布的Kerberos版本包括版本4和版本5。针对Needham-Schroeder认证协议的缺点,Kerberos引入了票据准许服务器(TGS:Ticket-GrantingServer)作为一个认证框架,Kerbero认证协议可应用于多种网络协议和操作系统。目前,无论是UNIX系统、Linux操作系统,还是Windows2000/XP操作系统均支持Kerberos协议。在Kerberos认证协议中,存在四个角色:客户端(C:Client,即用户),服务器(S:Server,即提供某种服务器的服务器),认证服务器(AS:Authentication
Server)及票据准许服务器(TGS:Ticket-GrantingServer)。客户端即请求服务的用户,而服务器就是向用户提供服务的一方。认证服务器负责验证用户的身份,如果通过了认证,则向用户提供访问票据准许服务器的票据许可票据(Ticket-GrantingTicket),票据准许服务器则负责验证用户的票据许可票据,如果验证通过,则为用户提供访问服务器的服务许可票据(Service-GrantingTicket)。因此,从认证服务器所获得的票据许可票据不能作为用户访问服务器的凭证,只能作为访问票据许可服务器的凭证,而后者所授予的服务票据才是用户访问服务器的凭证。Kerberos中的四种角色及其密钥共享关系如图5-3-4所示。由图5-3-4可知,用户C和票据准许服务器TGS和服务器S之间并无密钥共享关系,因此它们之间的通信采用会话密钥来加密。Kerberos系统构架如图5-3-5所示。在Kerberos的认证过程中也存在票据有效期问题。因此,当用户向认证服务器AS请求一张与票据许可服务器TGS通信的通行证时,该通行证除了会话密钥之外,还包括用户端、服务器端、时戳以及有效期等信息。同样,票据许可服务器颁发给用户的服务许可票据除了包含会话密钥之外,同样也包含用户、服务器、时戳和有效期等信息。一旦用户获得票据许可票据,则访问其它服务时只需要访问票据许可服务器,而无需通过认证服务器。通过使用票据许可票据,避免了用户重复出示用户名和口令的问题,因此可有效提高认证的效率和安全性,而通过使用服务许可票据,将认证和授权分离,减少了认证开销。(1)第一步:认证服务交换(AuthenticationServiceExchange):用户向认证服务器证明自己的身份,以便获得票据许可票据(Ticket-GrantingTicket)。(2)第二步:票据许可服务交换(Ticket-GrantingServiceExchange):用户向票据许可服务器TGS索取访问服务器的服务许可票据(Service-GrantingTicket)。(3)第三步:用户与服务器交换(AuthenticationExchange):使用所需服务。总结起来,Kerberos认证协议可分为三大步骤:参数含义说明C客户端(Client)S服务器(Server)TGS票据准许服务器(Ticket-GrantingServer)TS时戳(Timestamp)Ticket票据,网络双方通信时的有效凭证LT票据(Ticket)的有效期IDC客户端的标识(ID)IDtgs票据准许服务器的标识(TGSID)Kc客户端(C)和认证服务器(AS)的共享密钥Ks服务器(S)和票据准许服务器(TGS)的共享密钥Ktgs认证服务器(AS)和票据准许服务器(TGS)的共享密钥Kc,tgs认证服务器(AS)产生的、用于客户端(C)和票据准许服务器(TGS)之间通信需要的会话密钥(sessionkey)Kc,s票据准许服务器(TGS)产生的、用于客户端(C)和服务器(S)之间通信需要的会话密钥{M}K表示用密钥K加密消息MTickettgs客户端(C)用来与票据准许服务器(TGS)通信的票据Tickets客户端(C)用来与服务器(S)通信的票据ADc客户端的IP地址,用来代表谁使用票据AU认证标识,用来标识认证相关信息M1||M2消息M1和消息M2的简单串接表5-3-1Kerberos认证协议中的参数及其含义
在描述Kerberos协议的过程中,各个参数如表5-3-1所示。Kerberos协议版本4如协议5-3-1所示。消息(3)和消息(4)是票据许可服务交换。在消息(3)中,IDs用来表示客户端C要求访问服务器IDs或与之通信;Tickettgs是消息(2)中所取得的、用来证明C已通过AS的认证的票据;与Tickettgs中的相关认证信息对应,认证符AUc1用来证明自己是Tickettgs的合法拥有者。AUc1是由客户端所产生,其使用期限应该很短,以减少遭受重放攻击(replayattack)的概率。认证符中包括时戳TS3,用来表示此认证符表示AUc1产生的时间;IDC和ADc都是用来与Tickettgs中的IDc和ADc做对比,以证明客户端的身份。在消息(4)中,所有内容均使用客户和票据准许服务器共享的密钥Kc,tgs加密传送,以避免信息被窃听。此消息包含了客户端与服务器通信所需要的会话密钥Kc,s;IDs用来表示Tickets是用来与服务器S通信的;时戳TS4用来表示此Tickets的产生时间,而Tickets是由票据准许服务器签发给客户端用来与服务器通信的票据(即通信证)。消息(5)和消息(6)是用户与服务器交换。其中消息(5)的作用与消息(4)相似,主要用于服务器认证客户,读者可自行分析。消息(6)作为客户端认证服务器,以证明服务器具有解密消息(5)中的认证标识AUc2的能力,并回送另外一时戳信息TS5+1。通过消息(5)和消息(6)实现了客户端和服务器的双向认证。比较项说明加密方法KerberosV4只支持DES加密,而在V5中可支持多种加密方法。网络协议KerberosV4中只能用在TCP/IP网络上,而V5则可以使用在各种符合OSI标准的网络中。报文字节顺序KerberosV4中消息的位顺序是由其中的一个标记(tags)来决定的,而在V5中则采用的通用的抽象语法标记标准ASN.1(AbstractSyntaxNotationOne)以及基本编码规则BER(BasicEncodingRule)进行编码。票据准许票据的有效期限制KerberosV4中,一张票据许可票据的有效期最多只有21小时,而在V5中则可直接指定起止时间,因此无有效期的限制。交叉认证能力在Kerberosv4中没有代理认证功能,因此不提供交叉认证功能,而在V5中则支持交叉认证功能。跨域认证功能KerberosV4仅适用于一个网络域内的认证,不提供跨域认证功能,而V5提供更有效的跨域认证功能。口令认证Kerberos中的客户端与认证服务器共享的口令易遭受字典攻击,而V5提供了一种预认证(Pre-authentication)机制,使口令攻击更加困难。新版本(版本v5)则提供了较版本4更为完善的认证功能,且提供了跨域认证功能。Kerberos版本4与版本5的不同之处如表5-3-2所示。参数含义说明Realm表示使用者所在的域Options用于请求在返回的票据中设置指定的标识位(如表5-3-4所示)Times标识要求生辰个的ticket的使用时间Nonce用来防止重放攻击的一次性新鲜随机数Subkey客户端要求使用的加密密钥,用来对某个特定会话加密;如果被省略则使用票据中的会话密钥Seq#服务器和客户端交换消息的初始序列号FlagsKerberosV5支持的可选参数表5-3-3KerberosV5中新增加的参数及其含义表5-3-3是KerberosV5中新增加的符号及其说明,具体的协议5-3-2所示。由于V5与V4大致相同,读者可自行分析。表5-3-4KerberosV5的标志及其含义参数含义说明INITIAL按照认证服务器AS的PRE-AUTHENT在初始认证中,客户在授予票据前就被KDC认证HW-AUTHENT初始认证协议要求带RENEWABLE用来防止重放攻击的一次性新鲜随机数MAY-POSTDATE客户端要求使用的加密密钥,用来对某个特定会话加密;如果被省略则使用票据中的会话密钥POSTDATED服务器和客户端交换消息的初始序列号INVALIDKerberosV5支持的可选参数PROXIABLE告诉票证许可服务它可以基于这个票证签发一个不同网络地址的新票证PROXY在TGS签发一个新的代理票证时被置位,应用服务器可以检查这个标志并可以为了检查跟踪要求附加的验证FORWARDABLE告诉票证许可服务允许根据当前TGT签发一个新的不同的网络地址的TGTFORWARDED指示是否是被转发的,或者是从一个转发的TGT签发的一个完整的Kerberos环境包括一个Kerberos服务器,一组工作站和一组应用服务器。其中Kerberos服务器包括认证服务器AS和票据许可服务器TGS。所有用户和所有的应用服务器均在Kerberos服务器上注册。Kerberos服务器的数据库中拥有所有参与用户的UID及其对应的口令散列表。Kerberos服务器必须与每一个应用服务器之间共享一个保密密钥,该密钥也保存在Kerveros服务器的数据库中。根据用户和应用服务器在网络管理中的位置不同,KerberosV5提供了域管理的能力。所谓域,就是依据网络管理的边界而划定的一个网络范围。属于同一个网络范围内的用户和服务器属于同一个域。一个用户可能需要访问另一个Kerberos领域中应用服务器。同样,一个应用服务器也可以向其它领域中的客户提供网络服务。为了提供跨域访问的能力,Kerberos提供了跨域认证的能力。领域间互通的前提是,支持不同领域之间进行用户身份鉴别的机制;互通领域中的Kerberos服务器之间必须共享一个密钥;两个Kerberos服务器也必须进行相互注册。图5-3-7是Kerveros跨域认证框架。Kerveros跨域认证过程分为四步:(1)用户通过本地认证服务器AS,请求与本地票据许可服务器(localTGS)进行通信的票据许可票据;(2)用户通过本地的票据许可票据服务器,请求与远程票据许可服务器(remoteTGS)通信的票据许可票据;(3)用户通过远程票据许可票据服务器,请求与远程服务器S通信的票据;(4)用户向远程服务器提出服务访问请求。与通常的Kerveros协议相比,跨域认证多了一个获取访问远程票据许可服务器的步骤,具体的跨域认证协议如协议5-3-3所示。(1)X.509简介从技术角度来看,X.509协议的实现基于公开密钥加密算法和数字签名技术。在公钥加密算法方面,虽然X.509没有规定使用某个特定的算法,但推荐使用RSA公钥算法,因此具有较高的安全性。在数字签名技术方面,X.509使用安全哈希函数(HashFunction),但是没有规定具体的Hash算法。(2)X.509中的证书
证书(Certificate)是一个机构颁发给一个安全个体的证明。证书是公开密码体制的一种密钥管理媒介,是一种权威性的电子文档,用于证明某一主体(人或者设备)的身份及其公开密钥的合法性。证书的权威性取决于该证书颁发机构的权威性。一个证书中,最重要的信息是个体名字、个体的公钥、机构的签名、算法和用途等。自1988年开始,X.509总共定义了三种证书版本(X.509v1,v2和3)。在认证方面,X.509规定了三种认证协议:单向认证、双向认证和三向认证。A.单向认证协议该协议如协议5-3-4所示。(1)Alice生成一个随机数RA。(2)Alice生成一个消息M=,其中TA是Alice的时间标记,IDB是Bob的身份,而时可选的签名消息,用于保证消息的完整性和可信性。kab是可选的Alice和Bob之间的需要交换的共享密钥,如果需要交换kab
,则需要用Bob的公钥kB加密。此外,为了提供机密性,消息M可以使用Bob的公钥来kB加密。(3)Alice将消息CAA||M发送给Bob。其中,CAA是Alice的证书。(4)Bob验证CAA且取得Alice的公钥kA,并验证公钥是否过期。(5)Bob使用kA解密M的签名部分,并同时验证Alice的签名是否有效和消息是否完整。(6)Bob验证M中IDB的正确性。(7)Bob检查M中的TA,并验证此消息是最新的。(8)Bob检查M中的NA,比较原来收到消息的随机数信息,以确认消息不是被重放的。双向协议由协议5-3-4扩展而来,在消息(1)的基础之上,增加了从Bob到Alice的类似于单向认证协议的消息,其过程如协议5-3-5所示。在执行上述步骤(1)步骤(8)之后,双向协议的剩余流程如下所示。(9)Bob生成另外一个一次性新鲜随机数NB。(10)Bob生成另外一个消息,其中TB是Bob的时戳,IDA是Alice的身份。同样,为了保密消息也可以用Alice的公钥kA加密。NA是Alice在步骤(1)中所生成的随机数。(11)Bob将消息CAB||M’发送给Alice,其中CAB是Bob的证书。(12)Alice验证CAB且取得Bob公钥kB,并验证公钥是否过期。(13)Alice用kB解密消息M’的签名部分,并同时验证了Bob的签名是否有效和消息是否完整。(14)Alice检查消息M’中IA的正确性。(15)Alice检查消息M’中的TB,并确认消息是最新的。(16)Alice检查消息M’中NB,比较原来收到消息的随机数信息,以确认消息不是被重放的。三向认证协议的目的与双向认证相同,其不同点在于三向认证协议没有使用时戳,其原因在于认证发起者Alice向Bob返回了一次性新鲜随机数NB。其中,三向认证协议的步骤(1)到步骤(16)与双向协议相同,只是其中的两个时戳
TA和TB为可选内容(或TA=TB
=0。随后,三向认证协议加入了步骤(17)到步骤(20),如下所示。(17)Alice检查收到的NA,并与她在步骤(3)发送给Bob的NA进行比较,看是否相同。(18)Alice送将消息发送给Bob。(19)Bob用Alice的公钥kA解密消息,同时验证了Alice签名的有效性和消息的完整性。(20)Bob检查自己所收到NB,并与自己在步骤(10)发送给Alice的NB比较,看是否相同。(1)攻击者Malice对Bob重放协议5-3-4中的消息(1):
由于Bob不验证时戳,因此Bob不会发现此消息是重放的。(2)Bob选取新的新鲜随机数NB,并将协议5-3-5中的消息(2):
发送给Alice。攻击者可以截获该消息,并利用Bob的公钥获得其中的NB。攻击者为了攻击成功,必须回应协议5-3-6中的消息(3):。为此,攻击者Malice给Alice发送消息,并让Alice对自己进行认证。在Malie和Alice的认证过程结束时,Malice获得了Alice发送回来的(3)Malice利用获得的冒充Alice成功。上述攻击成功的原因在于Alice的签名被滥用,即Alice对消息NB的签名没有指出是签发给谁的,因而Malice可以利用消息对Bob发起重放攻击。为此,针对上述攻击,仅需将协议5-3-6中的消息(3):修改为。因为这样修改之后,攻击者Malice在攻击步骤(2)中所获得的将是(其中IDM是Malice的身份标识),而无法获得Malice所需要的。在三向认证协议中,时戳可以为空,因此可以不对时戳进行验证。但是,在上述三向认证协议中,存在协议漏洞,其攻击步骤如下:认证是信息安全防护系统中的核心和基础,是许多安全处理(如授权、审计等)过程的前提。用户口令认证协议(PAP)和挑战-握手认证协议(CHAP)虽然简单,但是二者存在口令字典式攻击、重放攻击等缺陷,因此仅能在安全要求低的环境中使用。Kerberos认证协议基于对称密码技术,且要求较多的共享密钥,因此虽然可以在较大规模网络环境中使用,但是共享密钥的管理和更新是一个困难的问题。而X.509认证协议,由于基于公钥基础设施,因此是大规模网络环境中认证技术的首选解决方案,但是证书的管理则要求公钥基础设施(PKI)的支持,而后者要求较高的成本。电子商务(E-Commerce)是指利用先进的电子信息技术(特别是Internet技术)从事各种商业活动的方式。电子商务是指对整个贸易活动实现电子化,其具体的含义可从两个方面来理解:一、从涵盖范围方面:电子商务是各参与方之间在计算机网络,特别是Internet平台上,按一定标准以电子方式而不是以物理交换或直接物理接触方式完成任何形式的业务交易。这里的电子方式包括电子数据交换、电子支付手段、电子订货系统、电子邮件、传真、网络、电子公告系统条码、图象处理、智能卡等;二、从技术方面:电子商务是多技术的集合体:包括数据交换(如电子数据交换、电子邮件)、数据获取(共享数据库、电子公告牌)以及自动捕获数据(条形码)等。1.电子商务概述A、按电子商务活动内容可分为:1)直接电子商务:指数字商品或服务的订货与付款等活动,其特点是交易过程可以通过网络直接完成,如通过网上支付的方式购买软件产品。2)间接电子商务:指有形的货物或者服务的订货与付款等活动,其特点是交易过程的部分环节需要借助传统商务活动中的某些要件,如通过网上商城购买电器等商品,其商品的交付环节通常需要物流服务的支持。B、按电子商务活动是否涉及支付可分为:1)非支付型电子商务:指不进行网上支付和货物运送的电子商务,内容包括:信息发布、信息查询、在线谈判、在线签约等,其特点是此类电子商务活动均不涉及银行支付。2)支付型电子商务:指进行网上支付和货物运送的电子商务。除了非支付型电子商务的全部内容外,还包括银行的支付、交割活动以及供货方的货物运送活动。电子商务业务种类繁多,根据不同的分类标准可划分为不同的类型:C、按电子商务业务涉及的交易实体可分为:1)企业内部电子商务:即企业内部之间,通过企业内部网(Intranet)方式处理与交换商贸信息。2)企业对消费者的电子商务(简称B2C模式),是指企业使用Internet直接面向消费者销售服务或产品。该类型的电子商务包括电子商务运营商建立的网上商城,如新蛋网()和京东方网()等,也有由企业自身构建的网上销售平台如苹果公司的在线销售网站和联想公司的在线销售网站等,消费者可通过网络直接购买不同类型的商品和服务。3)企业对企业的电子商务(简称B2B模式),是指企业使用Internet或各种商务网络向供应商订货和付款,如制造企业向下游供货商进行原料的采购,典型代表有阿里巴巴。4)企业对政府机构的电子商务(简称B2G模式),是指在企业和政府机构之间的电子商务。可以涵盖公司与政府组织间的许多事务,如通过Internet企业可以参与政府部门的在线招投标项目。5)消费者对政府机构的电子商务(简称C2G模式),是指某些涉及个人与政府间的商务活动,如社会福利费发放和个人税收申报和上缴等。6)消费者对消费者的电子商务(简称C2C模式),是指个人之间使用Internet进行的商务活动,如通过eBay和淘宝网进行个人间的商品买卖。
目前最常见的电子商务类型包括B2C,B2B和C2C模式,例如eBay和淘宝网就同时提供了B2C和C2C两种不同类型的电子商务模式。电子商务主要是在开放的Internet网络环境中完成的,由于Internet本身开放且不具备安全性,要保证电子商务的顺利进行,就必须要解决网上交易的安全性问题,常见的电子商务模型如图5-4-1所示。电子商务交易模型涉及客户(Customer)、商家(Merchant)、银行(Bank)和第三方认证机构(CertificateAuthority)等多方实体,实体之间通过Internet进行信息流、物流、资金流的交互来完成各种商务活动。不同实体间的交互关系必须满足一定的规范,才能保证各方利益的安全和控制风险,这就是各种安全协议(SecurityProtocol)需要完成的功能。。图5-4-1电子商务模型包含两层含义:首先,正确执行协议后,应当保证商务活动的参与各方能够正确完成所有的消息交互;其次,如果协议异常终止,协议应当保证通信双方都处于同等地位,任何一方都不占任何优势。以网上购物为例,要么商家收到顾客支付并向顾客提供正确商品,要么交易失败商家收不到顾客的支付,顾客也无法得到对应的商品。公平性(Fairness)
不可否认性(Non-repudiation)是安全电子商务协议的基本性质,具体是指商务活动中的参与方不能对自己的行为进行抵赖。由于电子商务过程是通过参与方之间的消息交换来完成的,因此不可否认性主要体现为:(1)不能否认拥有某个消息;(2)不能否认发送过某个消息;(3)不能否认接收到某个消息;(4)不能否认在规定的时间内收到或发送消息等等。是与不可否认性密切相关的另外一个重要性质,可追究性是安全电子商务协议必须满足的基本要求。电子商务协议的可追究性是通过发方非否认和收方非否认两个基本目标达到的。在电子商务协议中,通常使用凭证(Evidence)来实现可追究性,凭证分为两种:发方非否认证据(Evidence-of-origin)和收方非否认证据(Evidence-of-receipt)。前者是指电子商务协议向接收方提供的不可抵赖证据,用于证明发送方发送过某个消息;后者是指电子商务协议向发送方提供的不可抵赖证据,用于证明接收方收到发送方发送的某个消息。可追究性(Accountability)匿名性是指电子商务活动不被跟踪,保证商务过程中个人和组织的信息不被泄露的安全属性。其保护对象包括:用户的个人信息、购物习惯、销售者的交易规模等隐私信息。匿名性是商业活动中个人和组织隐私权的一种体现。匿名性技术是一把双刃剑,既可以保护合法主体的隐私权,也可能被有恶意的人利用进行隐匿的违法活动。因此对电子商务协议的匿名性仍有争议,应当谨慎实施。公平性、非否认性、可追究性和匿名性都是电子商务协议的特有属性,其中公平性是电子商务协议的核心属性。保护电子商务公平性的协议称为公平交换协议。实现非否认性和可追究性是保证公平性的一个有效的辅助措施,或者说是一种补救措施,主要用于事后的争端解决。伴随着电子商务的发展,目前已经出现了大量的电子商务安全协议。其中包括针对电子支付的专用协议如DigiCash协议、ISI协议、Netbill协议、FirstVirtual协议、iKP协议等,以及针对电子商务综合应用的SET协议和SSL协议。特别是SSL(安全套接层协议)和SET(安全电子交易协议)两个协议在电子商务领域得到了大量应用。因此在电子商务安全协议实例中,本书将分别对这个两个协议进行介绍。安全电子商务交易(SecureE-commerceTransaction:SET)协议是由美国VISA和MasterCard两大信用卡组织提出的应用于Internet上的以信用卡为基础的电子支付系统协议。它采用公钥密码体制和X.509数字证书标准,主要应用于B2C模式中保障支付信息的安全性。1)SET协议简介
SET协议非常详细而准确地反映了交易各方之间存在的各种关系。它定义了加密信息的格式和付款支付交易过程中各方传输信息的规则。SET提供了持卡人、商家和银行之间的认证,确保了网上交易数据的机密性、数据的完整性及交易的不可抵赖性。目前,SET协议已经成为事实上的工业标准,得到了IBM、Microsoft、Verisign等信息产业界主流公司的广泛支持,并获得IETF标准的认可。
A.认证:由于通信网络的匿名性,电子商务交易与面对面交易不同。一方面商家需确认持卡人是付款卡账号的合法使用者;另一方面持卡人也需对商家进行认证。SET协议通过数字签名和数字证书来实现认证的目的。持卡人和商家均有自己的用于数字签名的公钥/私钥对(SignatureKeyPair)和用于密钥交换的公钥/私钥对(Key-exchangeKeyPair)及相应的证书。证书由认证中心CA颁发,且由颁发者进行数字签名。证书分别包含使用者的签名公钥或交换公钥。传送消息时,发送方先对消息进行数字签名,然后将消息随同签名及证书一起发送给接收方。接收方收到消息后,先验证发送方证书的有效性,然后从发送方证书中取得签名公钥,验证发送方的数字签名,以证实消息来自发送方。数据完整性:SET协议使用了多种方式来保证数据完整性。一种是利用数字签名来确保数据的完整性;另一种是通信双方共享一个密钥,发送者可以用它对消息摘要加密或者计算带密钥的消息散列值(HMAC),并把该散列值跟消息一起发送。接收者接到消息后,重新计算带密钥的散列值并与接收到的散列值比较,如果两者相同则完整性得到证实。消息的私密性:SET协议使用对称密码算法来确保信息的安全,同时利用公钥密码算法来交换会话密钥(对称密钥)。SET协议中的实体由持卡人(Cardholder)、商家(Merchant)、发卡行(Issuer)、收单行(Acquirer)、支付网关(Paymentgateway)及认证中心(CertificateAuthority)等六个部分组成,SET协议中各实体的关系如图5-4-2所示。图5-4-2SET协议中实体关系在电子商务环境中,持卡人通过计算机访问商家的网上销售平台,购买商品。为了在电子商务环境中安全地进行支付操作,持卡人需要安装一套基于SET标准的软件(通常嵌入在浏览器中),并使用由发卡行发行的支付卡(信用卡或借记卡),且需要从认证中心获取自己的数字签名证书;持卡人:
在电子商务环境中,商家通过自己的网上销售平台向客户提供商品和服务。同时商家必须与相关的收单行达成协议,保证可以接受信用卡的支付。而且商家也需要从认证中心获取相应的数字证书(包括签名证书和密钥交换证书);收单行为每一个网上商家建立一个账户,且处理付款授权和付款结算等。收单行不属于安全电子商务的直接组成部分,但它是授权交易与付款结算操作的主要参与者;发卡行为每一个持卡人建立一个账户,并发放支付卡。一个发卡行必须保证对经过授权的交易进行付款;商家:
发卡行收单行支付网关是指收单行或指定的第三方运行的一套设备。它负责处理支付卡的授权和支付。同时,它要能够同收单行的交易处理主机通信,还需要从认证中心获取相应的数字证书(包括签名证书和交换密钥证书);认证中心负责颁发和撤销持卡人、商家和支付网关的数字证书;同时,它还要向商家和支付网关颁发交换密钥证书,以便在支付过程中交换会话密钥。支付网关认证中心在实际的系统中,发卡行和收单行可以由同一家银行担当,支付网关也可由该银行来运行,这些需要根据具体的情况来决定。SET协议定义了一套完备的证书信任链,每个证书连接一个实体的数字签名证书。沿着信任树可以到一个众所周知的信任机构,用户可以确认证书的有效性。所有的基于SET协议的软件都知道根证书的数字签名公钥,可用于验证每个证书。图5-4-3描述了这种信任层次。在SET协议中的用户对根节点的证书是无条件信任的,如果从证书所对应的节点出发沿着信任树逐级验证证书的数字签名,若能够到达一个已知的信任方所对应的节点或根节点,就能确认该证书是有效的。换而言之,信任关系是从根节点到树叶传播的。图5-4-3SET协议中的证书信任关系
商家证书(MerchantCertificates):商家证书表示商家与收单行存在联系,收单行同意商家接受支付卡的付款。商家证书由收单行数字签名后颁发。商家要加入SET的交易至少要拥有一对证书:一个为签名证书,用来让其它用户验证商家对交易信息的数字签名;另一个为密钥交换证书,用来在交易过程中交换用于加密交易信息的会话密钥。事实上,一个商家通常拥有多对证书,以支持不同品牌的付款卡;
持卡人证书(CardholderCertificates):持卡人证书相当于支付卡的电子表示,它可以由付款银行数字签名后发放。由于证书的签名私钥仅为付款银行所知,所以证书中的内容不可能被任何第三方更改。持卡人证书仅在付款银行的同意下发给持卡人。证书同购买请求和加密后的付款指令一起发给商家,商家在验证证书有效后,就可以认为持卡人为合法的使用者。持卡人的证书是一个数字签名证书,用于验证持卡人的数字签名,而不能用于会话密钥的交换。任何持卡人只有在申请到数字证书之后,才能够进行电子交易;收单行证书(AcquirerCertificates):收单行必须拥有一个证书以便建立一个证书颁发机构,它接受和处理商家通过公共网络或私有网络传来的证书请求和授权信息。支付网关证书(PaymentGatewayCertificates):支付网关证书用于商家和持卡人在进行支付处理时对支付网关进行确认以及交换会话密钥,因此一个支付网关也拥有两个证书:签名证书和密钥交换证书。持卡人在支付时从支付网关的密钥交换证书中得到用来保护其支付卡账号及密码的公开密钥。发卡行证书(IssuerCertificates):发卡行必须拥有一个证书以便建立一个证书颁发机构,它接受和处理持卡人通过公共网络或私有网络传来的证书请求和授权信息。在SET协议中,证书的撤销管理采用X.509协议中定义的证书撤销列表机制(CertificateRevocationList,简称CRL)。即每级CA都维护着一个自己的CRL,用于公布被撤销的由它所生成和签发的证书名单。引发证书被撤销的原因很多,主要包括私钥的失窃或被破译、证书所含信息的更改等。证书的撤销功能在一定程度上体现和延续了现今的信用卡管理体系,使证书达到或超过信用卡的安全程度,从而充分保障了网上交易的正常进行。SET协议大量使用了密码技术来保障交易的安全。因此,密码算法是SET协议的基本构件,为电子交易环节提供更大的信任度、更高的安全性和更少受欺诈的可能性。SET协议中使用到的密码算法包括DES、RSA、SHA1和HMAC-SHA1,其中DES用于数据加密,RSA用于身份认证、密钥交换和数字签名,SHA1和HMAC-SHA1用于摘要的生成。SET协议主要采用“数字信封”和“双数字签名”的方式来保证数据的私密性和订单信息的可验证性,下面分别对这两种方式进行简要说明。A.数字信封:又称为数字封套,主要的目的是保证数据的私密性。数字信封的好处是提高了加密速度,避免对称密钥的分发。在SET协议中,数字信封的处理流程如图5-4-4所示。图5-4-4数字信封处理流程B.双重数字签名:在SET协议中,持卡人进行支付时需要对订单信息和支付信息同时进行签名,因此称双重数字签名。双数字签名对签名的内容和数据的封装作了改动,双重数字签名的实现流程如图5-4-5所示。图5-4-5双重数字签名流程持卡人将支付信息摘要,订单信息和双数字签名用数字信封加密后发送给商家,将订单信息摘要、支付信息和双重数字签名用数字信封加密后经商家转发给支付网关。商家解开信封,生成订单的摘要后和账号的摘要连接起来,用持卡人证书的签名公钥即可验证签名。
SET协议是由17个子协议构成的一整套协议,涵盖了证书管理和支付系统的各流程。在本书中选取SET协议的核心部分:购买请求(PurchaseRequest)、支付授权(PaymentAuthorization)和付款结算(PaymentCapture)三个子协议的执行过程进行介绍。A、购买请求:注册过的持卡人可向注册商家发出购买请求,具体流程如图5-4-6所示。a.持卡人通过一定的方式挑选商品。选完后,发送初始化请求给商家M;b.商家接收初始请求,并生成初始响应(商品的报价清单),对其进行数字签名;然后把初始响应、自己和支付网关的证书发送给持卡人;c.持卡人接收到初始响应,并验证所有的证书和初始响应的数字签名;然后生成订单信息OI和付款指令信息PI,并对OI和PI进行双重数字签名,并用随机生成的对称密钥K1对PI加密,K1和持卡人的账户信息用支付网关的交换密钥的公钥加密;最后,持卡人发送OI及加密的PI给商家;d.商家验证持卡人的证书及OI和PI的双重数字签名;然后处理购买请求,并生成购买响应(包括M的证书)并对其签名,发送给持卡人;e.若交易己经授权,则商家履行合同;f.持卡人接收购买响应后,验证商家的证书,进一步验证商家对购买响应的数字签名;然后持卡人保留购买响应。a.商家生成授权请求,并对其进行签名;然后将授权请求用随机生成的对称密钥K2加密,K2则用支付网关的交换密钥的公钥加密;最后,商家将加密后的信息和自己的证书一起发送给PG;b.支付网
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论