您好,欢迎访问三七文档
加解密系列交流之四——SSL/TLS协议介绍陈祥OutlineSSL/TLS概述相关技术SSL/TLS协议结构和流程协议应用与面临的安全问题总结SSL/TLS概述SSL(SecureSocketLayer,安全套接层)TSL(TransportLayerSecurity,传输层安全)SSL/TLS发展历程SSL1.01994年?由Netscape公司开发,用于保护web通信由于严重的安全问题,并未公开发布SSL2.01995年由Netscape公司发布存在许多安全问题SSL3.0Netscape和PaulKocher重新设计,于1996年发布广泛实现和应用,被IETF采纳为标准----RFC6101SSL/TLS发展历程TLS1.0(SSL3.1)基于SSL3.0改进而来,但改动不大(notdramatic),1999年由IETF发布---RFC2246TLS1.12006年由IETF发布---RFC4346TLS1.22008年由IETF发布---RFC5246TLS1.3(draft)2015.3,成为草案OutlineSSL/TLS概述相关技术SSL/TLS协议结构和流程协议应用与面临的安全问题总结相关技术公钥密码数字签名数字证书公钥密码对称密码加密密钥和解密密钥相同DES、AES等基于代换和置换公钥密码(非对称密码)密钥分为公钥(PublicKey)和私钥(PrivateKey),分别用于加密和解密公钥密码对称密码加密密钥和解密密钥相同DES、AES等基于代换和置换公钥密码(非对称密码)密钥分为公钥(PublicKey)和私钥(PrivateKey),分别用于加密和解密基于已知的数学难题,在密钥长度适当的情况下,即使已知加密算法,由公钥得到私钥也不可能公钥密码公钥密码主要分类RSA公钥密码体制——基于大整数因式分解的困难性ELGamal公钥密码体制——基于有限域乘法群上离散对数问题的困难性Menezes-Vanstone公钥密码体制——基于椭圆曲线上离散对数问题的困难性可以基于这些公钥密码体制来产生公钥私钥对及对应的加密解密函数对称密码体制的不足信息安全的基本特性可用性机密性完整性真实性非否认性可控性对称密码体制的不足信息安全的基本特性可用性机密性完整性真实性非否认性可控性确保敏感或者机密数据的传输不受到未授权的浏览采用技术:对称加密对称密码体制的不足信息安全的基本特性可用性机密性完整性真实性非否认性可控性能够保证被传输、接收的数据是完整的和未被窜改的,否则能够被发现。采用技术:消息认证码(MAC),如HMAC𝐻𝑀𝐴𝐶𝐾(𝑀)=𝐻[𝐾+⊕𝑜𝑝𝑎𝑑||𝐻[(𝐾+⊕𝑖𝑝𝑎𝑑)||𝑀]]对称密码体制的不足信息安全的基本特性可用性机密性完整性真实性非否认性可控性确保信息来源的真实性采用技术:消息认证码(MAC),如HMAC𝐻𝑀𝐴𝐶𝐾(𝑀)=𝐻[𝐾+⊕𝑜𝑝𝑎𝑑||𝐻[(𝐾+⊕𝑖𝑝𝑎𝑑)||𝑀]]对称密码体制的不足信息安全的基本特性可用性机密性完整性真实性非否认性可控性确保参与通信的一方事后不能否认发送过的消息非对称密钥无法解决这个问题,因为双方知道的信息是对称的对称密码体制的不足密钥建立问题。在进行保密通信前,双方需要通过安全的通道传送密钥。密钥管理问题。在n个用户的网络中互相通信需要n(𝑛−1)/2个密钥。公钥密码的优势密钥建立问题在不安全的通道上建立共享的加密密钥公钥加密速度慢,往往在密码建立阶段采用公钥密码技术,在数据交换阶段采用对称密钥加/解密数据密钥管理问题数字签名公钥密码主要用于以下三个方面通信保密密码建立数字签名数字签名包括签名算法𝑆𝑖𝑔𝑛和验证算法Vers=𝑆𝑖𝑔𝑛𝑘(𝑚),s是使用密钥k对消息m所做的签名,(m,s)是有效的消息签名对,验证Ver(m,s)是否为真。数字签名数字签名非否认性完整性真实性加密函数E解密函数D数字证书如何保证客户得到正确的公钥pk?数字证书将实体(如网站)和公钥绑定由证书签发机构CA,用自己的私钥对证书进行签名,公钥预装到用户系统中证书格式使用者公钥有效期颁发者签名算法…摘要签名[CA私钥]CA的公钥小结公钥密码•通信加密•密码建立•数字签名数字签名•完整性•真实性•非否认性数字证书•对公钥签名OutlineSSL/TLS概述相关技术SSL/TLS协议结构和流程协议应用与面临的安全问题总结SSL/TLS协议结构协议位于传输层和应用层之间,对应用层透明协议分为两层记录协议层:用于压缩、加密、封装上层协议等握手协议层:包括握手协议、更改密钥规范协议和警告协议记录协议层Habcabcabcabcabcdefghiabcdefghi附加SSL记录协议头加密计算MAC压缩分段/组合应用数据采用的压缩算法、MAC算法、加密算法和加密密钥在之前由握手协议确定记录协议层记录格式内容类型主版本次版本压缩长度明文(压缩)MAC(0,16或20字节)加密的握手协议握手协议功能可选的服务器认证可选的客户端认证算法协商,包括压缩算法、密钥协商算法、加密算法和消息验证码算法密钥生成,即生成客户端与服务器共享的会话密钥握手协议流程客户端1.发送ClientHello消息密码套件密码协商算法加密算法MAC算法服务器2.发送ServerHello消息•TLS版本号/1.2•支持的压缩算法/DEFLATE•支持的密码套件/(RSA,AES_128_CBC,SHA256),/(DH_anon,RC4_128,MD5)•随机数/ClientHello.random•TLS版本号/1.2•选择压缩算法/DEFLATE•选择的密码套件/(RSA,AES_128_CBC,SHA256),•随机数/ServerHello.random握手协议流程客户端6.对服务器证书进行验证,然后发送Certificate*消息服务器3.发送Certificate*消息4.发送CertificateRequest*消息5.发送ServerHelloDone消息••公钥pks握手协议流程客户端7.发送ClientKeyExchange*消息服务器•产生随机数pre_master_secret•用服务器公钥加密Epks(pre_master_secret)握手协议流程客户端8.发送[ChangeCipherSpec]消息之后的消息均采用协商好的加密算法和密钥加密9.发送Finished消息12.应用数据服务器10.发送[ChangeCipherSpec]消息11.发送Finished消息应用数据更改密码规范协议更改密码规范协议功能互相通告将启用新的密码规范协调客户端和服务器的状态,使得双方实现同步。警告协议警告协议的功能报告差错,分为警告(warning)级和致命(fatal)级应用数据传输完后,通知对方断开连接OutlineSSL/TLS概述相关技术SSL/TLS协议结构和流程协议应用与面临的安全问题总结SSL/TLS协议应用SSL的常见应用是构建VPN,和IPSec相比具有以下优点:操作透明,而IPSec的部署需要安装复杂的软硬件。用户可选,而IPSec除了管理员,其它人几乎没有选择权利。有大量二次开发软件,而IPSec没有公开的二次开发软件。SSL/TLS协议应用SSL保护高层应用,如HTTP、SMTP等服务器端客户端80端口TCP三次握手建立连接请求请求响应TCP改进的三次握手关闭连接服务器客户端413端口TCP三次握手建立连接TCP改进的三次握手关闭连接服务器客户端请求记录*SSL握手及更改密码规范安全参数协商,身份认证响应记录*HTTP与HTTPS对比(标红部分是不同之处)协议面临的安全问题FREAKattack90年代,美国加密出口法规规定:出口的软件使用RSA公钥时,公钥长度不能超过512位,以便于NSA能够破解,但普通人没有足够的计算资源去破解。BEASTattackCRIMEattackTIMEattackBREACHattackRC4biasesattackHeartbleedattack…都是利用协议漏洞进行攻击的攻击也促进协议不断改进和完善协议面临的安全问题BEASTattackCRIMEattackTIMEattackBREACHattackRC4biasesattackHeartbleedattack…都是利用协议漏洞进行攻击的攻击也促进协议不断改进和完善OutlineSSL/TLS概述相关技术SSL/TLS协议结构和流程协议应用与面临的安全问题总结总结重点内容公钥密码握手协议的流程采用字典破解或者暴力破解TLS协议的加密密钥几乎不可能,更多地是从协议的漏洞出发去寻找突破。
本文标题:SSL-TLS
链接地址:https://www.777doc.com/doc-4139383 .html