第7讲传输层安全_第1页
第7讲传输层安全_第2页
第7讲传输层安全_第3页
第7讲传输层安全_第4页
第7讲传输层安全_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

1、第七讲第七讲 传输层安全传输层安全提纲提纲TCP/IP安全方法SSLTLSHTTPSSSHTCP/IPTCP/IP安全方法安全方法TCP/IP协议协议 栈中的安全设施的相对位置栈中的安全设施的相对位置Ipsec的好处是对终端用户和应用是透明的,能提供一种一般性的解决方案SSL或TLS都是可执行协议软件包的一部分,从而对应用是透明的,Netscape进而IE都配置了SSL。大部分Web服务器都实现了该协议。SSL (Secure Socket Layer)SSL(Security Socket Layer 安全套接层) 最初1994年Netscape开发,专门用于保护Web通讯.保护浏览器和服务

2、器之间的通信,在客户和服务器之间提供服务器鉴别、可选客户鉴别和加密通信信道。使用TCP提供一种可靠的端对端的安全服务。版本和历史 1.0,不成熟 2.0,基本上解决了Web通讯的安全问题Microsoft公司发布了PCT(Private Communication Technology),并在IE中支持 3.0,1996年发布,增加了一些算法,修改了一些缺陷 TLS 1.0(Transport Layer Security传输层安全协议, 也被称为SSL 3.1),1997年IETF发布了Draft,同时,Microsoft宣布放弃PCT,与Netscape一起支持TLS 1.0 1999年,

3、发布RFC 2246(The TLS Protocol v1.0)功能 客户端验证服务器 客户段与服务器选择彼此支持的算法 服务器验证客户端(可选) 使用公开密钥算法产生共享的密钥 SSL连接建立VersionSourceDescriptionBrowser SupportSSL v2.0Vendor Standard (from Netscape Corp.) SSL2First SSL protocol for which implementations exist- NS Navigator 1.x/2.x- MS IE 3.x- Lynx/2.8+OpenSSLSSL v3.0Expi

4、red Internet Draft (from Netscape Corp.) SSL3Revisions to prevent specific security attacks, add non-RSA ciphers and support for certificate chains- NS Navigator 2.x/3.x/4.x- MS IE 3.x/4.x- Lynx/2.8+OpenSSLTLS v1.0Proposed Internet Standard (from IETF) TLS1Revision of SSL 3.0 to update the MAC layer

5、 to HMAC, add block padding for block ciphers, message order standardization and more alert messages.- Lynx/2.8+OpenSSLSSL协议的版本协议的版本SSL3.0 增加了对证书链加载的支持。使服务器可以将自己的服务器证书和发行者的证书一起传给浏览器。证书链的加载,使得客户机即使没有安装过服务器的中间证书,也可以来验证服务器证书的有效性,因为服务器的中间证书被放在证书链中一起发送给了客户机。SSL2.0协议只适用RSA密钥交换方式,而SSL3.0不仅支持RSA密钥交换(在使用证书的情

6、况下),还支持Diffie-Hellman密钥交换(在没有使用证书或者没有客户端和服务器之间通信密钥之前的情况下。)7层模型的第4层 (传输层) 实际上在四层的上部: TCP 不需要更改操作系统 TCP 提供了可靠的消息传输SSL协议的位置协议的位置SSL协议可用于保护正常运行于TCP之上的任何应用协议,如HTTP、FTP、SMTP或Telnet的通信,最常见的是用SSL来保护HTTP的通信。协议的使用协议的使用 https:/ 与shttp:/SSL Architecture包括包括SSL记录协议和三个高层协议(握手协议、密钥更改记录协议和三个高层协议(握手协议、密钥更改规格协议、报警协议)

7、规格协议、报警协议)SSL记录协议对各种更高级的协议提供基本的安全服务。记录协议对各种更高级的协议提供基本的安全服务。SSL connection a transient, peer-to-peer, communications link associated with 1 SSL sessionSSL session an association between client & server created by the Handshake Protocol define a set of cryptographic parameters may be shared by multipl

8、e SSL connections 避免每条连接需要进行的代价高昂的新的安全参数协商过程SSL 参数参数会话状态参数会话状态参数会话标识符:由服务器产生用于标识活动的或可恢复的会话状态的一个任意字节序列对等证书:对等的X.509V3证书压缩方法:加密前用于压缩数据的算法密码规格:大块数据加密算法, 计算MAC的散列算法主密钥:48字节的会话密钥可恢复性:能否把会话用于创建新连接的标志比特连接状态参数连接状态参数服务器和客户端随机数:服务器写MAC密钥:服务器发送数据时用于计算MAC的密钥客户端写MAC密钥:客户端发送数据时用于计算MAC的密钥服务器写密钥:服务器用于加密数据、客户端用于解密数据

9、的密钥客户端写密钥:客户端用于加密数据、服务器用于解密数据的密钥初始化向量:当CBC模式中的数据块正在使用时,需要为每个密钥配置一个初始化向量。之后的IV值为前一次分组密码算法的最后一个密文分组序列号SSL Record Protocol ServicesConfidentiality 机密性机密性 using symmetric encryption with a shared secret key defined by Handshake Protocol AES, IDEA, RC2-40, DES-40, DES, 3DES, Fortezza, RC4-40, RC4-128 mes

10、sage is compressed before encryptionmessage integrity 消息完整性消息完整性 using a MAC with shared secret key similar to HMAC but with different paddingSSL记录协议记录协议每个这样的段最大为214-1=16383个字节。从原始数据段到生成SSL明文分段、SSL压缩、SSL密文(加密步骤)SSL记录格式记录格式SSL记录头部包括:记录头部包括:内容类型(内容类型(8位)位)-可以是可以是修改密码协议、报警协议修改密码协议、报警协议、握手协议、应用数据四、握手协议、

11、应用数据四种种主版本号(主版本号(8位)位) 副版本副版本号(号(8位)位)压缩长度(压缩长度(16位)位)-以字以字节为单位的明文分段(压节为单位的明文分段(压缩分段)长度缩分段)长度Content TypeMajor VersionMinor VersionCompressed LengthPlaintext (optionally compressed)MAC (0, 16, or 20 bytes)Encrypted1(a) Change Cipher Spec Protocol1 byte(c) Handshake ProtocolType1 byteLengthContent3 b

12、ytes3 bytes(b) Alert ProtocolLevel1 byteAlert1 byte(d) Other Upper Layer Protocol as TLS PayloadContentUp to 214 + 2048 bytesSSL记录协议负载记录协议负载SSL修改密文协议修改密文协议 协议由单个消息组成,该消息只包含一个值为1的单个字节。该消息的唯一作用就是使未决状态拷贝为当前状态,更新用于当前连接的密码组。 为了保障SSL传输过程的安全性,双方应该每隔一段时间改变加密规范。 SSL告警协议告警协议 为对等实体传递SSL的相关警告。如果在通信过程中某一方发现任何异常,

13、就需要给对方发送一条警示消息通告。 警示消息有两种 Fatal错误,如传递数据过程中,发现错误的MAC,双方就需要立即中断会话,同时消除自己缓冲区相应的会话记录; Warning消息,这种情况,通信双方通常都只是记录日志,而对通信过程不造成任何影响。 (对警告的内容做了相关的约定)SSL握手协议握手协议 1 使得服务器和客户能够相互鉴别对方,协商具体的加密算法和MAC算法以及保密密钥,用来保护在SSL记录中发送的数据 SSL握手协议允许通信实体在交换应用数据之前协商密钥的算法、加密密钥和对客户端进行认证(可选)的协议,为下一步记录协议要使用的密钥信息进行协商,使客户端和服务器建立并保持安全通信

14、的状态信息。SSL握手协议是在任何应用程序数据传输之前使用的。 SSL握手协议包含四个阶段: 建立安全能力; 服务器鉴别和密钥交换; 客户鉴别和密钥交换; 完成握手协议。建立安全能力建立安全能力服务器认证和密钥服务器认证和密钥交换交换客户端认证和密钥交换客户端认证和密钥交换完成完成SSL握手协议细节握手协议细节第一阶段 客户端发起建立连接请求Client_hello消息 Version:客户端SSL的最高版本号 Random:随机序列 32位时间戳+28字节随机数(防重放攻击),用于生成主秘密。 Session ID :会话ID 非零值表示用户希望重用现有会话的参数;零值表示客户端希望建立新的

15、会话ID并协商安全参数 CipherSuite : 密码构件,客户端可以支持的密码算法组合(以优先递减顺序给出) Compression Method : 客户端支持的压缩方法列表 ServerHello信息Version:取客户端支持的最高版本号和服务端支持的最高版本号中的较低者。Random :用于生成主秘密的32字节的随机数。(客户端一个、服务端一个)会话ID: 如果client_hello中的会话ID非零,则差找相应存储的会话参数,反馈用原值,为零则产生一个新的会话ID从客户端的密码套件列表中选择的一个密码套件,若用原会话ID,则直接用相应参数从客户端的压缩方法的列表中选择的压缩方法S

16、SL握手协议细节握手协议细节密码套件列表参数 密钥交换方法(6种:无效(没有密钥交换)、RSA、匿名Diffie-Hellman、Ephemeral Diffie-Hellman、Fixed Diffie-Hellman、Fortezza); 块加密算法(AES, IDEA, RC2-40, DES-40, DES, 3DES, Fortezza, RC4-40, RC4-128) MAC算法(MD5,SHA-1)Fixed Diffie-Hellman 公钥证书中包含固定的Diffie-Hellman公钥参数Ephemeral Diffie-Hellman Diffie-Hellman公钥参

17、数使用发送者的RSA私钥或DSS密钥的方式被交换和签名,可以获得一个临时的被认证的密钥SSL握手协议细节握手协议细节列举JSSE支持的几个套件:SSL_RSA_WITH_RC4_128_MD5 = 0 x0004 /* 非对称加密算法或密钥交换算法为RSA,采用高强度128位对称加密算法RC4,摘要或MAC算法为MD5,不支持出口 */SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA = 0 x0014 /* 非对称加密算法或密钥交换算法支持RSA和DH,采用40位对称加密算法DES,摘要或MAC算法为SHA,可以出口 */ JSSE,即Java(TM) Secure

18、 Socket Extension 。 JSSE是基于安全算法和握手机制之上的合成体。JSSE将危险的安全弱点降到最低点,并且它减轻了开发者的负担,使得开发者可以很轻松的整合到程序中。 SSL(Secure Sockets Layer)是JSSE中的重要的部分。OpenSSL采用C语言作为开发语言,这使得OpenSSL具有优秀的跨平台性能,这对于广大技术人员来说是一件非常美妙的事情,可以在不同的平台使用同样熟悉的东西。OpenSSL支持Linux、Windows、BSD、Mac、VMS等平台,这使得OpenSSL具有广泛的适用性。1998年,OpenSSL项目组接管了OpenSSL的开发工作,

19、并推出了OpenSSL的0.9.1版,到目前为止,OpenSSL的算法已经非常完善,对SSL2.0、SSL3.0以及TLS1.0都支持。SSL握手协议细节握手协议细节第二阶段 服务器认证和密钥交换 证书:服务器将数字证书和到根CA整个链发给客户端,使客户端能用服务器证书中的服务器公钥认证服务器。 服务器密钥交换(可选):这里视密钥交换算法而定 证书请求:服务端可能会要求客户自身进行验证。 服务器握手完成:第二阶段的结束,第三阶段开始的信号SSL握手协议细节握手协议细节如果协商过程中确定使用RSA交换密钥,SSL握手协议细节握手协议细节证书(可选):为了对服务器证明自身,客户要发送一个证书信息,

20、这是可选的,在IIS中可以配置强制客户端证书认证。客户机密钥交换(Pre-master-secret):这里客户端将预备主密钥发送给服务端,注意这里会使用服务端的公钥进行加密。证书验证(可选),对预备秘密和随机数进行签名,证明自己拥有证书的私钥。SSL握手协议细节握手协议细节Client发送消息给服务器确认将来客户端将会用会话密钥,然后客户端发送一个消息(加密的)指示服务器客户端握手部分结束。Server发送消息给客户端确认服务器端将会使用会话秘钥,然后服务端发送一个消息(加密的)指示客户端服务器握手部分结束。SSL握手结束,SSL会话开始。C与S使用会话密钥来加解密相互发送的数据以及验证消息

21、的完整性。Cryptographic Computations master secret creationla one-time 48-byte valuelgenerated using secure key exchange (RSA / Diffie-Hellman) and then hashing info generation of cryptographic parameterslclient write MAC secret, a server write MAC secret, a client write key, a server write key, a client

22、 write IV, and a server write IVl generated by hashing master secret密钥计算过程密钥计算过程SSL协议安全性分析鉴别机制鉴别机制 公开密钥技术和数字证书可以实现客户端和服务器端的身份鉴别。加密机制加密机制混合密码体制的使用提供了会话和数据传输的加密性保护。双方使用非对称密码体制协商出本次将要使用的会话密钥,并选择一种对称加密算法。 完整性机制完整性机制 定义了共享的、可以用来形成报文鉴别码MAC的密钥。数据进行分片压缩后,使用单向散列函数产生一个MAC,加密后置于数据包的后部,并且再一次和数据一起被加密,然后加上SSL首部进行

23、网络传输。 这样,如果数据被修改,其散列值就无法和原来的MAC相匹配,从而保证了数据的完整性。 抗重放攻击抗重放攻击SSL使用序列号来保护通信方免受报文重放攻击。这个序列号被加密后作为数据包的负载。在整个SSL握手中,都有一个唯一的随机数来标记这个SSL握手,这样重放便无机可乘。SSL协议安全性分析SSL脆弱性分析客户端假冒客户端假冒 因为SSL协议设计初衷是对Web站点及网上交易进行安全性保护,使消费者明白正在和谁进行交易要比使商家知道谁正在付费更为重要,为了不致于由于安全协议的使用而导致网络性能大幅下降, SSL协议并不是默认地要求进行客户鉴别,这样做虽然有悖于安全策略,但却促进了SSL的

24、广泛应用。 针对这个问题,可在必要的时候配置SSL协议,使其选择对客户端进行认证鉴别。无法提供基于无法提供基于UDPUDP应用的安全保护应用的安全保护SSL协议需要在握手之前建立TCP连接,因此不能对UDP应用进行保护。如果要兼顾UDP协议层之上的安全保护,可以采用IP层的安全解决方案。SSLSSL协议不能对抗通信流量分析协议不能对抗通信流量分析 由于SSL只对应用数据进行保护,数据包的IP头和TCP头仍然暴露在外,通过检查没有加密的IP源和目的地址以及TCP端口号或者检查通信数据量,一个通信分析者依然可以揭示哪一方在使用什么服务,有时甚至揭露商业或私人关系的秘密。进程中主密钥泄漏进程中主密钥

25、泄漏 除非SSL的工程实现大部分驻留在硬件中,否则主密钥将会存留在主机的主存储器中,这就意味着任何可以读取SSL进程存储空间的攻击者都能读取主密钥,因此,不可能面对掌握机器管理特权的攻击者而保护SSL连接,这个问题要依靠用户管理策略来解决。SSL脆弱性分析磁盘上的临时文件可能遭受攻击磁盘上的临时文件可能遭受攻击对于使用虚拟内存的操作系统,不可避免地有些敏感数据甚至主密钥都交换到存盘上,可采取内存加锁和及时删除磁盘临时文件等措施来降低风险安全盲点安全盲点系统管理员不能使用现有的安全漏洞扫描或网络入侵检测系统来审查或监控网络上的SSL交易。加密技术使得通过网络传输的信息无法让IDS辨认.使得最重要

26、的服务器反而成为受到最少防护的服务器。对此,恶意代码检测、增强的日志功能等基于主机的安全策略会成为最后防线。SSL脆弱性分析SSL的评价的评价 SSL仍然不失为一套全面完善的安全策略中有效的组成元素。 然而,与网络安全的其它工具软件一样,仅使用单一的防护软件都是远远不够的。对SSL的过高评价有可能带来高的安全风险,它仅仅是网络安全工具的一种,必须和其它网络安全工具紧密结合,方能构造出全面、完善、安全可靠的网络。 传输层安全(传输层安全(TLS) RFC5246 非常接近于SSLv3 记录格式与SSL完全相同 不同不同 消息认证码的计算使用了RFC2104定义的HMAC算法;而SSL也使用相同算

27、法,只是填充部分采用了与密钥串接的方式而不是异或方式,安全强度基本相同 定义了更多的报警码 密钥构建细小差别 TLS不支持Fortezza 密钥计算HTTPsHTTP 和SSL结合实现网络浏览器和服务器之间的安全通信 ,RFC2818HTTPS和HTTP的区别 https协议需要到CA申请证书,一般免费证书很少,需要交费。 http信息是明文传输,https 则是具有安全性的SSL加密传输协议。 http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。 http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网

28、络协议,比http协议安全。HTTPs解决的问题解决的问题信任主机的问题信任主机的问题.采用https的服务器必须从CA 申请一个用于证明服务器用途类型的证书。目前所有的银行系统网站,关键部分应用都是https 的。客户通过信任该证书,从而信任了该主机。通讯过程中的数据的泄密和被篡改通讯过程中的数据的泄密和被篡改一般意义上的https,就是服务器有一个证书。保证服务器是他声称的服务器。 服务端和客户端之间的所有通讯,都是加密的。服务端和客户端之间的所有通讯,都是加密的。 客户端产生一对称的密钥,通过服务器的证书来交换密钥所有的信息往来都加密 少许对客户端有要求的情况下,会要求客户端也必须有一个

29、证书少许对客户端有要求的情况下,会要求客户端也必须有一个证书。除了用户名/密码,还有一个CA 认证过的身份。个人银行的专业版是这种做法,具体证书可能是拿U盘(即U盾)作为一个备份的载体。SSH( Secure Shell )protocol for secure network communicationsldesigned to be simple & inexpensiveSSH1 provided secure remote logon facilitylreplace TELNET & other insecure schemeslalso has more general clien

30、t/server capabilitySSH2 fixes a number of security flawsdocumented in RFCs 4250 through 4254SSH clients & servers are widely availablemethod of choice for remote login/ X tunnelsSSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。S S H最初是U N I X系统上的一个程序,后来又迅速扩展到其他操作平台。S S H客户端适用于多种平台。 几

31、乎所有U N I X平台包括H P - U X、L i n u x、A I X、S o l a r i s、Digital UNIX、I r i x,以及其他平台都可运行S S H。SSH( Secure Shell )SSH( Secure Shell )SSH Transport Layer Protocolserver authentication occurs at transport layer, based on server/host key pair(s) server authentication requires clients to know host keys in a

32、dvance (客户端本地数据库保存,服务器公钥或者CA根密钥) packet exchange establish TCP connection can then exchange data identification string exchange(识别字符串交换)这些字符用于Diffie-Hellman密钥交换, algorithm negotiation(算法协商)给出算法清单,包括密钥交换、加密、MAC算法和压缩算法(p136) key exchange(密钥交换), Diffie-Hellman 服务器用私钥签名 end of key exchange, (密钥生成-协商后的密钥

33、做hash运算) service request 请求获得身份认证 using specified packet format(分组长度、填充域长度、压缩的有效载荷、SSH User Authentication Protocol authenticates client to server three message types:l SSH_MSG_USERAUTH_REQUESTl SSH_MSG_USERAUTH_FAILURE l SSH_MSG_USERAUTH_SUCCESS authentication methods usedl public-key, 用户向服务器发送包含用户公共密钥的信息,该信息由用户私钥签名。l password, 信息包含了明文口令,加密l host-based 验证主机而非用户本身,一台支持

温馨提示

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

评论

0/150

提交评论