通信协议分析-7-安全协议之配置与实现缺陷_第1页
通信协议分析-7-安全协议之配置与实现缺陷_第2页
通信协议分析-7-安全协议之配置与实现缺陷_第3页
通信协议分析-7-安全协议之配置与实现缺陷_第4页
通信协议分析-7-安全协议之配置与实现缺陷_第5页
已阅读5页,还剩100页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

第七章协议配置与实现层安全2017年春季学期主要内容7.1协议架构7.2配置层安全7.3实现层安全7.4协议安全性分析方法7.5SSL/TLS的前世今生7.6问题与未来之路7.7课程总结chaofeng@7.1协议架构一个协议的完整应用包含三个层次:1、协议规范2、协议配置3、协议实现7.1协议架构1、协议规范定义协议的逻辑描述:协议方、时序关系、消息格式、密码算法的使用方法等双方、三方认证协议、密钥交换协议对称加密算法、非对称加密算法、散列算法等7.1协议架构1、协议规范密码算法包含多种类别:对称加密算法、公钥加密算法、散列算法、数字签名算法—密码学原语每种类别还包含多个算法:对称加密算法(DES、3DES、AES…)、非对称加密算法(RSA、椭圆曲线…)、散列算法(MD5、SHA-1…)、数字签名算法(DSA…)7.1协议架构1、协议规范只关心到密码原语级别,不关心密码算法具体的使用问题将密码算法当黑盒对待—是不可破解的使研究人员尽可能将精力集中在协议的逻辑安全性上7.1协议架构2、协议配置关注关心密码算法是如何使用的算法选择--使用3DES还是AES还是IDEA?密钥多长—密钥越长越好,但多长为好?密码算法的使用模式—ECB?CBC?OFB?密码算法如何与别的算法结合使用—与异或算法如何结合使用、与CRC32算法如何结合使用?7.1协议架构3、协议实现关注协议的软件/硬件实现形式采用什么编程语言—C/C++/.NET/Java/Python?如何定义各种数据结构?…7.1协议架构4、案例SSL/TLS协议规范&配置层RFC2246(TLS1.0)、RFC5246(TLS1.3)机密性:DES、3DES、IDEA、RC2、RC4完整性:MD5、SHA-17.1协议架构4、案例SSL/TLS协议规范&配置层ApplicationlayerprotocolSSLhandshakeprotocolSSLChangecipherspecprotocolSSLAlertprotocolSSLrecordprotocolTCPIP7.1协议架构4、案例SSL/TLS协议实现层OpenSSL--非常流行的开源SSL/TLS实现JSSE--Java实现的,支持SSL3.0,TLS1.0/1.1/1.2BouncyCastle—密码学库,Android主要使用GnuTLS—C语言实现,Unix中广泛使用NSS—最初由网景公司开发,FireFox和Chrome使用7.1协议架构4、案例SSL/TLS协议实现层7.2配置层安全配置层主要关心选择何种密码算法、密码算法的使用模式以及密码算法与其他算法结合使用的问题。设计人员需要深入分析同种密码原语中不同密码算法的特点,根据需求选择合适的密码算法,设计合适的用法分析人员需针对使用的密码算法,采用不同的分析方法,分析协议的安全性。7.2配置层安全7.2.1密码原语的安全级别对称加密算法非对称加密算法消息完整性算法数字签名算法7.2配置层安全7.2.1密码原语的安全级别对称加密算法—安全性包含两个部分ENC(m,k)、DEC(c,k)DEC(ENC(m,k),k)==m7.2配置层安全7.2.1密码原语的安全级别对称加密算法—安全性什么样的对称加密算法才叫安全?有明确定义吗?7.2配置层安全7.2.1密码原语的安全级别对称加密算法—安全性ENCDECk攻击者queryqueryoutput7.2配置层安全7.2.1密码原语的安全级别对称加密算法—安全性几种攻击模型:选择明文攻击(CPA):攻击者能够自由的选择明文,获取这些明文对应的密文选择密文攻击(CCA):攻击者能够自由的选择密文,获取这些密文对应的明文7.2配置层安全7.2.1密码原语的安全级别对称加密算法—安全性对称密码算法的几种安全属性不可区分性(IND)密文不会向任何计算能力为多项式有界的敌手泄漏有关相应明文的任何有用信息7.2配置层安全7.2.1密码原语的安全级别对称加密算法—安全性对称密码算法的几种安全属性明文完整性(INT-PTXT)攻击者不能产生一个有效的密文,其解密产生的明文从未被加密过。7.2配置层安全7.2.1密码原语的安全级别对称加密算法—安全性对称密码算法的几种安全属性密文完整性(INT-CTXT)攻击者不能产生一个发送者未发送过的有效密文—不论这密文对应的明文是否是新的7.2配置层安全7.2.1密码原语的安全级别对称加密算法使用模式问题7.2配置层安全7.2.1密码原语的安全级别对称加密算法使用模式问题7.2配置层安全7.2.1密码原语的安全级别对称加密算法使用模式问题7.2配置层安全7.2.1密码原语的安全级别对称加密算法使用模式问题7.2配置层安全7.2.1密码原语的安全级别对称加密算法使用模式问题7.2配置层安全7.2.1密码原语的安全级别对称加密算法使用模式问题7.2配置层安全7.2.1密码原语的安全级别对称加密算法使用模式问题7.2配置层安全7.2.1密码原语的安全级别对称加密算法使用模式问题7.2配置层安全7.2.1密码原语的安全级别对称加密算法使用模式问题7.2配置层安全7.2.1密码原语的安全级别对称加密算法使用模式问题7.2配置层安全7.2.1密码原语的安全级别消息认证码包含两部分:MAC(m,k)、VER(m,mac,k)VER(m,MAC(m,k),k)==TRUE7.2配置层安全7.2.1密码原语的安全级别消息认证码安全定义:Let’splayagame7.2配置层安全7.2.1密码原语的安全级别消息认证码安全定义:Let’splayagameMACVERk攻击者queryqueryoutput7.2配置层安全7.2.1密码原语的安全级别消息认证码不可伪造性(UF-CMA)强不可伪造性(SUF-CMA)7.3实现层安全Q:协议没有逻辑问题了,密码算法使用了安全了,还会有缺陷吗?A:NO!协议的实现形式—软件或硬件也会带来问题,叠加产生新的问题7.4协议安全性分析方法7.4.1安全验证方法假设密码算法完善安全性只有拥有密钥,才能进行对于的密码操作考虑攻击者对通信网络的控制能力截获、修改、重发、发送消息使用已有密钥对消息加解密

对协议协议的控制能力作为内部人,攻击其他实体符号方法7.4协议安全性分析方法7.4.1安全验证方法7.4协议安全性分析方法7.4.1安全验证方法自动验证工具Proverif、Athena、AVISPA优点:自动化强缺点:假设条件强,结论不一定可靠符号方法RSA加密:C=MemodnC1=M1emodnC2=M2emodnC1*C2=(M1*M2)emodn7.4协议安全性分析方法7.4.1安全验证方法密码算法并不完善可以存在不同的安全级别任意多项式时间计算能力对消息进行任意变形、猜解密钥等计算方法7.4协议安全性分析方法7.4.1安全验证方法7.4协议安全性分析方法7.4.2存在的问题要想对大型协议自动验证,用符号方法要想得到可靠的结论,用计算方法

理想很丰满,现实很骨感!7.4协议安全性分析方法7.4.2存在的问题7.5SSL/TLS的前世今生REF:

[1] H.Krawczyk,K.G.Paterson,andH.Wee,“OnthesecurityoftheTLSprotocol:Asystematicanalysis,”inAdvancesinCryptology–CRYPTO2013,Springer,2013,pp.429–448.

[2].Gossip

on

SSL

Security7.5SSL/TLS的前世今生7.5.1SSL/TLS简介SSL全称是SecureSocketsLayer,安全套接字层,它是由网景公司(Netscape)设计的主要用于Web的安全传输协议,目的是为网络通信提供机密性、认证性及数据完整性保障。如今,SSL已经成为互联网保密通信的工业标准。SSL最初的几个版本(SSL1.0、SSL2.0、SSL3.0)由网景公司设计和维护,从3.1版本开始,SSL协议由因特网工程任务小组(IETF)正式接管,并更名为TLS(TransportLayerSecurity),发展至今已有TLS1.0、TLS1.1、TLS1.2这几个版本。7.5SSL/TLS的前世今生7.5.1SSL/TLS简介

7.5SSL/TLS的前世今生7.5.1SSL/TLS简介如TLS名字所说,SSL/TLS协议仅保障传输层安全。同时,由于协议自身特性(数字证书机制),SSL/TLS不能被用于保护多跳(multi-hop)端到端通信,而只能保护点到点通信。SSL/TLS协议能够提供的安全目标主要包括如下几个:认证性——借助数字证书认证服务器端和客户端身份,防止身份伪造机密性——借助加密防止第三方窃听完整性——借助消息认证码(MAC)保障数据完整性,防止消息篡改重放保护——通过使用隐式序列号防止重放攻击7.5SSL/TLS的前世今生7.5.1SSL/TLS简介SSL/TLS协议有一个高度模块化的架构,分为很多子协议:Handshake协议:包括协商安全参数和密码套件、服务器身份认证(客户端身份认证可选)、密钥交换;ChangeCipherSpec协议:一条消息表明握手协议已经完成;Alert协议:对握手协议中一些异常的错误提醒,分为fatal和warning两个级别,fatal类型的错误会直接中断SSL链接,而warning级别的错误SSL链接仍可继续,只是会给出错误警告;Record协议:包括对消息的分段、压缩、消息认证和完整性保护、加密等。7.5SSL/TLS的前世今生7.5.2协议流程一个典型的TLS1.0协议交互流程如下图所示:每一个SSL/TLS链接都是从握手开始的,握手过程包含一个消息序列,用以协商安全参数、密码套件,进行身份认证以及密钥交换。握手过程中的消息必须严格按照预先定义的顺序发生,否则就会带来潜在的安全威胁。7.5SSL/TLS的前世今生7.5.2协议流程1)握手过程中的消息序列ClientHello:ClientHello通常是握手过程中的第一条消息,用于告知服务器客户端所支持的密码套件种类、最高SSL/TLS协议版本以及压缩算法。ClientHello中还包含一个随机数,这个随机数由4个字节的当前GMTUNIX时间以及28个随机选择的字节组成,共32字节。该随机数会在密钥生成过程中被使用。另外,ClientHello中还可能包含客户端支持的TLS扩展。(TLS扩展可以被用来丰富TLS协议的功能或者增强协议的安全性)7.5SSL/TLS的前世今生7.5.2协议流程1)握手过程中的消息序列ServerHello:服务器接受到ClientHello后,会返回ServerHello。服务器从客户端在ClientHello中提供的密码套件、SSL/TLS版本、压缩算法列表里选择它所支持的项,并把它的选择包含在ServerHello中告知客户端。接下来SSL协议的建立就基于服务器选择的密码套件类型、SSL/TLS协议版本以及压缩算法。ServerHello中同样会包含一个随机数,同样4+28字节类型,由服务器生成7.5SSL/TLS的前世今生7.5.2协议流程1)握手过程中的消息序列Certificate:客户端和服务器都可以发送证书消息来证明自己的身份,但是通常客户端证书不被使用。服务器一般在ServerHello后会接一条Certificate消息,Certificate消息中会包含一条证书链,从服务器证书开始,到Certificateauthority(CA)或者最新的自签名证书结束。7.5SSL/TLS的前世今生7.5.2协议流程1)握手过程中的消息序列下图描述了一个典型的证书链:7.5SSL/TLS的前世今生7.5.2协议流程1)握手过程中的消息序列SSL中使用的证书通常是X.509类型证书,X.509证书的内容如下:在用的X.509证书包含Version1和Version3两种版本,其中v1版本的证书存在安全隐患,同时不支持TLS扩展,被逐渐弃用。现在大多数在用的SSL证书都是V3版本。7.5SSL/TLS的前世今生7.5.2协议流程1)握手过程中的消息序列同时证书会附带与协商好的密钥交换算法对应的密钥。密钥交换算法以及它们所要求的密钥类型如下表所示。7.5SSL/TLS的前世今生7.5.2协议流程1)握手过程中的消息序列ServerKeyExchange:该消息仅当以下密钥交换算法被使用时由服务器发出:RSA_EXPORT(仅当服务器的公钥大于512bit时)、DHE_DSS、DHE_DSS_EXPORT、DHE_RSA、DHE_RSA_EXPORT、DH_anon使用其它密钥交换算法时,服务器不能发送此消息。ServerkeyExchange消息会携带这些密钥交换算法所需要的额外参数,以在后续步骤中协商PreMasterSecret。这些参数需要被签过名。7.5SSL/TLS的前世今生7.5.2协议流程1)握手过程中的消息序列CertificateRequest:这个消息通常在要求认证客户端身份时才会有。消息中包含了证书类型以及可接受的CA列表。ServerHelloDone:服务器发送这条消息表明服务器部分的密钥交换信息已经发送完了,等待客户端的消息以继续接下来的步骤。这条消息只用作提醒,不包含数据域。7.5SSL/TLS的前世今生7.5.2协议流程1)握手过程中的消息序列ClientKeyExchange:这条消息包含的数据与所选用的密钥交换算法有关。如果选择的密钥交换算法是RSA,那么消息包含的参数为用服务器RSA公钥(包含在之前证书中的或者是ServerKeyExchange中的)加密过的PreMasterSecret,它有48个字节,前2个字节表示客户端支持的最高协议版本,后46个字节是随机选择的。如果选择的密钥交换算法是DH或者DHE,则可能有两种情况:隐式DH公开值:包含在Certificate消息里;显示DH公开值:公开值是本消息的一部分。7.5SSL/TLS的前世今生7.5.2协议流程1)握手过程中的消息序列CertificateVerify:这条消息用来证明客户端拥有之前提交的客户端证书的私钥。7.5SSL/TLS的前世今生7.5.2协议流程1)握手过程中的消息序列Finished:表明握手阶段结束。这是第一条用协商的算法和密钥保护的消息。因为是用协商好的密钥加密的消息,它可以用来确认已经协商好的密钥。同时Finished消息包含一个verify_data域,可以用来校验之前发送和接收的信息。Verify_data域是一个PRF函数的输出(pseudo-randomfunction)。这个伪随机函数的输入为:(1)两个hash值:一个SHA-1,一个MD5,对之前握手过程中交换的所有消息做哈希;(2)theMasterSecret,由预备主密钥生成;(3)finished_label,如果客户端发送的则是”clientfinished”,服务器发送的则是”serverfinished”。此外,Finished消息不能够在ChangeCipherSpec前发送。7.5SSL/TLS的前世今生7.5.2协议流程2)密钥产生为了保证信息的完整性和机密性,SSL需要有六个加密秘密:四个密钥和两个IV。为了信息的可信性,客户端需要一个散列密钥(HMAC),加密要有一个密钥,分组加密要一个IV,服务端也是如此。

SSL需要的密钥是单向的,不同于那些在其他方向的密钥。如果在一个方向上有攻击,这种攻击在其他方向是没影响的。7.5SSL/TLS的前世今生7.5.2协议流程2)密钥产生7.5SSL/TLS的前世今生7.5.2协议流程2)密钥产生7.5SSL/TLS的前世今生7.5.2协议流程2)密钥产生7.5SSL/TLS的前世今生7.5.2协议流程3)Record协议7.5SSL/TLS的前世今生7.5.2协议流程3)Record协议7.5SSL/TLS的前世今生7.5.3SSL/TLS协议演变与安全分析史7.5SSL/TLS的前世今生7.5.3SSL/TLS协议演变与安全分析史安全派漏洞派我的安全性经过了手工证明你有漏洞!我的证明过程有可靠性保证你有漏洞!我的安全性还经过计算自动证明你有漏洞!能不说有漏洞么?你的证明假设有问题!……到底谁的错?7.5SSL/TLS的前世今生7.5.3SSL/TLS缺陷分析-Beast攻击-2011基于浏览器的SSL/TLS攻击(BrowserExploitAgainstSSL/TLS)7.5SSL/TLS的前世今生7.5.3SSL/TLS缺陷分析-Beast攻击-2011基于浏览器的SSL/TLS攻击(BrowserExploitAgainstSSL/TLS)

7.5SSL/TLS的前世今生7.5.3SSL/TLS缺陷分析-Beast攻击-2011基于浏览器的SSL/TLS攻击(BrowserExploitAgainstSSL/TLS)7.5SSL/TLS的前世今生7.5.3SSL/TLS缺陷分析-Beast攻击-2011基于浏览器的SSL/TLS攻击(BrowserExploitAgainstSSL/TLS)7.5SSL/TLS的前世今生7.5.3SSL/TLS缺陷分析-Beast攻击-2011基于浏览器的SSL/TLS攻击(BrowserExploitAgainstSSL/TLS)、1.恶意插件强迫Alice的浏览器访问/AAAA7.5SSL/TLS的前世今生7.5.3SSL/TLS缺陷分析-Beast攻击-2011基于浏览器的SSL/TLS攻击(BrowserExploitAgainstSSL/TLS)、2.Mallory捕获到C1,C2,C3,…Cn,并且知道P3=P/1.1<CR><LF><X>7.5SSL/TLS的前世今生7.5.3SSL/TLS缺陷分析-Beast攻击-2011基于浏览器的SSL/TLS攻击(BrowserExploitAgainstSSL/TLS)、3.假设IV是Mallory捕获的最后一个密文(第二步之后IV=Cn),计算Pi=IV⊕C2⊕Pguess,其中Pguess=P/1.1<CR><LF><W[i]>,并将Pi添加至REQUESTBODY的后面,Alice的浏览器将计算Ci=Ek(IV⊕Pi),并将Ci发送至服务器7.5SSL/TLS的前世今生7.5.3SSL/TLS缺陷分析-Beast攻击-2011基于浏览器的SSL/TLS攻击(BrowserExploitAgainstSSL/TLS)、4.Mallory捕获到Ci,如果Ci=C3,X=W[i],否则将i递增,返回步骤3Ci=Ek(IV⊕Pi)=Ek(IV⊕IV⊕C2⊕Pguess)

=Ek(C2⊕P/1.1<CR><LF><W[i]>)C3=Ek(C2⊕P/1.1<CR><LF><X>)7.5SSL/TLS的前世今生7.5.3SSL/TLS缺陷分析-Beast攻击-2011基于浏览器的SSL/TLS攻击(BrowserExploitAgainstSSL/TLS)、攻击者自适应选择CBC模式下IV的值,对明文值进行猜解7.5SSL/TLS的前世今生7.5.3SSL/TLS缺陷分析-Crime攻击-2012HTTPS压缩信息泄露(CompressionRatioInfo-leakMadeEasy)7.5SSL/TLS的前世今生7.5.3SSL/TLS缺陷分析-Crime攻击-2012HTTPS压缩信息泄露(CompressionRatioInfo-leakMadeEasy)7.5SSL/TLS的前世今生7.5.3SSL/TLS缺陷分析-Crime攻击-2012HTTPS压缩信息泄露(CompressionRatioInfo-leakMadeEasy)7.5SSL/TLS的前世今生7.5.3SSL/TLS缺陷分析-Crime攻击-2012HTTPS压缩信息泄露(CompressionRatioInfo-leakMadeEasy)加密算法本该保密的东西,被压缩算法泄露7.5SSL/TLS的前世今生7.5.3SSL/TLS缺陷分析-Crime攻击-2012HTTPS压缩信息泄露(CompressionRatioInfo-leakMadeEasy)不怕神一般的对手,就怕猪一样的队友7.5SSL/TLS的前世今生7.5.3SSL/TLS缺陷分析-Lucky13攻击-2013TLS协议验证加密填充算法边信道信息泄露漏洞7.5SSL/TLS的前世今生7.5.3SSL/TLS缺陷分析-Lucky13攻击-2013TLS协议验证加密填充算法边信道信息泄露漏洞7.5SSL/TLS的前世今生7.5.3SSL/TLS缺陷分析-Lucky13攻击-2013TLS协议验证加密填充算法边信道信息泄露漏洞7.5SSL/TLS的前世今生7.5.3SSL/TLS缺陷分析-Lucky13攻击-2013TLS协议验证加密填充算法边信道信息泄露漏洞7.5SSL/TLS的前世今生7.5.3SSL/TLS缺陷分析-Lucky13攻击-2013TLS协议验证加密填充算法边信道信息泄露漏洞7.5SSL/TLS的前世今生7.5.3SSL/TLS缺陷分析-Lucky13攻击-2013TLS协议验证加密填充算法边信

温馨提示

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

评论

0/150

提交评论