




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
网络与信息安全第八讲
身份鉴别(身份认证)建行网银工作原理USBKey(硬件数字证书载体)
这是大多数国内银行采用的客户端解决方案,使用USBKey存放代表用户唯一身份数字证书和用户私钥。在这个基于PKI体系的整体解决方案中,用户的私钥是在高安全度的USBKey内产生,并且终身不可导出到USBKey外部。在网上银行应用中,对交易数据的数字签名都是在USBKey内部完成的,并受到USBKey的PIN码保护。证书及私钥的保管
你的私钥是有口令保护的,在导出证书及私钥时,应提供该口令,因此,你应牢记这个口令,并定期更换口令。这个口令不应告诉别人,否则他可以得到你的证书及私钥,完全冒充你的身份,在网上银行交易。中行网银工作原理动态口令牌(E-Token)是一种内置电源、密码生成芯片和显示屏、根据专门的算法每隔一定时间自动更新动态口令的专用硬件。动态口令牌的使用十分简单,无需安装驱动,用户只要根据网上银行系统的提示,输入动态口令牌当前显示的动态口令即可。
中国银行在柜台发售这种装置时,与网银用户绑定建立一对一对应关系,使用唯一的128位种子将其初始化;其内部芯片每分钟都会使用一种算法,组合该种子与当前时间,生成一个随机的数字,称为动态口令或一次性密码,每60秒随机更新一次。下次认证时则更换使用另一个口令,使得不法分子难以仿冒合法用户的身份,用户也不需要去记忆密码。而在我行网银认证服务器则采取和这个动态密码器同一种算法产生该随机数字,保证动态密码器和我行网银服务器的单一认证,就像每个客户都有了世界上独一无二的身份认证,保证客户使用网银的安全性。
对于失去时间同步的令牌,目前可以通过增大偏移量的技术(前后10分钟)来进行远程同步,确保其能够继续使用,降低对应用的影响,但对于超出默认(共20分钟)的时间同步令牌,将无法继续使用或进行远程同步,必须返厂或送回服务器端另行处理。
讨论议题鉴别的基本概念鉴别机制鉴别与交换协议典型鉴别实例鉴别的需求和目的问题的提出身份欺诈鉴别需求:
某一成员(声称者)提交一个主体的身份并声称它是那个主体。鉴别目的:
使别的成员(验证者)获得对声称者所声称的事实的信任。
身份鉴别定义:证实客户的真实身份与其所声称的身份是否相符的过程。依据:Somethingtheuserknow(所知)密码、口令等Somethingtheuserpossesses(拥有)身份证、护照、密钥盘等Somethingtheuseris(orHowhebehaves)指纹、笔迹、声音、虹膜、DNA等协议PAPCHAPKerberosX.509鉴别的两种情形鉴别用于一个特定的通信过程,即在此过程中需要提交实体的身份。实体鉴别(身份鉴别):某一实体确信与之打交道的实体正是所需要的实体。只是简单地鉴别实体本身的身份,不会和实体想要进行何种活动相联系。防止假冒数据源鉴别:为了确定被鉴别的实体与一些特定数据项有着静态的不可分割的联系。对数据单元被篡改和重复不提供保护。与完整性有关的数据原发鉴别必须确保自从数据项离开它的信源没有被修改。数据源鉴别方法:
1)加密:给数据项附加一个鉴别项,然后加密该结果
2)封装或数字签名
3)实体鉴别扩展:通过完整性机制将数据项和鉴别交换联系起来实体鉴别与消息鉴别的差别实体鉴别一般都是实时的,消息鉴别一般不提供时间性。实体鉴别只证实实体的身份,消息鉴别除了消息的合法和完整外,还需要知道消息的含义。数字签名是实现身份识别的有效途径。实体鉴别分类(1)实体鉴别可以分为本地和远程两类。实体在本地环境的初始化鉴别(就是说,作为实体个人,和设备物理接触,不和网络中的其他设备通信)。连接远程设备、实体和环境的实体鉴别。本地鉴别:需要用户的进行明确的操作远程鉴别:通常将本地鉴别结果传送到远程。
实体鉴别分类(2)实体鉴别可以是单向的也可以是双向的。
单向鉴别是指通信双方中只有一方向另一方进行鉴别。
双向鉴别是指通信双方相互进行鉴别。双向鉴别协议最常用的协议。该协议使得通信各方互相认证鉴别各自的身份,然后交换会话密钥。基于鉴别的密钥交换核心问题有两个:保密性实效性(1)为了防止伪装和防止暴露会话密钥,基本鉴别和会话密码信息必须以保密形式通信,这就要求预先存在保密或公开密钥供实现加密使用。(2)第二个问题也很重要,因为涉及防止消息重放攻击。实体鉴别系统的组成一方是出示证件的人,称作示证者P(Prover),又称声称者(Claimant)。另一方为验证者V(Verifier),检验声称者提出的证件的正确性和合法性,决定是否满足要求。第三方是可信赖者TP(Trustedthirdparty),参与调解纠纷。第四方是攻击者,可以窃听或伪装声称者骗取验证者的信任。鉴别模型
ATPB对身份鉴别系统的要求
(1)验证者正确识别合法申请者的概率极大化。(2)不具有可传递性(Transferability)
(3)攻击者伪装成申请者欺骗验证者成功的概率要小到可以忽略的程度(4)计算有效性(5)通信有效性(6)秘密参数能安全存储*(7)交互识别*(8)第三方的实时参与*(9)第三方的可信赖性*(10)可证明的安全性
讨论议题鉴别的基本概念鉴别机制鉴别与交换协议典型鉴别实例鉴别机制非密码的鉴别机制基于密码算法的鉴别采用对称密码算法的机制采用公开密码算法的机制采用密码校验函数的机制零知识证明协议非密码的鉴别机制A.口令机制
B.一次性口令机制
C.基于个人特征的机制
D.个人鉴别令牌A.口令机制
口令或通行字机制是最广泛研究和使用的身份鉴别法。通常为长度为5~8的字符串。选择原则:易记、难猜、抗分析能力强。口令系统有许多脆弱点:
外部泄露
口令猜测
线路窃听
危及验证者
重放对付外部泄露的措施教育、培训;严格组织管理办法和执行手续;口令定期改变;每个口令只与一个人有关;输入的口令不再现在终端上;使用易记的口令,不要写在纸上。对付口令猜测的措施教育、培训;严格限制非法登录的次数;限制最小长度,至少6~8字节以上防止用户特征相关口令,口令定期改变;及时更改预设口令;使用机器产生的口令。对付线路窃听的措施使用保护口令机制:如单向函数。
qfididq比较是或不是pid声称者验证者消息目的是保证即使攻击者截获了线路上传输的消息,也无法得知p',所以在传输之前对p’进行了散列操作。主要缺陷及对策攻击者很容易构造一张q与p对应的表,表中的p尽最大可能包含所期望的值。随机串(Salt)是使这种攻击变得困难的一种办法。在口令后使用随机数。只能保护在多台计算机上使用相同口令或在同一计算机上使用同一口令的不同用户。UNIX系统中的口令存储UNIX系统使用crypt()保证系统密码的完整性。
这一函数完成被称作单向加密的功能,它可以加密一些明码,但不能够将密码转换为原来的明码。改进方案
qid
qid比较f是或不是声称者验证者pid消息salt如果单纯对p'进行散列,攻击者用穷举攻击法,可能能够攻破,但是加个salt之后,就增加了提取出p'的难度了。基本的对付危及验证者的措施使用单向函数
pididq比较是或不是声称者验证者pid消息fqsalt对付窃听及危及验证者的措施
声称者fqidgidr比较是或不是pidr验证者消息saltsalt对付重放攻击的措施抵抗对通信线路的主动攻击——重放攻击。
ridnrvgfidqg比较是或不是p声称者验证者消息qidnrvsaltB.一次性口令机制一次性口令机制确保在每次认证中所使用的口令不同,以对付重放攻击。确定口令的方法:
(1)两端共同拥有一串随机口令,在该串的某一位置保持同步;
(2)两端共同使用一个随机序列生成器,在该序列生成器的初态保持同步;
(3)使用时戳,两端维持同步的时钟。强度(1)没有器件而知道口令p,不能导致一个简单的攻击;(2)拥有器件而不知道口令p,不能导致一个简单的攻击;(3)除非攻击者也能进行时间同步,否则重放不是一个简单的攻击;SKEY验证程序其安全性依赖于一个单向函数。为建立这样的系统A输入一随机数R,计算机计算f(R),f(f(R)),f(f(f(R))),…,共计算100次,计算得到的数为x1,x2,x3,…x100,A打印出这样的表,随身携带,计算机将x101存在A的名字旁边。形成链状结构以后依次键入xi,计算机计算f(xi),并将它与xi+1比较。C.基于个人特征的机制生物特征识别技术主要有:
1)指纹识别;
2)声音识别;
3)手迹识别;
4)视网膜扫描;
5)手形。
这些技术的使用对网络安全协议不会有重要的影响。D.个人鉴别令牌物理特性用于支持认证“某人拥有某东西”,但通常要与一个口令或PIN结合使用。这种器件应具有存储功能,通常有键盘、显示器等界面部件,更复杂的能支持一次性口令,甚至可嵌入处理器和自己的网络通信设备(如智能卡)。这种器件通常还利用其它密码鉴别方法。基于密码算法的鉴别采用对称密码算法的机制采用公开密码算法的机制采用密码校验函数的机制鉴别和密钥交换协议的核心问题有两个:保密性:时效性保密:为了防止伪装和防止暴露会话密钥。
时效涉及防止消息重放攻击。A、重放常见的消息重放攻击形式有:1、简单重放:重新发送复制的一条消息;2、可被日志记录的复制品:攻击者可以在一个合法有效的时间窗内重放一个带时间戳的消息;3、不能被检测到的复制品:这种情况可能出现,原因是原始信息已经被拦截,无法到达目的地,而只有重放的信息到达目的地。4、反向重放,不做修改。向消息发送者重放。当采用传统对称加密方式时,这种攻击是可能的。因为消息发送者不能简单地识别发送的消息和收到的消息在内容上的区别。对付重放攻击的一种方法是在认证交换中使用一个序数来给每一个消息报文编号。仅当收到的消息序数顺序合法时才接受之,但这种方法的困难是要求双方必须保持上次消息的序号。两种更为一般的方法是1)时间戳:A接受一个新消息仅当该消息包含一个时间戳,该时间戳在A看来,是足够接近A所知道的当前时间;这种方法要求不同参与者之间的时钟需要同步2)
盘问/应答方式Challenge/Response:
A期望从B获得一个新消息,首先发给B一个临时值(challenge),并要求后续从B收到的消息response包含正确的这个临时值。防止重放:(1)时间戳在网络环境中,特别是在分布式网络环境中,时钟同步并不容易做到一旦时钟同步失败要么协议不能正常服务,影响可用性,造成拒绝服务(DOS)要么放大时钟窗口,造成攻击的机会时间窗大小的选择应根据消息的时效性来确定(2)询问/应答方式(Challenge/Response)A期望从B获得一个消息首先发给B一个随机值(challenge)B收到这个值之后,对它作某种变换,并送回去A收到B的response,希望包含这个随机值在有的协议中,这个challenge也称为nonce可能明文传输,也可能密文传输这个条件可以是知道某个口令,也可能是其他的事情变换例子:用密钥加密,说明B知道这个密钥;
简单运算,比如增一,说明B知道这个随机值询问/应答方法不适应非连接性的应用,因为它要求在传输开始之前先有握手的额外开销,这就抵消了无连接通信的主要特点。一,采用对称密码的鉴别机制无可信第三方参与的鉴别单向鉴别:使用该机制时,两实体中只有一方被鉴别。双向鉴别:两通信实体使用此机制进行相互鉴别。有可信第三方参与的鉴别本部分使用以下记法A,B:实体A,B的标识符TP:可信第三方的标识符KXY:实体X和实体Y之间共享的秘密密钥,只用于对称密码技术SX:与实体X有关的私有签名密钥,只用于非对称加密技术NX:由实体X给出的顺序号RX:由实体X给出的随机数TX:由实体X原发的时变参数,它或者是时间标记TX,或者是顺序号RXNX:Y||Z:数据项Y和Z以Y在前Z在后顺序拼接的结果eK(Z):用密钥K的对称加密算法对数据Z加密的结果fK(Z):使用以密钥K和任意数据串Z作为输入的密码校验函数f所产生的密码校验值CertX:由可信第三方签发给实体X的证书TokenXY:实体X发给Y的权标,包含使用密码技术变换的信息TVP:时变参数SSX(Z):用私有签名密钥SX对数据Z进行私有签名变换所产生的签名.无可信第三方参与的机制
单向鉴别
一次传送鉴别AB(1)(2)(1)TokenAB=Text2||eKAB(TA||B||Text1)NA
(2)B解密,验证B、时间标记或顺序号的正确性
无可信第三方参与的机制单向鉴别
两次传送鉴别AB(1)RB||Text1(3)(2)TokenAB=Text3||eKAB(RB||B||Text2)(3)B解密,验证B、RB的正确性(2)TokenAB
无可信第三方参与的机制双向鉴别
两次传送鉴别AB(1)TokenAB(2)(4)A解密,验证B、RB的正确性(3)TokenBA(1)TokenAB=Text2||eKAB(TA||B||Text1)NA
(3)TokenBA=Text4||eKAB(TB||A||Text3)NB
(4)
无可信第三方参与的机制双向鉴别
三次传送鉴别AB(1)RB||Text1(3)(2)TokenAB=Text3||eKAB(RA||RB||B||Text2)(3)B解密,验证B、RB的正确性(2)TokenAB(4)TokenBA(4)TokenBA=Text5||eKAB(RB||RA||Text4)(5)(5)A解密,验证B、RB、
RA的正确性涉及可信第三方的机制--双向鉴别四次传送鉴别AB(6)TokenBATP(4)TokenAB(2)TokenTA(1)TVPA||B||Text1(3)(7)(5)(2)TokenTA=Text4||eKAT(TVPA||KAB||B||Text3)||eKBT(TTP||KAB||A||Text2)NTP
(4)TokenAB=Text6||eKBT(TTP||KAB||A||Text2)eKAB(TA||B||Text5)NTPNA(6)TokenBA=Text8||eKAB(TB||A||Text7)NB
涉及可信第三方的机制--双向鉴别五次传送鉴别AB(7)TokenBATP(5)TokenAB(3)TokenTA(2)RA||RB||B||Text2(4)(8)(6)(3)TokenTA=Text5||eKAT(RA||KAB||B||Text4)||eKBT(RB
||KAB||A||Text3)(5)TokenAB=Text7||eKBT(RB
||KAB||A||Text3)||eKAB(RA||RB||Text6)(7)TokenBA=Text9||eKAB(RB||RA||Text8)(1)RB||Text1二,采用公开密码算法的机制在声称者通过其私有签名密钥签署某一消息来证实身份。消息可包含一个非重复值以抵抗重放攻击。要求验证者有对应的公钥。单向鉴别:仅对实体中的一个进行鉴别。双向鉴别:两个通信实体相互进行鉴别。采用公开密码算法的机制—
单向鉴别一次传递机制AB(1)CertA||TokenAB(1)TokenAB=TA||B||Text2||SSA(TA||B||Text1)NANA
(2)(2)B验证A的公开密钥,验证B的标识符号采用公开密码算法的机制—
单向鉴别两次传递机制AB(1)RB||Text1(3)(3)B验证A的公开密钥,验证B的标识符号(2)CertA||TokenAB(2)TokenAB=RA||RB||B||Text3||SSA(RA||RB||B||Text2)采用公开密码算法的机制—
双向鉴别(1)AB(2)(2)B验证A的公开密钥,验证B的标识符号(3)CertB||TokenBA两次传递机制(1)CertA||TokenAB(1)TokenAB=TA||B||Text2||SSA(TA||B||Text1)NANA
(4)(3)TokenBA=TB||A||Text4||SSB(TB||A||Text3)NBNB
(4)A验证B的公开密钥,验证A的标识符号采用公开密码算法的机制—
双向鉴别(2)
三次传递机制AB(1)RB||Text1(3)(3)B验证A的公开密钥,验证B的标识符号(2)CertA||TokenAB(2)TokenAB=RA||RB||B||Text3||SSA(RA||RB||B||Text2)(4)CertB||TokenBA(4)TokenBA=RB||RA||A||Text5||SSB(RB||RA||A||Text4)(5)A验证B的公开密钥,验证A的标识符号(5)采用公开密码算法的机制—
双向鉴别(3)
两次传递并行机制AB(1)CertA||RA||Text1(2)(4)(4)A和B验证各自的随机数(1
)CertB||RB||Text2(1)TokenAB=RA||RB||B||Text4||SSA(RA||RB||B||Text3)(3)TokenBA(1
)TokenBA=RB||RA||A||Text6||SSB(RB||RA||A||Text5)(2)A和B确保他们拥有另一实体的公开密钥(2)(4)(3
)TokenAB三,采用密码校验函数的机制在该机制中,待鉴别的实体通过表明它拥有某个秘密鉴别密钥来证实其身份。可由该实体以其秘密密钥和特定数据作输入,使用密码校验函数获得密码校验值来达到。声称者和验证者共享秘密鉴别密钥,应仅为该两个实体所知,以及他们的信任方。采用密码校验函数的机制-
单向鉴别
一次传递鉴别AB(1)TokenAB(1)TokenAB=TA||Text2||fKAB(TA||B||Text1)NANA
(2)(2)B验证A的标识符号和时间标记采用密码校验函数的机制-
单向鉴别AB(1)RB||Text1(3)(3)B验证B的标识符号和随机数(2)TokenAB(2)TokenAB=Text3||fKAB(RB||B||Text2)两次传递机制
采用密码校验函数的机制-
双向鉴别(1)AB(2)(2)B验证A的标识符号和时间标记(3)TokenBA两次传递机制(1)TokenAB(1)TokenAB=TA||B||Text2||fKAB(TA||B||Text1)NANA
(4)(3)TokenBA=TB||A||Text4||fKAB(TB||A||Text3)NBNB
(4)A验证B的标识符号和时间标记
采用密码校验函数的机制-
双向鉴别(2)
三次传递机制AB(1)RB||Text1(3)(3)B验证B的标识符号和随机数(2)TokenAB(2)TokenAB=RA||Text3||fKAB(RA||RB||B||Text2)(4)TokenBA(4)TokenBA=Text5||fKAB(RB||RA||Text2)(5)A验证A的标识符号和随机数(5)
ididnrv声称者验证者密钥和id来自物理令牌或本地存储器加密,封装或签名密钥id解密或验证是或不是密钥idnrv消息加密,封装或签名简化的基于密码技术的鉴别机制零知识证明技术Introduction零知识证明技术可使信息的拥有者无需泄露任何信息就能够向验证者或任何第三方证明它拥有该信息。
双方没有事先建立的任何安全架构,双方是一种动态的认证机制。例如:
1)A要向B证明自己拥有某个房间的钥匙,假设该房间只能用钥匙打开锁,而其他任何方法都打不开。这时有2个方法:传统方法:(一)A把钥匙出示给B,B用这把钥匙打开该房间的锁,从而证明A拥有该房间的正确的钥匙。新的方法:(二)B确定该房间内有某一物体,A用自己拥有的钥匙打开该房间的门,然后把物体拿出来出示给B,从而证明自己确实拥有该房间的钥匙。后面这个方法属于零知识证明。好处在于在整个证明的过程中,B始终不能看到钥匙的样子,从而避免了钥匙的泄露。2)A拥有B的公钥,A没有见过B,而B见过A的照片,偶然一天2人见面了,B认出了A,但A不能确定面前的人是否是B,这时B要向A证明自己是B,也有2个方法。方法一:B把自己的私钥给A,A用这个私钥对某个数据加密,然后用B的公钥解密,如果正确,则证明对方确实是B。方法二:A给出一个随机值,B用自己的私钥对其加密,然后把加密后的数据交给A,A用B的公钥解密,如果能够得到原来的随机值,则证明对方是B。后面的方法属于零知识证明。
讨论议题鉴别的基本概念鉴别机制鉴别与交换协议典型鉴别实例双向鉴别传统加密方法Needham/SchroederProtocol[1978]DenningProtocol[1982]KEHN92公钥加密方法一个基于临时值握手协议:WOO92a一个基于临时值握手协议:WOO92bNeedham/SchroederProtocol[1978]传统加密方法1、AKDC:IDA||IDB||N12、KDCA:EKa[Ks||IDB||N1||EKb[Ks||IDA]]3、AB:EKb[Ks||IDA]4、BA:EKs[N2]5、AB:EKs[f(N2)]保密密钥Ka和Kb分别是A和KDC、B和KDC之间共享的密钥。本协议的目的就是要安全地分发一个会话密钥Ks给A和B。A在第2步安全地得到了一个新的会话密钥,第3步只能由B解密、并理解。第4步表明B已知道Ks了。第5步表明B相信A知道Ks并且消息不是伪造的。第4,5步目的是为了防止某种类型的重放攻击。特别是,如果敌方能够在第3步捕获该消息,并重放之,这将在某种程度上干扰破坏B方的运行操作。Needham/SchroederProtocol[1978]上述方法尽管有第4,5步的握手,但仍然有漏洞。假定攻击方C已经掌握A和B之间通信的一个老的会话密钥。C可以在第3步冒充A利用老的会话密钥欺骗B。除非B记住所有以前使用的与A通信的会话密钥,否则B无法判断这是一个重放攻击。如果C可以中途阻止第4步的握手信息,则可以冒充A在第5步响应。从这一点起,C就可以向B发送伪造的消息而对B来说认为是用认证的会话密钥与A进行的正常通信。DenningProtocol[1982]改进:1、AKDC:IDA||IDB2、KDCA:EKa[Ks||IDB||T||EKb[Ks||IDA||T]]3、AB:EKb[Ks||IDA||T]4、BA:EKs[N1]5、AB:EKs[f(N1)]|Clock-T|<t1+t2
其中:t1
是KDC时钟与本地时钟(A或B)之间差异的估计值;
t2是预期的网络延迟时间。DenningProtocol比Needham/SchroederProtocol在安全性方面增强了一步。然而,又提出新的问题:即必须依靠各时钟均可通过网络同步。如果发送者的时钟比接收者的时钟要快,攻击者就可以从发送者窃听消息,并在以后当时间戳对接收者来说成为当前时重放给接收者。这种重放将会得到意想不到的后果。(称为抑制重放攻击)。一种克服抑制重放攻击的方法是强制各方定期检查自己的时钟是否与KDC的时钟同步。另一种避免同步开销的方法是采用临时数握手协议。KEHN921、AB:IDA||Na2、BKDC:IDB||Nb||EKb[IDA||Na||Tb]3、KDCA:EKa[IDB||Na||Ks||Tb]||EKb[IDA||Ks||Tb]||Nb4、AB:EKb[IDA||Ks||Tb]||EKs[Nb]A与KDC的共享密钥:EkaB与KDC的共享密钥:EKb公钥加密方法:一个使用时间戳的方法是:1、AAS:IDA||IDB2、ASA:EKRas[IDA||KUa||T
]||EKRas[IDB||KUb||T
]3、AB:EKRas[IDA||KUa||T]||EKRas[IDB||KUb||T]||EKUb[EKRa[Ks||T]]一个基于临时值握手协议:WOO92a1、AKDC:IDA||IDB2、KDCA:EKRauth[IDB||KUb]3、AB:EKUb[Na||IDA]4、B
KDC:IDB||IDA||EKUauth[Na]5、KDC
B:EKRauth[IDA||KUa]||EKUb[EKRauth[Na||Ks||IDB]]6、B
A:EKUa[EKRauth[Na||Ks||IDB]||Nb]7、AB:EKs[Nb]一个基于临时值握手协议:WOO92b1、AKDC:IDA||IDB2、KDCA:EKRauth[IDB||KUb]3、AB:EKUb[Na||IDA]4、B
KDC:IDB||IDA||EKUauth[Na]5、KDC
B:EKRauth[IDA||KUa]||EKUb[EKRauth[Na||Ks||IDA||IDB]]6、B
A:EKUa[EKRauth[Na||Ks
||IDA||IDB]||Nb]7、AB:EKs[Nb]
讨论议题鉴别的基本概念鉴别机制鉴别与交换协议典型鉴别实例典型鉴别实例KerberosX.509鉴别服务Kerberos引言Kerberos:MIT的Athena计划的一部分。GreekKerberos:希腊神话故事中一种三个头的狗,还有一个蛇形尾巴。是地狱之门的守卫。ModernKerberos:意指有三个组成部分的网络之门的保卫者。“三头”包括:认证(authentication)簿记(accounting)审计(audit)Kerberos是由美国麻省理工学院提出的基于可信赖的第三方的认证系统。Kerberos提供了一种在开放式网络环境下进行身份认证的方法,它使网络上的用户可以相互证明自己的身份。Kerberos采用对称密钥体制对信息进行加密。其基本思想是:能正确对信息进行解密的用户就是合法用户。用户在对应用服务器进行访问之前,必须先从第三方(Kerberos服务器)获取该应用服务器的访问许可证(ticket)。用户只需输入一次身份验证信息就可以凭借此验证获得的票据(ticket-grantingticket)访问多个服务,即SSO(SingleSignOn)。由于在每个Client和Service之间建立了共享密钥,使得该协议具有相当的安全性。
问题在一个开放的分布式网络环境中,用户通过工作站访问服务器上提供的服务。服务器应能够限制非授权用户的访问并能够认证对服务的请求。工作站不能够被网络服务所信任其能够正确地认定用户,即工作站存在三种威胁。一个工作站上一个用户可能冒充另一个用户操作;一个用户可能改变一个工作站的网络地址,从而冒充另一台工作站工作;一个用户可能窃听他人的信息交换,并用回放攻击获得对一个服务器的访问权或中断服务器的运行。信息系统资源保护的动机单用户单机系统。用户资源和文件受到物理上的安全保护;多用户分时系统。操作系统提供基于用户标识的访问控制策略,并用logon过程来标识用户。Client/Server网络结构。由一组工作站和一组分布式或中心式服务器组成。C/S环境下三种可能的安全方案相信每一个单独的客户工作站可以保证对其用户的识别,并依赖于每一个服务器强制实施一个基于用户标识的安全策略。要求客户端系统将它们自己向服务器作身份认证,但相信客户端系统负责对其用户的识别。要求每一个用户对每一个服务证明其标识身份,同样要求服务器向客户端证明其标识身份。Kerberos的解决方案Kerberos支持以上三种策略。在一个分布式的client/server体系机构中采用一个或多个Kerberos服务器提供一个认证服务。总体方案是提供一个可信第三方的认证服务。Kerberos要解决的问题所有上述问题可以归结为一个非授权用户能够获得其无权访问的服务或数据。不是为每一个服务器构造一个身份认证协议,Kerberos提供一个中心认证服务器,提供用户到服务器和服务器到用户的认证服务。Kerberos采用传统加密算法(无公钥体制)。KerberosVersion4和Version5(RFC1510)。Kerberos系统应满足的要求安全。网络窃听者不能获得必要信息以假冒其它用户;Kerberos应足够强壮以至于潜在的敌人无法找到它的弱点连接。可靠。Kerberos应高度可靠,并且应借助于一个分布式服务器体系结构,使得一个系统能够备份另一个系统。透明。理想情况下,用户除了要求输入口令以外应感觉不到认证的发生。可伸缩。系统应能够支持大数量的客户和服务器。KerberosVersion4引入一个信任的第三方认证服务,采用一个基于Needham&Schroeder协议。采用DES,精心设计协议,提供认证服务。一个简单的认证对话引入认证服务器(AS),它知道所有用户的口令并将它们存储在一个中央数据库中。另外,AS与每一个服务器共有一个唯一的保密密钥。这些密钥已经通过物理上或以更安全的手段分发。
Kerberos协议中一些概念Principal(安全个体)被鉴别的个体,有一个名字(name)和口令(password)KDC(Keydistributioncenter)是一个网络服务,提供ticket和临时的会话密钥Ticket一个记录,客户可以用它来向服务器证明自己的身份,其中包括客户的标识、会话密钥、时间戳,以及其他一些信息。Ticket中的大多数信息都被加密,密钥为服务器的密钥Authenticator一个记录,其中包含一些最近产生的信息,产生这些信息需要用到客户和服务器之间共享的会话密钥Credentials一个ticket加上一个秘密的会话密钥一个简单的鉴别对话引入鉴别服务器(AS),它知道所有用户的口令并将它们存储在一个中央数据库中。
AS与每一个服务器共有一个唯一的保密密钥。这些密钥已经物理上或以更安全的手段分发。考虑以下假定的对话:(1)CAS:IDC||PC||IDV(2)ASC:Ticket(3)CV:IDC||TicketTicket=EKV[IDC||ADC||IDV]其中:C :client AS:AuthenticationServerV:server IDC :identifierofuseronCIDV :identifierofVPC :passwordofuseronCADC :networkaddressofCKV :AS与V共有的保密密钥CVAS(1)(2)(3)ADC防止何种攻击?更安全的认证对话两个主要问题希望用户输入口令的次数最少。口令以明文传送会被窃听。解决办法票据重用(ticketreusable)票据许可服务器(ticket-grantingserver,TGS)改进后的假想的对话:用户登录的每次对话:(1)CAS:IDC||IDtgs(2)ASC:EKC[Tickettgs]每种服务类型一次:(3)CTGS:IDC||IDv||Tickettgs(4)TGSC:TicketV每种服务会话一次:(5)CV:IDC||TicketVTickettgs=EKtgs[IDC||ADC||IDtgs||TS1||Lifetime1]TicketV=EKV[IDC||ADC||IDV||TS2||Lifetime2]
CVAS(1)(2)(3)TGS(4)(5)Kerberos方案的详细描述用户向AS请求代表该用户的票据许可票据。
AS发回加密的票据,密钥由口令导出(Why?)票据许可票据包含用户ID、网络地址、TGS的ID、时戳与生存期(Why?)。用户请求服务许可票据。TGS验证,如通过则发服务许可票据。用户使用服务许可票据请求服务。KerberosV4的认证对话两个问题需要服务器与TGS相关的生存期问题;太长则?太短则?如何应付票据的过期使用?服务器向客户进行认证其本身;假的服务器。解决方案会话密钥(sessionkey)AS用安全方式向用户和TGS各自提供一块秘密信息,然后用户也以安全方式向TGS出示该秘密来证明自己的身份。这个秘密就是会话密钥。Kerberos处理过程概要CVAS(1)(2)(3)TGS(4)(5)Kerberos(6)KerberosV4报文交换总结(a)AuthenticationServiceExchange:toobtainticket-grantingticket(1)CAS:IDC||IDtgs||TS1(2)ASC:EKC[Kc,tgs||IDtgs||TS2||Lifetime2||Tickettgs] Tickettgs=EKtgs[Kc,tgs||IDC||ADC||IDtgs||TS2||Lifetime2](b)Ticket-grantingServiceExchange:toobtainservice-grantingticket(3)CTGS:IDV||Tickettgs||Authenticatorc(4)TGSC:EKc,tgs[Kc,v||IDV||TS4||Ticketv] Tickettgs=EKtgs[Kc,tgs||IDC||ADC||IDtgs||TS2||Lifetime2] Ticketv=EKV[Kc,v||IDC||ADC||IDv||TS4||Lifetime4] Authenticatorc=EKc,tgs[IDc||ADc||TS3](c)Client/ServerAuthenticationExchange:Toobtainservice(5)CV:Ticketv||Authenticatorc(6)VC:EKc,v[TS5+1](formutualauthentication) Ticketv=EKV[Kc,v||IDc||ADc||IDv||TS4||Lifetime4] Authenticatorc=EKc,v[IDc||ADc||TS5]RationalefortheElementsoftheKerberosVersion4Protocol(a)AuthenticationServiceExchangeMessage(1) Client请求
ticket-grantingticketIDC: 告诉AS本client端的用户标识;
IDtgs: 告诉AS用户请求访问TGS;
TS1: 让AS验证client端的时钟是与AS的时钟同步的;Message(2) AS返回ticket-grantingticketEKC: 基于用户口令的加密,使得AS和client可以验证口令, 并保护Message(2)。
Kc,tgs:sessionkey的副本,由AS产生,client可用于在AS与client
之间信息的安全交换,而不必共用一个永久的key。
IDtgs: 确认这个ticket是为TGS制作的。
TS2: 告诉client该ticket签发的时间。
Lifetime2: 告诉client该ticket的有效期;
Tickettgs: client用来访问TGS的ticket。
(b)Ticket-grantingServiceExchangeMessage(3) client请求service-grantingticketIDv: 告诉TGS用户要访问服务器V;
Tickettgs: 向TGS证实该用户已被AS认证;Authenticatorc:由client生成,用于验证ticket;Message(4) TGS返回service-grantingticketEKc,tgs: 仅由C和TGS共享的密钥;用以保护Message(4);
Kc,tgs: sessionkey的副本,由TGS生成,供client和server之间 信息的安全交换,而无须共用一个永久密钥。
IDv: 确认该ticket是为serverV签发的;
TS4: 告诉client该ticket签发的时间;
TicketV: client用以访问服务器V的ticket;
Tickettgs: 可重用,从而用户不必重新输入口令;
EKtgs: ticket用只有AS和TGS才知道的密钥加密,以预防篡改;
Kc,tgs: TGS可用的sessionkey副本,用于解密authenticator,从而 鉴别ticket;
IDc: 指明该ticket的正确主人;客户/服务器鉴别交换Message(5) client请求服务
Ticketv: 向服务器证实该用户已被AS认证;
Authenticatorc:由客户生成,用于验证ticket有效;Message(6) 客户对服务器的可选认证
Ekc,v: 使C确认报文来自V;
TS5+1:使C确信这不使报文重放;
TicketV: client用以访问服务器V的ticket;
EKv: 用只有AS和TGS才知道的密钥加密的票据,以预防篡改;
Kc,v:用户的会话密钥副本;
IDc:票据的合法用户;
ADc:防止非法使用;
IDv:使服务器确信解密正确;
Kerberos管辖范围与多重服务一个完整的Kerberos环境包括一个Kerberos服务器,一组工作站,和一组应用服务器,满足下列要求:Kerberos服务器必须在其数据库中拥有所有参与用户的ID(UID)和口令散列表。所有用户均在Kerberos服务器上注册。Kerberos服
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2031年中国型列管式冷却器行业投资前景及策略咨询研究报告
- 2025至2031年中国单只面盆龙头行业投资前景及策略咨询研究报告
- 2025至2030年中国骨锥数据监测研究报告
- 2025至2030年中国穿管引导器数据监测研究报告
- 点金训练答案
- 学前教育技能培训
- 月嫂新生儿护理内容
- 实施化妆品防腐剂使用管理规定
- 加强药品批发企业资质审查工作
- 资产收购合同一
- 2025年高考作文备考训练:知足与进取(附思路指引、立意参考、结构建议、4篇范文示例)
- 社区文化活动服务行业跨境出海战略研究报告
- 2025年第33批 欧盟REACH SVHC高度关注物质清单247项
- 碳中和目标下的公路建设策略-全面剖析
- 2025年山东省东营市广饶县一中中考一模英语试题(原卷版+解析版)
- 工贸行业隐患排查指导手册
- GB/T 36187-2024冷冻鱼糜
- 2023年江苏省五年制专转本英语统考真题(试卷+答案)
- 20S805-1 雨水调蓄设施-钢筋混凝土雨水调蓄池
- 部编版(统编)六年级语文下册文学常识及文化常识(共4页)
- 世界500强企业企业文化(企业使命、愿景、核心价值观)集锦
评论
0/150
提交评论