网络与信息安全安全基础四ppt课件.ppt

上传人:sccc 文档编号:5441125 上传时间:2023-07-07 格式:PPT 页数:67 大小:1.08MB
返回 下载 相关 举报
网络与信息安全安全基础四ppt课件.ppt_第1页
第1页 / 共67页
网络与信息安全安全基础四ppt课件.ppt_第2页
第2页 / 共67页
网络与信息安全安全基础四ppt课件.ppt_第3页
第3页 / 共67页
网络与信息安全安全基础四ppt课件.ppt_第4页
第4页 / 共67页
网络与信息安全安全基础四ppt课件.ppt_第5页
第5页 / 共67页
点击查看更多>>
资源描述

《网络与信息安全安全基础四ppt课件.ppt》由会员分享,可在线阅读,更多相关《网络与信息安全安全基础四ppt课件.ppt(67页珍藏版)》请在三一办公上搜索。

1、网络与信息安全安全基础(四),潘爱民,北京大学计算机研究所http:/,内容,SSL/TLS协议授权和访问控制安全基础部分小结,SSL/TLS协议,1994年Netscape开发了SSL(Secure Socket Layer)协议,专门用于保护Web通讯版本和历史1.0,不成熟2.0,基本上解决了Web通讯的安全问题Microsoft公司发布了PCT(Private Communication Technology),并在IE中支持3.0,1996年发布,增加了一些算法,修改了一些缺陷TLS 1.0(Transport Layer Security,也被称为SSL 3.1),1997年IET

2、F发布了Draft,同时,Microsoft宣布放弃PCT,与Netscape一起支持TLS 1.01999年,发布RFC 2246(The TLS Protocol v1.0),SSL/TLS协议,协议的设计目标为两个通讯个体之间提供保密性和完整性(身份认证)互操作性、可扩展性、相对效率协议的使用,SSL/TLS概况,协议分为两层底层:TLS记录协议上层:TLS握手协议、TLS密码变化协议、TLS警告协议TLS记录协议建立在可靠的传输协议(如TCP)之上它提供连接安全性,有两个特点保密性,使用了对称加密算法完整性,使用HMAC算法用来封装高层的协议TLS握手协议客户和服务器之间相互认证协商加

3、密算法和密钥它提供连接安全性,有三个特点身份认证,至少对一方实现认证,也可以是双向认证协商得到的共享密钥是安全的,中间人不能够知道协商过程是可靠的,SSL/TLS协议栈,为上层协议提供安全性保密性身份认证和数据完整性,TLS会话,(TLS Session)定义:指客户和服务器之间的一个关联关系。通过TLS握手协议创建session,它确定了一组密码算法的参数。Session可以被多个连接共享,从而可以避免为每个连接协商新的安全参数而带来 昂贵的开销。TLS Session都有一个当前状态TLS connection与底层协议的点对点连接相关联每个connection都与一个session相关联

4、连接是短暂的,TLS会话状态,实际上是一组参数,包括Session identifier,字节序列,由服务器产生,用来标识一个会话状态Peer certificate(可以为NULL),对方的X.509 v3证书Compression method,压缩数据的算法Cipher spec,指定数据加密算法和用于HMAC的散列算法,以及算法的有关参数Master secret,客户和服务器之间共享的48字节的数据Is resumable,标记是否这个会话可以被用来初始化一个新的连接,TLS连接的状态,连接状态也包含一组参数Server and client random,客户和服务器为每个连接选择

5、的字节序列Server write MAC secret,服务器在发送数据的时候,用于MAC运算的keyClient write MAC secret,客户在发送数据的时候,用于MAC运算的keyServer write key,服务器加密数据的密钥,以及客户解密数据的密钥Client write key,客户加密数据的密钥,以及服务器解密数据的密钥Initialization vectors,在CBC模式中用到的IV,最初由握手协议初始化,以后,每一个记录的最后一个密文块被用作下一个记录的IVSequence numbers,每一个连接都需要维护一个序 列号,当密码参数变化时,重置为0,TL

6、S记录协议TLS Record Protocol,操作过程示意图,TLS记录协议中的操作,第一步,fragmentation上层消息的数据被分片成214字节大小的块,或者更小第二步,compression(可选)必须是无损压缩,如果数据增加的话,则增加部分的长度不超过1024字节第三步,计算消息认证码(MAC)计算公式:HMAC_hash(MAC_write_secret,seq_num|TLSCompressed.type|TLSCompressed.version|TLSCompressed.length|TLSCompressed.fragment),TLS记录协议中的操作(续),第四步

7、,encryption采用CBC,算法由cipher spec指定数据长度不超过214+2048字节,包括加密之后的数据内容HMACpadding,共padding_length,每个字节的值也是padding_lengthpadding_lengthIV,初始协商指定,以后,前后记录连接起来说明:如果是流密码算法,则不需要padding,TLS记录协议的处理结果,结果如下:struct ContentType type;8位,上层协议类型 ProtocolVersion version;16位,主次版本 uint16 length;加密后数据的长度,不超过214+2048字节 Encrypt

8、edData fragment;密文数据 TLSCiphertext;,length,TLS密码变化协议Change Cipher Spec Protocol,它位于TLS记录协议之上所以,它用到了TLS记录协议的处理过程ContentType=20协议只包含一条消息,一个字节 1用途:切换状态把密码参数设置为当前状态在握手协议中,当安全参数协商一致后,发送此消息这条消息使得接收方改变当前状态读参数,使得发送方改变当前状态写参数,TLS警告协议Alert Protocol,位于TLS记录协议之上所以,也用到了TLS记录协议的处理过程ContentType=21协议数据包含两个字节第一个字节为l

9、evel:分别为warning(1)和fatal(2)两种情况第二个字节为情况说明Fatal类型的alert消息导致连接立即终止,此时,对应该会话的其他连接可以继续,但是会话标识符无效,以免利用此失败的连接来建立新的连接,Alert Protocol第二字节说明,close_notify(0),unexpected_message(10),bad_record_mac(20),*decryption_failed(21),*record_overflow(22),*decompression_failure(30),*handshake_failure(40),*bad_certificate

10、(42),unsupported_certificate(43),certificate_revoked(44),certificate_expired(45),certificate_unknown(46),illegal_parameter(47),*unknown_ca(48),*,access_denied(49),decode_error(50),*decrypt_error(51),export_restriction(60),*protocol_version(70),*insufficient_security(71),*internal_error(80),*user_can

11、celed(90),#no_renegotiation(100),#,说明:1*表示该消息往往是fatal级别2#表示该消息往往是warning级别3 对于其他的错误情况,发送方可以根据情况决定是warning还是fatal,对于warning消息,接收方可以自行决定如何处理,如果是fatal消息,则一定要当作fatal消息来对待,TLS握手协议TLS Handshake Protocol,位于TLS记录协议之上也用到了TLS记录协议的处理过程ContentType=22协议格式用途:当TLS客户和服务器开始通讯的时候,它们要通过协商,在以下信息方面获得一致:协议版本、密码算法、是否认证对方、

12、用什么技术来产生共享秘密数据,等等,TLS握手协议的流程,交换Hello消息,对于算法、交换随机值等协商一致交换必要的密码参数,以便双方得到统一的premaster secret交换证书和相应的密 码信息,以便进行身份认证产生master secret把安全参数提供给TLS记录层检验双方是否已经获得同样的安全参数,TLS握手协议使用的消息,第一阶段:建立起安全能力属性,客户发送一个client_hello消息,包括以下参数:版本、随机数(32位时间戳+28字节随机序列)、会话ID、客户支持的密码算法列表(CipherSuite)、客户支持的压缩方法列表然后,客户等待服务器的server_hel

13、lo消息服务器发送server_hello消息,参数:客户建议的低版本以及服务器支持的最高版本、服务器产生的随机数、会话ID、服务器从客户建议的密码算法中挑出一套、服务器从客户建议的压缩方法中挑出一个,关于会话ID(Session ID),客户方客户指定的会话ID如果不等于0,则表示它希望基于这个会话来更新已有连接的安全参数,或者创建一个新的连接如果会话ID等于0,则表示客户希望在一个新的会话上建立一个新的连接服务器或者同意客户指定的会话ID,需要检查cache中的会话状态或者返回一个新的会话ID,CipherSuite,第一个元素指定了密钥交换的方法,TLS支持以下一些方法:RSA,要求服务

14、器提供一个RSA证书DH(Diffie-Hellman),要求服务器的证书中包含了由CA签名的DH公开参数。客户或者在证书中提供DH公开参数,或者在密钥 交换消息中提供此参数EDH(Ephemeral Diffie-Hellman),产生临时的密钥,DH公开参数由发送者的私钥进行签名,接收者用对应的公钥进行验证匿名的DH,不加认证。会受到中间人攻击然后,指定以下信息加密算法,和类型(流还是分组密码算法)HMAC算法,MD5还是SHA-1是否可出口HashSizeKey MaterialIV Size,第二阶段:服务器认证和密钥交换,服务器发送自己的证书,消息包含一个X.509证书,或者一条证书

15、链除了匿名DH之外的密钥交换方法都需要服务器发送server_key_exchange消息可选的,有些情况下可以不需要。只有当服务器的证书没有包含必需的数据的时候才发送此消息消息包含签名,被签名的内容包括两个随机数以及服务器参数服务器发送certificate_request消息非匿名server可以向客户请求一个证书包含证书类型和CAs服务器发送server_hello_done,然后等待应答,第三阶段:客户认证和密钥交换,客户收到server_done消息后,它根据需要检查服务器提供 的证书,并判断server_hello的参数是否可以接受,如果都没有问题的话,发送一个或多个消息给服务器如

16、果服务器请求证书的话,则客户首先发送一个certificate消息,若客户没有证书,则发送一个no_certificate警告然后客户发送client_key_exchange消息,消息的内容取决于密钥交换的类型最后,客户发送一个certificate_verify消息,其中包含一个签名,对从第一条消息以来的所有握手消息的HMAC值(用master_secret)进行签名,第四阶段:结束,第四阶段建立起一个安全的连接客户发送一个change_cipher_spec消息,并且把协商得到的CipherSuite拷贝到当前连接的状态之中然后,客户用新的算法、密钥参数发送一个finished消息,这条

17、消息可以检查密钥交换和认证过程是否已经成功。其中包括一个校验值,对所有以来的消息进行校验。服务器同样发送change_cipher_spec消息和finished消息。握手过程完成,客户和服务器可以交换应用层数据。,密钥交换算法,TLS记录协议需要:CipherSuite,master secret,and the client and server random values在hello消息中,交换随机数以及各种算法对于各种密钥交换算法,从pre_master_secret计算得到master_secret,然后从内存中删除,公式:master_secret=PRF(pre_master_s

18、ecret,“master secret”,ClientHello.random+ServerHello.random)0.47*PRF(secret,label,seed)为伪随机函数Master_secret总是48字节长,而pre_master_secret长度不定,取决于密钥交换算法两类密钥交换算法:RSA,客户产生一个48字节的pre_master_secret,然后通过服务器的公钥传递给服务器Diffie-Hellman,双方协商得到的密钥被用作pre_master_secret,重用一个TLS会话,客户和服务器在交换hello消息中,客户要求重用已有的TLS会话,服务器同意使用c

19、ache中的会话*session id跳过第二第三阶段,直接把TLS会话中的参数传递给TLS记录层,伪随机函数PRF(secret,label,seed),P_hash(secret,seed)=+HMAC_hash(secret,A(1)+seed)+HMAC_hash(secret,A(2)+seed)+HMAC_hash(secret,A(3)+seed)+.这里A()定义如下:A(0)=seed A(i)=HMAC_hash(secret,A(i-1)伪随机函数 PRF(secret,label,seed)=P_MD5(S1,label+seed)XOR P_SHA-1(S2,labe

20、l+seed);这里,S1和S2为secret的各一半,如果secret为奇数个字节,则S1和S2共享一个字节,TLS/SSL安全性分析,针对一些常见的攻击手法针对密钥算法的破解取决于算法的强度,协商过程利用明文模式的攻击上层协议中常常有一些固定的模式可以参考,比如http协议中get字节串构造字典(密文-密钥对),查字典TLS办法:用长密钥,使得不可能构造这样的字典重放攻击TLS中的nonce有32字节(包含时间戳),可用于避免重放攻击会话ID标识了一个完整的会话,要重放部分会话需要知道私钥中间人攻击通过证书来认证对方对于双方都是匿名的模式,中间人攻击也是成立的,历史上针对SSL/TLS的攻

21、击,PRNGMillion-message attack其它,SSL:PRNG攻击,Netscape v1.1版本中存在,利用随机数发生器的弱点先看随机数发生器,global variable seed;RNG_CreateContext()(seconds,microseconds)=time of day;/*Time elapsed since 1970*/pid=process ID;ppid=parent process ID;a=mklcpr(microseconds);b=mklcpr(pid+seconds+(ppid 1);(待续),SSL:PRNG攻击(续),种子关联:pi

22、d,ppid,seconds,microsecondsSeconds往往可以获得,microseconds未知如果在目标机器上有账号,则pid和ppid可以获得否则,可以寻找pid和ppid的。对于大多数UNIX平台,pid+(ppid 12)只有27位,global variable challenge,secret_key;RNG_GenerateRandomBytes()x=MD5(seed);seed=seed+1;return x;create_key()RNG_CreateContext();tmp=RNG_GenerateRandomBytes();tmp=RNG_Generat

23、eRandomBytes();challenge=RNG_GenerateRandomBytes();secret_key=RNG_GenerateRandomBytes();,PRNG的启示,PRNG并不是SSL协议本身的缺陷,而是实现上导致的缺陷随机数对于安全协议或者安全系统的重要性源码开放的另一层含义关键的代码接受公众的审视,Reference:Ian Goldberg and David Wagner,“Randomness and the Netscape Browser”,January 1996 Dr.Dobbs Journal,SSL:Million-message attac

24、k,在RSA算法作加密运算的时候,首先对明文消息进行编码,其格式为,假设密文C,攻击者可以产生一系列整数S并计算C=C*(Se)mod n,在解密的时候,每一个C对应于一个M。大多数的M不会满足上面的格式,但是有2-16的概率会产生这样的结果(因为前两个字节是确定的)。攻击者可以找到一系列满足条件的S,然后推断出密文C对应的明文M。这个过程大约需要220个消息和应答。攻击实施依赖于需要一个可以提供解密准确性判断的服务器称为oracleSSL实现是否能够精确地告知明文格式不正确?只能得到一个消息的明文,无法得到私钥,MMA的启示,实现SSL的时候对待错误消息如何响应?Contiune?会不会招致

25、DOS?返回精确的错误充分利用明文模式随机数填充,References1 RFC 32182 Bleichenbacher D.,Chosen Ciphertext Attacks against Protocols Based on RSA Encryption Standard PKCS#1 in Advances in Cryptology-CRYPTO98,LNCS vol.1462,pages:1-12,1998.,针对SSL的其他攻击,Export ciphers and distributed cracking 举例:40位RC4,http:/attacks 往SSL的低版本退化

26、密码算法的退化,SSL实现,OpenSSL,最新0.9.6c,实现了SSL(2,3),TLS(1.0)Openssl a command line tool.ssl(3)the OpenSSL SSL/TLS library.crypto(3)the OpenSSL Crypto library.URL:http:/www.openssl.orgSSLeayhttp:/www2.psy.uq.edu.au/ftp/Crypto/Microsoft Win2k SSL implementation,Microsoft IE中SSL/TLS的一个漏洞,IE处理内嵌在HTTP页面中的HTTPS对象存

27、在一个漏洞它只检查HTTPS服务器的证书是否由可信的CA签名的,而完全忽略该证书是否有适当的名字,以及是否已经过期。对于当前这个页面而言,其实并不危险问题在于IE会把这个证书缓存起来,并标记为可信任的,一直到浏览器的会话结束这意味着,假如说,IE客户在访问一个HTTP页面时,如果该页面被插入一个包含指向有问题的SSL server的HTTPS对象(比如说一个image)的话,IE不会警告遇到一个非法的证书,只要这个证书确实是被可信CA签名的,IE中SSL/TLS的漏洞的情形,假如说中间人在服务器返回的页面上加上一句话HTTPS部分显示的是一个被偷来的或者过期的的证书,这个证书是有效签名的,但是

28、IE并不检查证书中的名字和过期情况如果客户通过HTTPS连接到yoursite网站上,IE将认为这是可信的站点,而不再进一步检查参考:ttp:/,Win2k中的SSL,与Kerberos的关系Kerberos是服务器认证客户的身份SSL的通常用法是客户认证服务器的身份如果客户提供证书,则可以建立双向认证服务器认证客户往往用“用户名+口令”方式如何与授权过程结合起来,授权(Authorization)和访问控制,访问控制定义资源的所有者或者控制者准许其他人访问这种资源,防止未授权的访问对于进入系统的控制机制几种安全需求(安全服务)信息安全的基本定义包括保密性、完整性、可用性系统安全保密性、身份认

29、证、访问控制访问控制模型:Reference Monitor解释了主体和客体之间实施访问控制的机制,基本模型:Reference Monitor,ReferenceMonitor,主体,客体,控制规则库,访问控制策略,在系统安全策略层次上定义授权,直接通过系统组件实施控制最终的结果可以表示成一个访问矩阵实际应用中较少使用,访问控制策略(续),两种类型自主式策略(DAC,discretionary access controls)为特定的用户提供访问信息。这种授权关系可能会在运行过程中发生变化,例如,一个主体可以把授权关系传递给另一个主体。访问信息的决定权在于信息的创建者强制式策略(MAC,ma

30、ndatory access controls)对一个安全区域的强制式策略被最终的权威机构采用和执行,它基于能自动实施的规则。将主体和客体分为不同的级别所有对信息的控制权都由系统管理员来决定基于角色的访问控制策略(RBAC,Role Based Access Control),基于身份的策略:基于个人的策略,对于一个目标(客体),用户(主体)是否具有读、写、修改、管理等等的权限结果等价于访问矩阵的一行(中的一格)基础(前提):一个隐含的、或者显式的缺省策略例如,全部权限否决,在此基础上定义个人的策略最小特权原则:要求一个最大限度地限制每个用户为实施授权任务所需要的许可集合在不同的环境下,缺省策

31、略不尽相同,例如,在公开的布告板环境中,所有用户都可以得到所有公开的信息对于特定的用户,有时候需要提供显式的否定许可例如,对于违纪的内部员工,禁止访问内部一些信息,基于身份的策略:基于组的策略,一组用户对于一个目标具有同样的访问许可。是基于身份的策略的另一种情形相当于,把访问矩阵中同一列中多个格压缩为一格实际使用时先定义组的成员对用户组授权同一个组可以被重复使用组的成员可以改变,基于规则的访问控制,属于强制式策略多级策略给每个目标分配一个密级密级形成一个层次每个用户被分配一个相应的级,反映了该用户的最基础的可信赖度两种访问控制关系:下读/上写 保密性上读/下写 完整性这种模型常用于政府机密部门

32、基于间隔的策略时间粒度上的控制,基于身份的控制&基于规则的控制,基于身份的控制配置的粒度小配置的工作量大,效率低基于规则的控制配置的粒度大缺乏灵活性,基于角色的策略,与现代的商业环境相结合的产物同时具有基于身份策略的特征,也具有基于规则的策略的特征可以看作是基于组的策略的变种。根据用户所属的角色作出授权决定角色的定义:每个角色与一组用户和有关的动作相互关联,角色中所属的用户可以有权执行这些操作角色与组的区别组:一组用户的集合角色:一组用户的集合+一组操作权限的集合,RBAC的优势,增加一层间接性带来了灵活性便于管理员赋予最小权限便于职责分担便于目标分级低的管理代价,举例:COM+中基于角色的控

33、制,其他的访问控制,与目标的内容相关的访问控制动态访问控制多用户访问控制当多个用户同时提出请求时,如何做出授权决定基于上下文的控制在做出对一个目标的授权决定时依赖于外界的因素,比如时间、用户的位置等,目标的粒度和策略的结合,在设计一个安全系统时,授权粒度代表了控制的粒度和能力比如,有的数据库只能控制对一张表的整体访问或者禁止,而有的可以对一个字段进行控制多种策略的结合如何协调这些策略规定策略的优先级否定策略的优先级,访问控制机制:访问控制表(ACL,Access Control List),访问控制列表对应于访问控制矩阵中的一列内容基于身份的访问控制策略和基于角色的访问控制策略都可以用ACL来

34、实现优点:控制粒度比较小适用于被区分的用户数比较小的情况,并且这些用户的授权情况相对比较稳定的情形,其他访问控制机制,访问能力表授权机构针对每个限制区域,都为用户维护它的访问控制能力与ACL相比较:在每个受限制的区域,都维护一个ACL表安全标签发起请求的时候,附属一个安全标签,在目标的属性中,也有一个相应的安全标签。在做出授权决定时,目标环境根据这两个标签决定是允许还是拒绝访问常常用于多级访问策略基于口令的机制,一般化的访问控制机制,对于一个reference monitor访问控制模型,可以设想在发起方(主体)有一些附属的安全属性信息,在目标方(客体)也有一个附属的安全属性信息授权机构根据这

35、些信息做出授权决定,ReferenceMonitor,主体,客体,控制规则库,安全属性,安全属性,Windows平台上有关访问控制的几个概念,SID是一个可变长度的结构,用来唯一地描述一个用户或者组可以转化为字符串形式SD包含了与一个安全对象有关的安全信息Security identifiers(SIDs)for the owner and primary group of an objectDACL(discretionary access-control list)SACL(system access-control list)以及一组控制标记数据结构ACL、ACEAccess token

36、此对象描述了一个进程或者线程的安全环境包括SID,以及用户所属的组的SIDs,logon SID,Windows NT/2000的安全策略,安全基础部分小结密码学基础,对称加密算法DESFeistel结构分组密码算法的应用模式AES:Rijndael随机数发生器公钥密码学公钥算法:RSADiffie-Helman密钥交换协议散列算法MAC算法和HMAC算法数字签名,安全基础部分小结认证协议,基本的认证协议LanMan的认证和口令加密方案NTLM的认证过程HTTP认证Basic AuthenticationDigest Access Authentication,安全基础部分小结Kerberos

37、认证协议,Kerberos认证协议Kerberos中的FlagsMIT和Win2k中的Kerberos实现,安全基础部分小结IPSec,IPSec包括协议部分,分为AH:Authentication HeaderESP:Encapsulating Security Payload密钥管理(Key Management)ISAKMP定义了密钥管理框架IKE是真正用于IPSec的密钥交换协议IPSec的实现(在Windows 2000下),安全基础部分小结PKI,PKI的动机PKI中的证书X.509证书的格式信任模型CA层次结构交叉认证以用户为中心的信任模型PKCS标准证书申请和发放的过程,安全基

38、础部分小结SSL/TLS,协议栈握手过程安全分析攻击,安全基础部分小结访问控制,访问控制策略基于身份的策略基于规则的策略基于角色的策略几种实现访问控制的机制,其他几种安全协议,其他安全协议S/MIMESETSSHHTTPS介绍见“第一次作业”,参考资料,书William Stallings,Cryptography and network security:principles and practice,Second Edition冯登国,计算机通信网络安全,清华大学出版社,2001David Chappell,Understanding Microsoft Windows 2000 Dist

39、ributed Services,中文版(清华大学出版社,潘爱民译),2001文章Ian Goldberg and David Wagner,“Randomness and the Netscape Browser”,January 1996 Dr.Dobbs JournalBleichenbacher D.,Chosen Ciphertext Attacks against Protocols Based on RSA Encryption Standard PKCS#1 in Advances in Cryptology-CRYPTO98,LNCS vol.1462,pages:1-12,1998.Web站点“SSL v3 spec”,http:/http:/www.openssl.org,

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

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号