信息安全导论(以问题为导向) 课件 07 身份认证_第1页
信息安全导论(以问题为导向) 课件 07 身份认证_第2页
信息安全导论(以问题为导向) 课件 07 身份认证_第3页
信息安全导论(以问题为导向) 课件 07 身份认证_第4页
信息安全导论(以问题为导向) 课件 07 身份认证_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

身份认证

Authentication1教学视频、国家级一流在线课程链接:/course/FUDAN-1206357811内容提要身份认证的基本概念基于口令的身份认证Unix口令动态口令质询与应答认证技术Needham-Schroeder协议KERBEROS协议2基于密码的身份认证内容提要1、身份认证的基本概念3定义身份认证(Authentication)的定义:宣称者向验证方出示证据,证明其身份的交互过程至少涉及两个参与者,是一种协议分为:双向认证单向认证4定义身份认证(Authentication):注意与报文鉴别(MessageAuthentication)的区别1、报文鉴别是静态附加在报文之上,报文鉴别可以作为基本方法,用于设计身份认证协议2、一般和时间相关,具有实时性MessageauthenticationhasnotimelinessEntityauthenticationhappensinrealtime要保证用于身份认证的报文的”鲜活性”对身份认证最大的威胁是“重放攻击”(Replay

Attack)5身份认证基本方法宣称者所知道的-passwords,PINs,keys…宣称者拥有的-cards,handhelds…宣称者继承的生物特征–biometricsPINS与Keys的关系用短的PIN码锁住长的密钥Key,提供两级安全保护62、基于口令的身份认证2.1基于口令身份认证的一般模式7基于口令认证的一般过程初始化阶段UserchoosespasswordHashofpasswordstoredinpasswordfile身份认证阶段Userlogsintosystem,suppliespasswordSystemcomputeshash,comparestofile8基于口令的认证-弱的认证方法口令在相当长的一段时间内固定明文存放,或哈希之后存放通过设置规则(如要求字母、数字,长度等),避免设置弱口令Salt(盐值)提高字典攻击的穷举空间有大量的应用实例910PasswordfileUserexrygbzyfkgnosfixggjoklbsz……mypasswdhashfunction示例:UNIXpasswords/etc/passwd/etc/shadow

Username:password:

UID

:

GID:

USERINFO:

HOME:

SHELL对基于口令认证的攻击重放攻击(因口令一般一段时间内固定)穷举攻击8个字符相当于40-50bits的穷举空间字典攻击在线字典攻击离线字典攻击112、基于口令的身份认证2.2字典攻击与UNIX口令12字典攻击–

数量化讨论Typicalpassworddictionary1,000,000entriesofcommonpasswordspeople'snames,commonpetnames,andordinarywords.在线字典攻击:Supposeyougenerateandanalyze10guessespersecThismaybereasonableforawebsite;offlineismuchfasterDictionaryattackinatmost100,000seconds=28hours,or14hoursonaverageIfpasswordswererandomAssumesix-characterpasswordUpper-andlowercaseletters,digits,32punctuationcharacters689,869,781,056passwordcombinations.Exhaustivesearchrequires1,093yearsonaverage13离线字典攻击原理建立离线字典文件口令列表与攻击目标系统采用同样Hash算法,计算生成的口令Hash值获取password文件password文件里的Hash值与字典文件中Hash进行比对14Password1H(Password1)Password2H(Password2)Password3H(Password3)……UNIX口令UNIX标准口令Hash函数(使用改造的DES算法)将DES改造成Hash函数,用key对一个常量明文进行加密,获得一个13个ASCII字符的密文编码输出,其中包括salt的两个字符[fromRedHatLinux6.2]key包括两个部分:口令明文+saltSalt值从系统的时钟提取,取值范围[a-z,A-Z,0-9,./]明文使用固定的64比特0(64bitzeroes)对DES做了修改iterated25timesAltersexpansionfunctionofDESchar*crypt(constchar*key,constchar*salt)15Salt(使用加密技术生成的随机数)Unixpasswordlineljt:fURfuu4.4hY0U:129:129:Fudan_U:/home/ljt:/bin/csh1625xDESInputSaltKeyConstantPlaintextCiphertextCompareWhenpasswordisset,saltischosenrandomlySalt增加字典攻击的穷举空间没有Salt值所有UNIX主机使用相同的hash函数攻击者对字典文件里的口令字符串算一次hash离线字典文件可以共用有Salt值同样的口令产生不同的hash值

一个口令字符串的hash值有212

种不同的输出攻击者没有办法事先算好离线字典或离线字典的词条规模增加约212

倍建议使用更强的散列函数,如SHA117口令–一种弱的认证方法窃取A的password,将在很长一段时间拥有A的权限,直到A发现特别的,网络环境下远程认证远程登录,password传递形式?可以通过设置一些规则避免简单的口令一种普遍的身份认证方法因为容易部署、易使用如何管理passwords18基于口令的认证+明文传输!!!Telnet远程登录逐个字母发送,明文方式Http协议Web应用Ftp服务……嗅探(Sniffer)相当容易可以对口令加密传输,但密钥分发是个问题192、基于口令的身份认证2.3动态口令20动态口令,Onetimepasswords(OTP)解决的问题:基于口令的身份认证易受重放攻击,如何避免口令被重放需要事先共享口令序列,每次认证之后更新,当前期待的口令与前一个的口令不一样如何共享?Lamport的动态口令方案21Lamport’sOneTimePasswords1981,byLamport初始化阶段

用户A基于一个秘密

w使用HASH函数h,计算出一组password序列:w,h(w),h(h(w)),…,ht(w)验证方Bob

Sever仅知道

ht(w)认证阶段:Password,第ith

次认证:

wi=ht-i(w)22动态口令安全性分析预先播放(Pre-playattack

)攻击在口令更新的时间窗口(常见1分钟、30秒)还是可以遭受重放攻击缺点:使用500-1000次需要Reinitialization开销不小不支持双向认证,无法确定口令提交给了合法的Bob

Sever23动态口令牌24身份认证协议的分类弱的身份认证基于口令,PIN码,等动态口令One-timepasswords(半强的)强的(基于密码技术的)身份认证质询与应答技术基于可信第三方的身份认证(不但实现身份认证,还解决密钥分发问题)Needham-Schroeder协议Kerberos协议253、质询与应答认证技术3.1对称密钥实现质询与应答26质询与应答(Challenge-Response)的基本逻辑设B要完成对A的身份认证身份认证基于A所知道的某个秘密(例如密钥)首先B发给A一个随机数(challenge)A收到这个随机数之后,对它作某种变换,得到response报文,并发送回去Response同时依赖于随机数(challenge)和A所知道的这个秘密B收到response,可以验证A是知道这个秘密的27质询与应答的基本逻辑在有的协议中,这个challenge也称为Nonce(NumberusedONCE)可能明文传输,也可能密文传输A生成Response报文的典型变换有:A用密钥加密,说明A知道这个密钥;有时会对challenge简单运算,比如增一,再做加密处理质询与应答是构造更复杂的交互式认证协议的基本组件28质询与应答的实现方式使用对称密钥对称密钥加密Symmetricencryption报文鉴别码Onewayfunctions使用公开密钥密码数字签名Digitalsignatures29基于对称密钥-基本思想Alice与BobServer共享密钥

KAlice

30AliceKAliceBobServerKAlice,

Kc,Kd,

……Alice,E(KAlice,Challenge)OkayChallengeChallenge是随机数单向(Unilateral)身份认证-对称加密BobAlice:rbAliceBob:EK(rb,B)Bob收到后检验

rb

是否是它刚发送给A的Challenge随机数同时检验B的标识

“B”-是为了防止反射攻击(reflectionattack),报文中的“B”

标记了报文的方向rb

要求必须不能重复,并且是随机的防止重放攻击

replayattack31K是Alice与Bob共享的密钥

反射攻击Reflectionattack反射攻击是对质询–应答身份认证协议的一种攻击方法。攻击者I(A)在两个方向上使用相同的协议。也就是说,I(A)用Bob

server对自己这个方向的Challenge,去质询Bob

server。B→I(A):rb

I(A)→B:rb

B

→I(A):EK{rb}

I(A)→B:EK{rb}

32单向认证:使用时间戳(timestamps)基于时间戳的隐性(Implicit)ChallengeAlice

Bob:EK(T,B)

T:Alice本地时钟当前的时间戳Bob解密后检验时间戳T是否可接受Δt1:网络延时;Δt2:时钟误差参数

B:防止反射B

A方向同样的协议报文33BobAlice:rbAliceBob:EK(ra,rb,B)AliceChallengeBobBobAlice:EK(ra,rb)34双向(Mutual)认证-对称密钥加密35对称密钥的要求要求参与方事先完成对称密钥交换,可扩展性(Scalability)是个问题假设:C/S模型任意通信两方需要共享不同的密钥随着Server/Client数量的增加…密钥如何分发,如何管理?ClientServerChallengeResponse对称密钥的要求任意通信两方需要共享不同的密钥在小的、封闭式的系统里,可以事先完成密钥共享大规模、分布式的环境中,实现密钥共享想对困难因此用对称密钥加密实现身份认证,往往伴随着密钥交换(e.g.Needham-Schroeder协议,Kerberos协议)36质询与应答的实现方式使用对称密钥对称密钥加密Symmetricencryption报文鉴别码Onewayfunctions使用公开密钥密码数字签名Digitalsignatures37基于报文鉴别码的身份认证协议不使用加密,用基于对称密钥的报文鉴别码(MAC)算法MAC值=hK(M),M是报文接收方检验:同样方向计算收到报文的MAC值,与收到的MAC值比对SKID2(unilateral),andSKID3(mutual)38双向认证-基于对称密钥的MAC–SKID3BobAlice:rbAliceBob:ra,hK(ra,rb,B)BobAlice:hK(ra,rb,A)39单向认证-基于对称密钥的MAC–SKID2BobAlice:rbAliceBob:ra,hK(ra,rb,B)403、质询与应答认证技术3.2公开密钥实现质询与应答41质询与应答的实现方式使用对称密钥对称密钥加密Symmetricencryption报文鉴别码Onewayfunctions使用公开密钥密码数字签名Digitalsignatures42单向认证协议-基于数字签名Bob

Alice:rB(随机数)Alice

Bob:certA,rA,B,SA(rA,rB,B)Bob验证:用公钥证书里公钥验证A的签名参数“B”用来标记报文的方向随机数

rA

放在签名块里,用于防止选择文本攻击chosen-textattacks43双向认证-基于数字签名Bob

Alice:rBAlice

Bob:certA,rA,B,SA(rA,rB,B)Bob

Alice:certB,A,SB(rA,rB,A)44单向认证-基于对时间戳签名基于时间戳的隐性(Implicit)ChallengeAlice

Bob:certA,tA,B,PRA(tA,B)45质询-应答协议的标准化国际标准化组织ISO和IEC(theInternationalElectrotechnicalCommission)已经标准化了若干质询-应答认证协议,被建议用做构造复杂认证协议的基本组件。例如:"ISOSymmetricKeyTwo-PassUnilateralAuthenticationProtocol": B

A:RB

||Text1 A

B:TokenABTokenAB

=Text3||KAB(RB

||B||Text2).464、Needham-Schroeder协议

基于可信第三方的身份认证

AuthenticationInvolvingTTP4.1Needham-Schroeder协议解决的问题4748对称密钥的密钥分发问题要求通信参与者事先完成对称密钥交换,可扩展性(Scalability)是个问题任意通信两方需要共享不同的密钥随着通信的参与者数量的增加…密钥如何分发,如何管理?

解决思路:基于可信第三方身份认证选定某个参与者作为可信第三方,为其他参与者协商对称密钥。设有n个通信参与者没有可信第三方,需要事先共享n(n-1)/2个对称密钥有可信第三方,只要每个参与者事先与可信第三方共享一个对称密钥即可,只需要n-1个对称密钥其余对称密钥(称为会话密钥,session

key),在需要的时候,由可信第三方为他们协商49Needham-Schroeder协议基于可信第三方实现密钥分发与身份认证的协议协议中,可信第三方记作TrentTrent又被称作是密钥分发中心(KDC,keydistributioncenter)Trent可以服务大量用户,他与这些用户事先共享对称密钥,这些密钥是相对长期的密钥。例如,

Trent与A的对称密钥KAT,Trent与B的对称密钥KBT,等等用户有通信需求时,Trent为他们生成随机的会话密钥,例如,KAB会话密钥:短期密钥(一次一密),仅对当前会话有效50Needham-Schroeder协议使用Trent的服务,可以实现任何两个最终用户之间的安全通信,而无需他们进行物理会面;他们可以运行身份认证协议来建立共享的会话密钥会话结束后,最终用户甚至可以互相忘记对方,会话密钥扔掉51Needham-Schroeder历史最著名的安全协议之一1978首次公开发表,1981被发现有一定缺陷几经改进,最终成为Kerberos协议的基础52Needham-Schroeder提供的安全服务前提:Alice和Trent有共享的对称密钥

KAT;Bob和Trent有共享的对称密钥KBT.安全服务(协议运行后):完成参与者Alice,Bob,Trent相互之间的身份认证

Alice和Bob建立新的他们共享的会话密钥K.534、Needham-Schroeder协议

基于可信第三方的身份认证

AuthenticationInvolvingTTP4.2Needham-Schroeder协议精讲54Needham-Schroeder提供的安全服务前提:Alice和Trent有共享的对称密钥

KAT;Bob和Trent有共享的对称密钥KBT.安全服务(协议运行后):完成参与者Alice,Bob,Trent相互之间的身份认证

Alice和Bob建立新的他们共享的会话密钥K.555657

58对Needham-Schroeder协议的攻击对Needham-Schroeder协议的攻击

59对Needham-Schroeder攻击的分析RESULTOFATTACK

Bobthinksheissharinganewsessionkey

withAlicewhileactuallythekeyisanoldoneandmaybeknown

toMalice.改进措施:UsingTimestamp1,4,5SameasintheNeedham-Schroeder.A,B均检验:605、KERBEROS协议

基于可信第三方的身份认证

AuthenticationInvolvingTTP615、KERBEROS协议

基于可信第三方的身份认证

AuthenticationInvolvingTTP5.1KERBEROS协议解决的问题62Kerberos认证协议的历史Kerberos是一个经过长期考验的认证协议80年代中期是MIT的Athena工程的产物版本前三个版本仅用于内部第四版得到了广泛的应用第五版于1989年开始设计RFC1510,1993年确定标准Kerberos解决的问题认证、数据完整性、保密性63分布式环境,C/S模型,实现应用服务器(记作V)与用户(记作C)间的双向认证KERBEROS-认证功能的抽象ASC1V1V1V3C2……基于一个集中的认证服务器AS(可信第三方)分布式环境,C/S模型,实现应用服务器(记作V)与用户(记作C)间的双向认证基于一个集中的认证服务器AS(可信第三方),

记作AS(AuthenticationServer)把各个应用服务器V上共有的认证功能抽象剥离,集中到AS服务器上基于对称加密实现,没有采用公开密钥体制KERBEROS-认证功能的抽象解决的问题是:在一个分布式环境中,用户希望获取服务器上提供的服务。服务器能限制授权用户的访问,并能对服务请求进行认证处理三种威胁:用户伪装成另一个用户访问服务器用户更改工作站的网络地址用户窃听报文交换过程,利用重放攻击进入服务器KERBEROS解决的问题协议用到的符号定义术语:C=客户AS=认证服务器(存放着所有用户及用户口令信息)V=服务器IDc=在C上的用户标识符IDv=V的标识符Pc=在C上的用户口令ADc=C的网络地址Kv=AS和V共享的加密密钥5、KERBEROS协议

基于可信第三方的身份认证

AuthenticationInvolvingTTP5.2

KERBEROS的引入协议68一个简单的基于可信第三方的认证对话(1)C

AS: IDc||Pc||IDv(2)AS

C: Ticket(3)C

V: IDc||TicketTicket=EKv[IDc||ADc||IDv]存在的问题要求用户频繁地输入口令申请不同的服务,用户需要新的票据口令是明文传送的,敌对方可能窃听到口令敌对方窃听到Ticket,摹仿C进行重放攻击简单协议的改进用户登录时获取票据许可票:(1)C

AS: IDc||IDtgs(2)AS

C: EKc

[Tickettgs]请求某种服务类型时获取服务许可票:C

TGS:IDc

||IDv||Tickettgs(4)TGS

C:Ticketv获取服务:(5)C

V:IDc||TicketvTickettgs=EKtgs[IDc||ADc||IDtgs||TS1||Lifetime1]Ticketv=Ekv[IDc||ADc||IDv||TS2||Lifetime2]增加票据许可服务器TGS(进一步剥离应用服务器上的授权功能,并集中到TGS)EKc(user’ssecretkey)iscomputedbyaone-wayfunctionfromtheuser’spassword存在的问题每一张ticket的有效期限设置如果太短,要

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论