《第05讲-认证协议.ppt》

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

网络与信息安全安全基础(一)潘爱民,北京大学计算机研究所内容关于认证协议Windows平台的认证协议HTTP认证协议与身份认证相关的研究工作介绍安全层次安全的密码算法安全协议网络安全系统安全应用安全回顾:信息安全的需求保密性Confidentiality完整性Integrity系统完整性数据完整性可用性Availability真实性authenticity认证消息认证身份认证:验证真实身份和所声称身份相符的过程……认证协议基于对称密码算法的认证方案是否需要密钥分发中心(KDC)?对于协议的攻击手法认证的对象消息发送方消息本身基于公钥密码算法的认证方案公钥和身份的绑定基于对称密码算法的认证消息认证MAC码或者HMAC码前提:存在共享密钥密钥管理中心或者用一个密钥交换协议身份认证依据所知:口令、密钥,等所有:身份证、智能卡,等物理标识:指纹、笔迹、DNA,等基于口令证明是否知道口令口令的强度双向和单向认证目的:分发密钥、签名有效性,……通讯方式两方通讯一方发起通讯,另一方应答双向和单向认证有第三方介入的认证第三方为可信任方,KDC在线和离线其他情形多方认证跨域认证委托认证模型、信任模型……为什么需要认证协议本地多用户认证Login:如何管理口令远程用户认证一次性访问资源或者服务之前进行认证多次访问资源或者服务身份,获得credential利用credential访问资源或者服务认证例子:263的邮件登录认证例子:sina的邮件登录Client与Proxy-Server之间的认证Client与Proxy-Server之间认证(续)基于口令的认证+明文传输!!!Telnet远程登录逐个字母发送,明文方式POP3邮件登录Ftp服务……认证协议:设计一个协议(一)假设A和B要进行通讯,A和B有一个共享的密钥Kab,如何利用这个密钥进行认证,并且商定一个会话密钥Ks1AB:(IDA||N1)2BA:EKab[Ks,IDB,f(N1),N2)]3AB:EKs[f(N2)]这里的f函数为某个确定的运算,比如f(x)=x+1AKabB我是A告诉你Ks,以后就用它,别让别人知道好的,我用它试试,可我怎么知道你是B呢如果你知道Kab,那么你就知道Ks,我就知道你是A认证协议:设计一个协议(二)假设A和B要进行通讯,A和B与KDC各有一个共享密钥Ka和Kb,如何利用这两个密钥进行认证,并且商定一个会话密钥KsAKDC:(IDA||IDB||N1)KDCA:EKa[Ks||IDB||N1||EKb(Ks,IDA)]AB:EKb(Ks,IDA)||EKs(M)AKbB我是A,我想和B通讯KDCKa我把必要的信息告诉你我把消息给你,如果你是B,你就可以解开会话密钥Ks,由A送给B的认证信息针对认证协议的一些常见攻击手段和相应对策中间人攻击(MITM,maninthemiddle)ABE如果通讯双方没有任何先决条件,那么这种攻击总是存在的A和B的协商过程很容易受到这一类攻击对策:增加A和B之间的先决知识常见攻击和对策(二)重放攻击(replayattacks)ABE偷听者可以记录下当前的通讯流量,以后在适当的时候重发给通讯的某一方,达到欺骗的目的对策:nonce保证通讯的唯一性增加时间戳常见攻击和对策(三)字典攻击只要能够获得口令的密文形式,就可以实施字典攻击在线和离线字典攻击的有效性判断一个口令是有效的对策用户和管理员:选择好的口令协议设计:对口令的使用过程中,不要泄露口令的信息在密文中增加口令以外的额外信息常见攻击和对策(四)已知明文攻击在许多认证协议中,一方会选择一个随机数,并且明文传输这个随机数,另一方加密这个随机数,并送回来——Challenge/Response,所以偷听者可以获得已知明文/密文对对策:避免传输明文/密文对增加已知明文攻击的难度选择明文攻击在认证协议中,如果随机数的选择没有任何规则,那么中间人或者假冒方就有可能选择随机数,从而实施选择明文攻击对策随机数的选择限制认证协议中的常用技术(一)时间戳A收到一个消息,根据消息中的时间戳信息,判断消息的有效性如果消息的时间戳与A所知道的当前时间足够接近这种方法要求不同参与者之间的时钟需要同步在网络环境中,特别是在分布式网络环境中,时钟同步并不容易做到一旦时钟同步失败要么协议不能正常服务,影响可用性(availability),造成拒绝服务(DOS)要么放大时钟窗口,造成攻击的机会时间窗大小的选择应根据消息的时效性来确定认证协议中的常见技术(二)询问/应答方式(Challenge/Response)A期望从B获得一个条件首先发给B一个随机值(challenge)B收到这个值之后,对它作某种变换,得到response,并送回去A收到这个response,可以验证B符合这个条件在有的协议中,这个challenge也称为nonce可能明文传输,也可能密文传输这个条件可以是知道某个口令,也可能是其他的事情变换例子:用密钥加密,说明B知道这个密钥;简单运算,比如增一,说明B知道这个随机值常用于交互式的认证协议中分析一个协议:Kehn921A→BIDA||Na2B→KDCIDB||Nb||EKb[IDA||Na||Tb]3KDC→AEKa[IDB||Na||Ks||Tb]||EKb[IDA||Ks||Tb]||Nb4A→BEKb[IDA||Ks||Tb]||EKs[Nb]ABKDC4231关于Kehn92协议EKb[IDA||Ks||Tb]相当于一个ticket如果A要再次访问B,可以不再通过KDCA→B:EKb[IDA||Ks||Tb]||Na’B检查ticket是否在有效时间,若是,则B→A:Nb||EKs[Na]A→B:EKs[Nb’]ABKDC213Windows采用的认证方案LanManager认证(称为LM协议)早期版本NTLMv1认证协议NT4.0SP3之前的版本NTLMv2认证协议NT4.0SP4开始支持Kerberosv5认证协议Windows2000引进安全性加强LanMan认证方案可以用于共享级认证Windows9x/NT都支持由IBM开发LanMan的口令加密方案从口令——〉hash值口令变成大写把口令变成14个字符,或者截断、或者补空字符这14个字符分成两个7字符用7个字符和DES算法加密一个“magic”64位把两个64位结果拼起来,得到128位值服务器保存该128位值,作为“hashedpassword”缺陷如果口令长度在8-13位之间,则后面的7字符先破解,对前7个字符的破解可以提供某些信息建议:使用7位或者14位口令NT的口令加密方案从口令变成hash值把口令变成Unicode编码使用MD4散列算法得到128位散列值一种更好的方法是在口令上添加一些附加的信息,这样可以增加破解的难度Hash之前增加附加信息UNIX的crypt使用了附加信息黑客工具L0phtcrack下载:使用注意事项NT口令破解的一个测试结果在一台高端PC机(4个CPU)上强行破解5.5小时内破解字母-数字口令45小时破解字母-数字-部分符号口令480小时破解字母-数字-全部符号口令插:UNIX中crypt口令加密方案crypt()是一个口令加密函数,它基于DES算法。我们可以认为这是一个单向加密操作函数原型:char*crypt(constchar*key,constchar*salt);*salt是两个字符,每个字符可从[a-zA-Z0-9./]中选出来算法UNIX标准算法使用DES加密算法,用key对一个常量进行加密,获得一个13字节的密文编码输出,其中包括salt的两个字符[fromRedHatLinux6.2]Salt的作用同样的口令产生不同的密文增加了穷举空间——?建议使用更为安全的MD5算法NTLM认证过程(fromMSDN)1.用户在客户机上,提供域名、用户名和口令。系统计算口令的hash值,然后把口令丢掉2.客户把用户名以明文方式发送给服务器3.服务器产生一个128位随机数(challenge或者nonce),发送给客户4.客户用口令的hash值作为密钥,加密随机数,并把结果送回给服务器。这是应答(response)5.服务器把以下信息送给域控制器(DC):用户名、challenge和response6.域控制器利用用户名从SAM(SecurityAccountManager)数据库得到用户口令的hash值,并用此值加密challenge7.域控制器比较它自己算出来的challenge密文和客户算出来的challenge密文。如果相等的话,认证成功NTWorkstation认证协议1.C-SReqChal,CcS-CCs2.C、S计算会话密钥Ks=E(PW[9..15],E(PW[0..6],Add(Cc,Cs)))3.C:Rc=Cred(Ks,Cc)C-SAuthenticate,Rc4.S:assert(Rc==Cred(Ks,Cc))Rs=Cred(Ks,Cs),S-CRsC:assert(Rs==Cred(Ks,Cs))FromNTDomainAuthenticationKerberos认证协议Kerberos是一个经过长期考验的认证协议Kerberos替代NTLM的原因功能委托机制可传递的信任关系效率方面服务器不需要每次都与域控制器联系标准化Kerberos概要认证协议实例分析:HTTP认证协议Web应用的认证机制HTTP本身支持的认证协议SSL协议HTTP/1.1规范BasicAuthenticationDigestAccessAuthentication认证框架基本思想:challenge-response机制,服务器询问客户,客户提供认证信息指明authenticationscheme基本过程当客户请求一个被保护的资源的时候,服务器返回401(Unauthorized)应答消息应答头中包含一个域然后开始认证过程最后,如果服务器不能接受客户的credential,则应该返回一个401消息,继续下一轮的认证说明Proxy在中间必须是透明的认证框架(续)一些消息类型认证方案:auth-scheme=tokenauth-param=token=(token|quoted-string)询问:challenge=auth-scheme1*SP1#auth-param提供范围信息(域)realm=realm=realm-valuerealm-value=quoted-string客户提供认证信息credentials=auth-scheme#auth-paramBasicAuthentication认证的思想:对于每一个域(realm),客户都需要提供一个用户-ID和口令服务器检查用户-ID和口令消息challenge=“Basic”realmcredential=“Basic”basic-credentialsBasicAuthentication(续)过程服务器发出challenge,例如=“xxx(URI)客户收到之后,发送应答basic-credentials=base64-user-passbase64-user-pass=base64[4]encodingofuser-pass,exceptnotlimitedto76char/lineuser-

1 / 60
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功