SecCourse-04安全基础.ppt

上传人:小飞机 文档编号:6524261 上传时间:2023-11-09 格式:PPT 页数:60 大小:779KB
返回 下载 相关 举报
SecCourse-04安全基础.ppt_第1页
第1页 / 共60页
SecCourse-04安全基础.ppt_第2页
第2页 / 共60页
SecCourse-04安全基础.ppt_第3页
第3页 / 共60页
SecCourse-04安全基础.ppt_第4页
第4页 / 共60页
SecCourse-04安全基础.ppt_第5页
第5页 / 共60页
点击查看更多>>
资源描述

《SecCourse-04安全基础.ppt》由会员分享,可在线阅读,更多相关《SecCourse-04安全基础.ppt(60页珍藏版)》请在三一办公上搜索。

1、网络与信息安全安全基础(一),潘爱民,北京大学计算机研究所http:/,内容,关于认证协议Windows平台的认证协议HTTP认证协议与身份认证相关的研究工作介绍,安全层次,安全的密码算法,安全协议,网络安全,系统安全,应用安全,回顾:信息安全的需求,保密性Confidentiality完整性Integrity系统完整性数据完整性可用性Availability真实性 authenticity认证消息认证身份认证:验证真实身份和所声称身份相符的过程,认证协议,基于对称密码算法的认证方案是否需要密钥分发中心(KDC)?对于协议的攻击手法认证的对象消息发送方消息本身基于公钥密码算法的认证方案公钥和身

2、份的绑定,基于对称密码算法的认证,消息认证MAC码或者HMAC码前提:存在共享密钥密钥管理中心或者用一个密钥交换协议身份认证依据所知:口令、密钥,等所有:身份证、智能卡,等物理标识:指纹、笔迹、DNA,等基于口令证明是否知道口令口令的强度双向和单向认证目的:分发密钥、签名有效性,,通讯方式,两方通讯一方发起通讯,另一方应答双向和单向认证有第三方介入的认证第三方为可信任方,KDC在线和离线其他情形多方认证跨域认证委托认证模型、信任模型,为什么需要认证协议,本地多用户认证Login:如何管理口令远程用户认证一次性访问资源或者服务之前进行认证多次访问资源或者服务身份,获得credential利用cr

3、edential访问资源或者服务,认证例子:263的邮件登录,认证例子:sina的邮件登录,Client与Proxy-Server之间的认证,Client与Proxy-Server之间认证(续),基于口令的认证+明文传输!,Telnet远程登录逐个字母发送,明文方式POP3邮件登录Ftp服务,认证协议:设计一个协议(一),假设A和B要进行通讯,A和B有一个共享的密钥Kab,如何利用这个密钥进行认证,并且商定一个会话密钥Ks,1 AB:(IDA|N1)2 BA:EKabKs,IDB,f(N1),N2)3 AB:EKsf(N2)这里的f函数为某个确定的运算,比如f(x)=x+1,Kab,我是A,告

4、诉你Ks,以后就用它,别让别人知道,好的,我用它试试,可我怎么知道你是B呢,如果你知道Kab,那么你就知道Ks,我就知道你是A,认证协议:设计一个协议(二),假设A和B要进行通讯,A和B与KDC各有一个共享密钥Ka和Kb,如何利用这两个密钥进行认证,并且商定一个会话密钥Ks,AKDC:(IDA|IDB|N1)KDCA:EKaKs|IDB|N1|EKb(Ks,IDA)AB:EKb(Ks,IDA)|EKs(M),Kb,我是A,我想和B通讯,Ka,我把必要的信息告诉你,我把消息给你,如果你是B,你就可以解开,会话密钥Ks,由A送给B的认证信息,针对认证协议的一些常见攻击手段和相应对策,中间人攻击(M

5、ITM,man in the middle),如果通讯双方没有任何先决条件,那么这种攻击总是存在的A和B的协商过程很容易受到这一类攻击对策:增加A和B之间的先决知识,常见攻击和对策(二),重放攻击(replay attacks),偷听者可以记录下当前的通讯流量,以后在适当的时候重发给通讯的某一方,达到欺骗的目的对策:nonce保证通讯的唯一性增加时间戳,常见攻击和对策(三),字典攻击只要能够获得口令的密文形式,就可以实施字典攻击在线和离线字典攻击的有效性判断一个口令是有效的对策用户和管理员:选择好的口令协议设计:对口令的使用过程中,不要泄露口令的信息在密文中增加口令以外的额外信息,常见攻击和对

6、策(四),已知明文攻击在许多认证协议中,一方会选择一个随机数,并且明文传输这个随机数,另一方加密这个随机数,并送回来Challenge/Response,所以偷听者可以获得已知明文/密文对对策:避免传输明文/密文对增加已知明文攻击的难度选择明文攻击在认证协议中,如果随机数的选择没有任何规则,那么中间人或者假冒方就有可能选择随机数,从而实施选择明文攻击对策随机数的选择限制,认证协议中的常用技术(一),时间戳A收到一个消息,根据消息中的时间戳信息,判断消息的有效性如果消息的时间戳与A所知道的当前时间足够接近这种方法要求不同参与者之间的时钟需要同步在网络环境中,特别是在分布式网络环境中,时钟同步并不

7、容易做到一旦时钟同步失败要么协议不能正常服务,影响可用性(availability),造成拒绝服务(DOS)要么放大时钟窗口,造成攻击的机会时间窗大小的选择应根据消息的时效性来确定,认证协议中的常见技术(二),询问/应答方式(Challenge/Response)A期望从B获得一个条件首先发给B一个随机值(challenge)B收到这个值之后,对它作某种变换,得到response,并送回去A收到这个response,可以验证B符合这个条件在有的协议中,这个challenge也称为nonce可能明文传输,也可能密文传输这个条件可以是知道某个口令,也可能是其他的事情变换例子:用密钥加密,说明B知道

8、这个密钥;简单运算,比如增一,说明B知道这个随机值常用于交互式的认证协议中,分析一个协议:Kehn92,1 A BIDA|Na2 B KDC IDB|Nb|EKbIDA|Na|Tb3 KDC A EKaIDB|Na|Ks|Tb|EKbIDA|Ks|Tb|Nb4 A B EKbIDA|Ks|Tb|EKs Nb,4,2,3,1,关于Kehn92协议,EKbIDA|Ks|Tb相当于一个ticket如果A要再次访问B,可以不再通过KDCA B:EKbIDA|Ks|Tb|NaB检查ticket是否在有效时间,若是,则B A:Nb|EKsNaA B:EKsNb,2,1,3,Windows采用的认证方案,L

9、anManager认证(称为LM协议)早期版本NTLM v1 认证协议NT 4.0 SP3之前的版本NTLM v2 认证协议NT 4.0 SP4开始支持Kerberos v5认证协议Windows 2000引进,LanMan认证方案,可以用于共享级认证Windows 9x/NT都支持由IBM开发,LanMan的口令加密方案,从口令hash值口令变成大写把口令变成14个字符,或者截断、或者补空字符这14个字符分成两个7字符用7个字符和DES算法加密一个“magic”64位把两个64位结果拼起来,得到128位值服务器保存该128位值,作为“hashed password”缺陷如果口令长度在8-13

10、位之间,则后面的7字符先破解,对前7个字符的破解可以提供某些信息建议:使用7位或者14位口令,NT的口令加密方案,从口令变成hash值把口令变成Unicode编码使用MD4散列算法得到128位散列值一种更好的方法是在口令上添加一些附加的信息,这样可以增加破解的难度Hash之前增加附加信息UNIX的crypt使用了附加信息黑客工具L0phtcrack下载:使用注意事项,NT口令破解的一个测试结果,在一台高端PC机(4个CPU)上强行破解5.5小时内破解字母-数字口令45小时破解字母-数字-部分符号口令480小时破解字母-数字-全部符号口令,插:UNIX中crypt口令加密方案,crypt()是一

11、个口令加密函数,它基于DES算法。我们可以认为这是一个单向加密操作函数原型:char*crypt(const char*key,const char*salt);*salt是两个字符,每个字符可从a-zA-Z0-9./中选出来算法UNIX标准算法使用DES加密算法,用key对一个常量进行加密,获得一个13字节的密文编码输出,其中包括salt的两个字符from Red Hat Linux 6.2Salt的作用同样的口令产生不同的密文增加了穷举空间?建议使用更为安全的MD5算法,NTLM认证过程(from MSDN),用户在客户机上,提供域名、用户名和口令。系统计算口令的hash值,然后把口令丢掉

12、客户把用户名以明文方式发送给服务器服务器产生一个128位随机数(challenge或者nonce),发送给客户客户用口令的hash值作为密钥,加密随机数,并把结果送回给服务器。这是应答(response)服务器把以下信息送给域控制器(DC):用户名、challenge和response域控制器利用用户名从SAM(Security Account Manager)数据库得到用户口令的hash值,并用此值加密challenge域控制器比较它自己算出来的challenge密文和客户算出来的challenge密文。如果相等的话,认证成功,NT Workstation认证协议,C-S ReqChal,C

13、c S-C Cs C、S计算会话密钥 Ks=E(PW9.15,E(PW0.6,Add(Cc,Cs)C:Rc=Cred(Ks,Cc)C-S Authenticate,RcS:assert(Rc=Cred(Ks,Cc)Rs=Cred(Ks,Cs),S-C Rs C:assert(Rs=Cred(Ks,Cs)From NT Domain Authentication,Kerberos认证协议,Kerberos是一个经过长期考验的认证协议Kerberos替代NTLM的原因功能委托机制可传递的信任关系效率方面服务器不需要每次都与域控制器联系标准化,Kerberos概要,认证协议实例分析:HTTP认证协议

14、,Web应用的认证机制HTTP本身支持的认证协议SSL协议HTTP/1.1规范Basic AuthenticationDigest Access Authentication,认证框架,基本思想:challenge-response机制,服务器询问客户,客户提供认证信息指明authentication scheme基本过程当客户请求一个被保护的资源的时候,服务器返回401(Unauthorized)应答消息应答头中包含一个WWW-Authenticate域然后开始认证过程最后,如果服务器不能接受客户的credential,则应该返回一个401消息,继续下一轮的认证说明Proxy在中间必须是透明

15、的,认证框架(续),一些消息类型认证方案:auth-scheme=token auth-param=token=(token|quoted-string)询问:challenge=auth-scheme 1*SP 1#auth-param提供范围信息(域)realm=realm=realm-value realm-value=quoted-string 客户提供认证信息 credentials=auth-scheme#auth-param,Basic Authentication,认证的思想:对于每一个域(realm),客户都需要提供一个用户-ID和口令服务器检查用户-ID和口令消息chall

16、enge=“Basic”realmcredential=“Basic”basic-credentials,Basic Authentication(续),过程服务器发出challenge,例如WWW-Authenticate:Basic realm=“xxx(URI)客户收到之后,发送应答basic-credentials=base64-user-passbase64-user-pass=user-pass=userid:passworduserid=*password=*TEXT例如,如果用户id为aladdin,口令为“open sesame”,则消息如下Authorization:Bas

17、ic QWxhZGRpbjpvcGVuIHNlc2FtZQ=,插:Base-64和Radix-64编码,特点:转换到字符集,而不是字符集的编码目标字符集包括65个可打印字符,其中一个用于padding,其他的可用6位表达不包括控制字符,所以不怕传输过程中被滤掉没有使用“-”字符,避免与RFC 822冲突转换:3个8位=24位4个6位,每个6位转换到一个字符,最终得到4个字符,如果用ASC码来表达,则为4个字节,编码表,二进制数据的Base-64编码,数据尾部的编码处理,编码时,按24位进行处理,到最后可能出现三种情况:最后一组正好是24位,则无需特殊处理最后一组是16位,则前两个6位组按正常情

18、形处理,剩下的4位补上两位0,当作一组编码,然后再补上一个=最后一组是8位,则第一个6位组正常处理,剩下2位补上4位0,当作一组编码,然后,再补上两个=作为输出。,Digest Access Authentication,仍然基于一个简单的challenge-response结构但是它用一个nonce值作为challenge应答是一个hash值(缺省MD5算法),包括用户名、口令、nonce值、HTTP方法、以及被请求的URI好处口令不在网上传输,Digest Access Authentication,Hash值的编码HEX编码每四位变成对应的16进制字符口令的初始分发没有规定,服务器的WW

19、W-Authenticate 应答,challenge=Digest digest-challenge digest-challenge=1#(realm|domain|nonce|opaque|stale|algorithm|qop-options|auth-param)domain=domain=URI(1*SP URI)URI=absoluteURI|abs_path nonce=nonce=nonce-value nonce-value=quoted-string opaque=opaque=quoted-string stale=stale=(true|false)algorithm

20、=algorithm=(MD5|MD5-sess|token)qop-options=qop=1#qop-value qop-value=auth|auth-int|token,客户的WWW-Authorization请求头,credentials=Digest digest-response digest-response=1#(username|realm|nonce|digest-uri|response|algorithm|cnonce|opaque|message-qop|nonce-count|auth-param)username=username=username-value

21、username-value=quoted-string digest-uri=uri=digest-uri-value digest-uri-value=request-uri;As specified by HTTP/1.1 message-qop=qop=qop-value cnonce=cnonce=cnonce-value cnonce-value=nonce-value nonce-count=nc=nc-value nc-value=8LHEX response=response=request-digest request-digest=32LHEX LHEX=0|1|2|3|

22、4|5|6|7|8|9|a|b|c|d|e|f,服务器的Authentication-Info头,AuthenticationInfo=Authentication-Info:auth-info auth-info=1#(nextnonce|message-qop|response-auth|cnonce|nonce-count)nextnonce=nextnonce=nonce-value response-auth=rspauth=response-digest response-digest=*LHEX,可用于双向认证,Digest Access Authentication例子,客户请

23、求一个文档,没有包含Authorization头,则服务器响应 HTTP/1.1 401 Unauthorized WWW-Authenticate:Digest realm=,qop=auth,auth-int,nonce=dcd98b7102dd2f0e8b11d0f600bfb0c093,opaque=5ccc069c403ebaf9f0171e9517f40e41然后客户提示用户输入用户名和口令,并生成一个新的请求,其中包含Authorization头 Authorization:Digest username=Mufasa,realm=,nonce=dcd98b7102dd2f0e8

24、b11d0f600bfb0c093,uri=/dir/index.html,qop=auth,nc=00000001,cnonce=0a4f113b,response=6629fae49393a05397450978507c4ef1,opaque=5ccc069c403ebaf9f0171e9517f40e41,两种方案的安全性,Basic Authentication,最严重的问题口令不加密传输如果允许用户选择口令,则会波及到其他的系统碰到假冒的服务器Digest Authentication安全性不如基于公钥的机制总比没有好安全性强于Basic authentication不提供保密性一定

25、程度的完整性,Digest Authentication的攻击,重放攻击重放攻击是否有意义因为digest中包含了URI的信息只对当前文档有效利用ip地址、时间信息、nonce、etag信息等可以减弱重放攻击的危害性中间人攻击(MITM)协商方案的时候,中间人降低客户端的认证中间人提供一个免费的proxy,从而获得口令中间人欺骗客户去访问它想要的资源,Digest Authentication的攻击(续),选择明文攻击中间人或者恶意服务器可以选择nonce,以便客户计算responseMD5增加了攻击的难度客户可以使用cnonce服务器一端的安全性口令文件必须妥善保管与response计算策略

26、结合起来思想类似于UNIX的口令文件,HTTP中的NTLM认证协议示例,请求资源,HTTP中NTLM认证协议示例(续),challenge,与身份认证相关的研究工作介绍,Microsoft PassportRecursive Authentication ProtocolNested signaturesData Integrity in an Active Content SystemXML中的认证,Hailstorm:Passport,中心化的认证服务对于所有的成员站点,只需一个登录和配置管理服务,A protected resource,1,Client,3,Passport(Logon

27、 Service),4,1 HTTP GET request without Passport ticket2 return 302 and redirect to the Passport logon service3 HTTP GET request to the logon service4 present client a logon form5 fill out the form,POST back to server(using SSL)6 authenticate client,and redirect back to the original URI with ticket7

28、client request the resource with ticket8 the originating server authenticates client,5,2,6,7,8,Recursive Authentication Protocol,Nested signatures,Workflow systemsSignature on some fields of paperCA hierarchical trees,Data Integrity in an Active Content System,gx+ry mod q,Standards:XML中加入数字签名的例子,MC0CFFrVLtRlk=.,参考资料,书William Stallings,Cryptography and network security:principles and practice,Second Edition“Hackers Beware”,中文版黑客(攻击透析与防范)文章NT Domain Authentication,http:/2616,2617,http:/www.ietf.org/rfc.html,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号