第16章传输层安全ppt课件.ppt

上传人:牧羊曲112 文档编号:2132977 上传时间:2023-01-15 格式:PPT 页数:34 大小:396KB
返回 下载 相关 举报
第16章传输层安全ppt课件.ppt_第1页
第1页 / 共34页
第16章传输层安全ppt课件.ppt_第2页
第2页 / 共34页
第16章传输层安全ppt课件.ppt_第3页
第3页 / 共34页
第16章传输层安全ppt课件.ppt_第4页
第4页 / 共34页
第16章传输层安全ppt课件.ppt_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《第16章传输层安全ppt课件.ppt》由会员分享,可在线阅读,更多相关《第16章传输层安全ppt课件.ppt(34页珍藏版)》请在三一办公上搜索。

1、第16章 传输层安全,安全套接层(SSL)在TCP与使用TCP的应用程序之间提供安全服务。互联网标准版本被称为传输层安全协议(TLS)。SSL/TLS使用对称加密提供保密性,使用消息认证码提供消息完整性。SSL/TLS机制使得两个TCP用户可以决定他们将使用的安全服务。安全电子交易(SET)是用来保护互联网上信用卡交易安全的,一个开放的加密和安全规范。,16.1Web安全性思考16.1.1 Web安全性威胁,16.1.2 Web流量安全性方法,现在已有许多提供Web安全性的方法。这些方法的使用机理是相似的,只是各自的应用范围及在TCP协议栈中的相对位置不同。,提供Web安全性的一种方法是使用I

2、P安全性如图(a),使用IPSec的优点在于,它对终端用户和应用均是透明的,并且提供通用的解决方案。另一种解决方案是在TCP之上实现安全性如图(b),这种方法最先的例子是安全套接层SSL,接着是称为传输层安全协议TLS的互联网标准。特定安全服务在特定应用中得以体现。图(c)是一个示意图。这种方法的好处在于它是为给定应用定制的。在Web安全性方面一个典型的例子是安全电子交易(SET)。,16.2安全套接层(SSL)和传输层的安全,SSL源于Netscape公司。传输层安全协议TLS是IETF标准的初衷,其目的是编写SSL的互联网标准。当前TLS的草案RFC 2246与SSLv3非常相似。,16.

3、2.1 SSL体系结构,SSL被设计成使用TCP来提供可靠的端到端安全服务。SSL不是简单的单个协议,而是两层协议。如图17.2所示。,SSL中包含两个重要概念:SSL会话和SSL连接。连接:连接是提供合适服务类型的一种传输。对SSL来说,连接表示的是对等网络关系,且连接是短暂的,每个连接与一个会话相关。会话:SSL会话是一个客户端和服务器间的关联,会话是通过握手协议创建的,定义了一组多个连接共享的密码安全参数。会话可用于减少为每次连接建立安全参数的昂贵协商费用。,一个会话状态由以下参数定义:会话标识:服务器用于标识活动或恢复的会话状态所选的一个随机字节序列。同位体证书:同位体的X509.v3

4、证书,此状态元素可以为空。压缩方法:在加密前使用的压缩数据的算法。密码规范:描述主要数据加密算法和计算MAC的散列算法,同时也定义如散列大小等加密属性。主密码:客户和服务器间48字节的共享密码。可恢复性:表明会话是否可被用于初始化新连接的标志。,连接状态可用以下参数定义:服务器和客户端随机数:服务器和客户端为每个连接选择字节序列。服务器写MAC密钥:服务器发送数据时在MAC操作中使用的密码。客户端写MAC密钥:客户端发送数据时在MAC操作中使用的密码。服务器写密钥:服务器加密和客户端解密数据时使用的传统加密密钥。客户端写密钥:客户端加密和服务器解密数据时使用的传统加密密钥。初始化向量:使用CB

5、C时,需要为每个密钥维护一个初始化向量(IV)。序列号:会话的各方为每个连接传送和接收消息维护一个单独的序列号。当接收或发送一个修改密码规范协议报文时,序列号被设为0。序列号不能超过264-1,16.2.2 SSL记录协议,SSL记录协议为SSL连接提供两种服务:保密性和消息完整性,计算其消息认证代码(MAC)。为此,需要使用共享密钥。其计算方式如下:hash(MAC_write_secret|pad_2|hash(MAC_write_secret|pad_1|seq_num|SSLCompressed.type|SSLCompressed.length|SSLCompressed.fragm

6、ent)其中:|连接MAC_write_secret 共享密钥Hash hash算法MD5或SHA-1pad_1 字节0 x36(00110110),对MD5重复48次(384位),对SHA-1重复40次(320位)pad_2 字节0 x5C(01011100),对MD5重复48次;对SHA-1重复40次seq_num 此消息的序列号SSLCompressed.type 处理此分段的上层协议SSLCompressed.length 压缩后的分段长度SSLCompressed.fragment 压缩后的分段(如果没有压缩,则为明文段),SSL记录协议的最后一步是加上一个由如下域组成的SSL头:内

7、容类型(8位):封装段使用的高层协议。主版本(8位):表明SSL使用的主版本,如SSLv3的值为3.从版本(8位):表明SSL使用的从版本,如SSLv3的值为0.压缩长度(16位):明文段(如果使用了压缩,则为压缩段)的字节长度,最大值为214+2048.,16.2.3修改密码规范协议,该协议由一个仅包含一个字节的、值为1的消息组成,此消息使得挂起状态被拷贝到当前状态中,用于更新此连接使用的密码组。,16.2.4警报协议,警报协议用于向对等实体传递SSL相关的警报。两个字节组成,第一个字节,值1表示警告,值2表示致命错误来传递消息出错的严重程度。通常导致致命错误的警报列举如下:意外消息:接收到

8、不正确的消息。MAC记录出错:接收到不正确的MAC。解压失败:解压函数接收到不正确的输入(如不能解压或解压长度大于允许值的长度)。握手失败:发送者无法在给定选项中协商出一个可以接受的安全参数集。非法参数:握手消息中的某个域超出范围或与其他域不一致。,结束通知:通知接收者,发送者将不再用此连接发送任何消息。无证书:如果无适当的证书可用,用可能作为证书请求的响应来发送。证书出错:接收的证书被破坏不支持的证书:不支持接收的证书类型 证书撤销:证书被其签名者撤销。证书过期:证收超过使用期限。未知证书:在处理证书时,出现其他错误,使得证书不被接受。,16.2.5握手协议,此协议允许客户端和服务器端相互认

9、证、协商加密和MAC算法,保护数据使用的密钥通过SSL记录传送。握手协议在传递应用数据之前使用。握手协议由客户端和服务器间交换的一系列消息组成,这些消息的格式如图17.5(c)所示。每个消息由三个域组成:类型(1字节):表明10种消息中的一种,下表列举了所定义的消息类型。长度(3字节):消息的字节长度。内容(1字节):与消息相关的参数。,阶段1:建立安全能力此阶段用于建立初始的逻辑连接,并建立与之相连的安全能力。客户端发起这个交换,发送具有如下参数的client_hello消息。版本:客户端所支持的最高SSL版本。随机数:客户端生成的随机数结构,由32位时间戳和一个安全随机数生成器生成的28字

10、节随机数组成。这些值作为nonce,在密钥交换时防止重放攻击。会话标识:一个变长的会话标识。非0值意味着客户端想更新已存在连接的参数,或为此会话创建一个新的连接;0值意味着客户端想在新会话上创建一个新连接。密钥组:按优先级降序排列的、客户端支持的密码算法列表。表的每个元素定义了一个密钥交换算法和一个密码说明。压缩方法:一个客户端支持的压缩方法列表。,客户端发出消息client_hello后,会等待包含与消息client_hello参数相同的server_hello消息的到来。对server_hello消息而言,应用了如下惯例:版本域中包含的是客户端支持的最低版本号和服务器支持的最高版本号。随机

11、数域是由服务器生成的,与客户端的随机数域相互独立。如果客户端会话标识非0,则服务器使用与之相同的值,否则,服务器的会话标识域包含新对话的值。密码组域包含着服务器从客户端所给的密码组中选出的密码组。压缩域包含的是服务器从客户端所给的压缩方法中选出的压缩方法。,密码组参数的第一个元素是密钥交换方法。支持下述密钥交换方法:RSA:用接收者的RSA公钥加密密钥,必须拥有接收者公钥的公钥证书。固定Diffie-Hellman:Diffie-Hellman密钥交换,其中包含认证中心签发的Diffie-Hellman公钥参数的服务器证书,也就是说,公钥证书包含Diffie-Hellman公钥参数(即在公钥证

12、书中包含p、g、和y,其中ygx mod p)。客户端在证书中提供它的Diffie-Hellman公钥参数,或需要进行客户端认证时,在密钥交换消息中提供证书。,瞬时Diffie-Hellman:此技术用于创建瞬时(临时、一次性)的密钥。在这种情况下,Diffie-Hellman公钥在交换时使用发送者的RSA或DSS私钥签名。接收者使用相应的公钥验证签名。由于它使用的是临时的认证密钥,因此在三种Diffie-Hellman选项中最安全。(注:接收者也需要发送者的公钥证书,不过在公钥证书中只是包含验证签名的公钥。)匿名Diffie-Hellman:使用基本的Diffie-Hellman算法,没有认

13、证。即在向对方发送其Diffie-Hellman公钥参数时,不进行认证。这种方法容易受到中间人攻击,攻击者可以使用匿名Diffie-Hellman与双方进行通话。Fortzza:为Fortezza模式定义的技术。,密钥交换方法定义之后的是CipherSpec,其中包含以下域:对称加密算法:RC4、RC2、DES、3DES、DES40、IDEA、Fortezza。MAC算法:MD5或SHA-1密码类型:流或分组。可出口:真或假。散列长度:0,16(MD5)字节或20(SHA-1)字节。密钥材料:字节序列,包含生成写密钥所使用的数据。IV大小:密码分组链接(CBC)加密使用的初始矢量的大小。,阶段

14、2 服务器认证和密钥交换如果需要进行认证,则服务器开始发送其证书;消息包含一个或一组X.509证书。除匿名Diffie-Hellman方法外,其他密钥交换方法均需要证书消息。如果需要,可以发送服务器密钥交换消息。,签名中用到的散列函数定义如下:hash(ClientHello.random|ServerHello.random|ServerParams)散列不仅包含Diffie-Hellman或RSA参数,还包含初始hello消息中的两个nonce,可以防止重放攻击和伪装。对DSS签名而言,散列函数使用SHA-1算法;对RSA签名而言,将要计算MD5和SHA-1,再将两个散列结果串接(36字节

15、)后,用服务器私钥加密。,接下来,一个非匿名服务器(服务器不使用匿名Diffie-Hellman)需要向客户端申请证书。证书请求消息包含两个参数:证书类型和认证中心。证书类型表明了公钥算法和它的用途:RSA,仅用于签名DSS,仅用于签名。固定Diffie-Hellman的RSA;此时,发送RSA签名证书,其签名仅用于认证。固定Diffie-Hellman的DSS;仅用于认证。瞬时Diffie-Hellman的RSA。瞬时Diffie-Hellman的DSS。Fortezza。证书请求消息中的第二个参数是一个可接受的认证中心名字表。第二阶段的最后一个消息是服务器完成消息,它通常是需要的。,阶段3

16、 客户端认证和密钥交换在接收到服务器完成消息之后,如果请求了证书,客户端需要验证服务器是否提供了合法证书,并且检查server_hello参数是否可接受。如果所有的条件均满足,则客户端向服务器发回一个或多个消息。如果服务器请求了证书,则在此阶段客户端开始发送一条证书消息。如果未提供合适的证书,则客户端将发送一个“无证书警报”。,接下来是此阶段必须要发送的客户端密钥交换消息。消息的内容依赖于密钥交换的类型:RSA:客户端生成48字节的次密钥,并使用服务器证书中的公钥或服务器密钥交换消息中的临时RSA密钥加密。它用于生成稍后介绍的主密钥计算。瞬时或匿名Diffie-Hellman:发送客户端的Di

17、ffie-Hellman公钥参数。固定Diffie-Hellman:由于客户端发出的证书消息中包括Diffie-Hellman公钥参数,因此,此消息内容为空。Fortezza:发送客户端的Fortezza参数。,阶段4 完成此阶段完成安全连接的设置。握手完成后,客户端和服务器即可开始交换应用层数据。,16.2.6密码计算,1.主密钥的创建共享主密钥是利用安全密钥交换为此会话建立的一个一次性48字节的值(384位)。生成此密钥共分为两个阶段:首先,交换次密钥pre_master_secret(见握手协议);其次,双方共同计算主密钥master_secret。,按如下方法计算主密钥:master_

18、secret=MD5(pre_master_secret|SHA(A|pre_master_secret|ClientHello.random|ServerHello.random)|MD5(pre_master_secret|SHA(BB|pre_master_secret|ClientHello.random|ServerHello.random)|MD5(pre_master_secret|SHA(CCC|pre_master_secret|ClientHello.random|ServerHello.random),从主密钥生成各主要参数的方法与从次密钥中生成主密钥的方法相同:key_

19、block=MD5(master_secret|SHA(A|master_secret|ServerHello.random|ClientHello.random)|MD5(master_secret|SHA(BB|master_secret|ServerHello.random|ClientHello.random)|MD5(master_secret|SHA(CCC|master_secret|ServerHello.random|ClientHello.random)|直到生成足够的输出。此算法结构的结果是一个伪随机函数,可以将主密钥看成是该函数的伪随机种子值。,16.2.7识别SSL联机,以浏览器Internet Explorer为例。凡是支持SSL的网页,都会以“https:/”来识别,其中的“s”就是Secure的意思。如果已经进入SSL联机状态,则在IE的状态栏上会出现一个金锁的符号,将鼠标在金锁上双击,会出现这个站点的数字证书内容。,思考题:P37016.116.216.316.416.516.616.7,

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号