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

上传人:飞****2 文档编号:29783241 上传时间:2022-08-01 格式:PPT 页数:34 大小:396KB
返回 下载 相关 举报
第16章传输层安全ppt课件.ppt_第1页
第1页 / 共34页
第16章传输层安全ppt课件.ppt_第2页
第2页 / 共34页
点击查看更多>>
资源描述

《第16章传输层安全ppt课件.ppt》由会员分享,可在线阅读,更多相关《第16章传输层安全ppt课件.ppt(34页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第16章 传输层安全 安全套接层(SSL)在TCP与使用TCP的应用程序之间提供安全服务。互联网标准版本被称为传输层安全协议(TLS)。 SSL/TLS使用对称加密提供保密性,使用消息认证码提供消息完整性。 SSL/TLS机制使得两个TCP用户可以决定他们将使用的安全服务。 安全电子交易(SET)是用来保护互联网上信用卡交易安全的,一个开放的加密和安全规范。16.1Web安全性思考16.1.1 Web安全性威胁威胁威胁后果后果对策对策完整性完整性 修改用户数据修改用户数据 特洛伊木马浏览器特洛伊木马浏览器 内存修改内存修改 传送中的消息修改传送中的消息修改 信息丢失信息丢失 机器损害机器损害

2、易受所有其他易受所有其他威胁的攻击威胁的攻击加密的校验和加密的校验和保密性保密性 网上窃听网上窃听 盗窃服务器数据盗窃服务器数据 盗窃客户端数据盗窃客户端数据 盗窃网络配置信息盗窃网络配置信息 盗窃客户端与服务器盗窃客户端与服务器通话信息通话信息 信息失窃信息失窃 秘密失窃秘密失窃加密、加密、Web代理代理拒绝服务拒绝服务 破坏用户线程破坏用户线程 用假消息使机器溢出用假消息使机器溢出 装满硬盘或内存装满硬盘或内存 使用使用DNS攻击来孤立攻击来孤立机器机器 破坏破坏 干扰干扰 阻止正常工作阻止正常工作难于防止难于防止认证认证 伪装成合法用户伪装成合法用户 伪造数据伪造数据 用户错误用户错误

3、相信虚假信息相信虚假信息加密技术加密技术16.1.2 Web流量安全性方法流量安全性方法 现在已有许多提供Web安全性的方法。这些方法的使用机理是相似的,只是各自的应用范围及在TCP协议栈中的相对位置不同。 提供提供Web安全性的一种方法是使用安全性的一种方法是使用IP安全性安全性如图(如图(a),使用),使用IPSec的优点在于,它对终端用户和应用均是透明的优点在于,它对终端用户和应用均是透明的,并且提供通用的解决方案。的,并且提供通用的解决方案。 另一种解决方案是在另一种解决方案是在TCP之上实现安全性如之上实现安全性如图(图(b),这种方法最先的例子是安全套接),这种方法最先的例子是安全

4、套接层层SSL,接着是称为传输层安全协议,接着是称为传输层安全协议TLS的的互联网标准。互联网标准。 特定安全服务在特定应用中得以体现。图(特定安全服务在特定应用中得以体现。图(c)是一个示意图。这种方法的好处在于它是为是一个示意图。这种方法的好处在于它是为给定应用定制的。在给定应用定制的。在Web安全性方面一个典安全性方面一个典型的例子是安全电子交易(型的例子是安全电子交易(SET)。)。16.2安全套接层(安全套接层(SSL)和传输层)和传输层的安全的安全 SSL源于源于Netscape公司。传输层安全协议公司。传输层安全协议TLS是是IETF标准的初衷,其目的是编写标准的初衷,其目的是编

5、写SSL的互联网标准。当前的互联网标准。当前TLS的草案的草案RFC 2246与与SSLv3非常相似。非常相似。16.2.1 SSL体系结构体系结构 SSL被设计成使用TCP来提供可靠的端到端端到端安全服务。SSL不是简单的单个协议,而是两层协议。如图17.2所示。SSL握手协议SSL修改密码协议SSL警报协议HTTPSSL记录协议TCPIPSSL中包含两个重要概念:SSL会话和SSL连接。连接:连接:连接是提供合适服务类型的一种传输。对SSL来说,连接表示的是对等网络关系,且连接是短暂的,每个连接与一个会话相关。会话:会话:SSL会话是一个客户端和服务器间的关联,会话是通过握手协议创建的,定

6、义了一组多个连接共享的密码安全参数。会话可用于减少为每次连接建立安全参数的昂贵协商费用。一个会话状态由以下参数定义:l 会话标识:会话标识:服务器用于标识活动或恢复的会话状态所选的一个随机字节序列。l 同位体证书:同位体证书:同位体的X509.v3证书,此状态元素可以为空。l 压缩方法:压缩方法:在加密前使用的压缩数据的算法。l 密码规范:密码规范:描述主要数据加密算法和计算MAC的散列算法,同时也定义如散列大小等加密属性。l 主密码:主密码:客户和服务器间48字节的共享密码。l 可恢复性:可恢复性:表明会话是否可被用于初始化新连接的标志。连接状态可用以下参数定义:连接状态可用以下参数定义:l

7、 服务器和客户端随机数:服务器和客户端随机数:服务器和客户端为每个连接服务器和客户端为每个连接选择字节序列。选择字节序列。l 服务器写服务器写MAC密钥:密钥:服务器发送数据时在服务器发送数据时在MAC操作中操作中使用的密码。使用的密码。l 客户端写客户端写MAC密钥:密钥:客户端发送数据时在客户端发送数据时在MAC操作中操作中使用的密码。使用的密码。l 服务器写密钥:服务器写密钥:服务器加密和客户端解密数据时使用服务器加密和客户端解密数据时使用的传统加密密钥。的传统加密密钥。l 客户端写密钥:客户端写密钥:客户端加密和服务器解密数据时使用客户端加密和服务器解密数据时使用的传统加密密钥。的传统

8、加密密钥。l 初始化向量:初始化向量:使用使用CBC时,需要为每个密钥维护一个时,需要为每个密钥维护一个初始化向量(初始化向量(IV)。)。l 序列号:序列号:会话的各方为每个连接传送和接收消息维护会话的各方为每个连接传送和接收消息维护一个单独的序列号。当接收或发送一个修改密码规范一个单独的序列号。当接收或发送一个修改密码规范协议报文时,序列号被设为协议报文时,序列号被设为0。序列号不能超过。序列号不能超过264-116.2.2 SSL记录协议SSL记录协议为SSL连接提供两种服务:保密性和消息完整性保密性和消息完整性应用数据应用数据分段分段压缩压缩增加增加MAC加密加密添加添加SSL记录头记

9、录头图图17.3 SSL记录协议的操作记录协议的操作计算其消息认证代码(MAC)。为此,需要使用共享密钥。其计算方式如下:hash ( MAC_write_secret| pad_2 | hash(MAC_write_secret | pad_1| seq_num | SSLCompressed.type | SSLCompressed.length| SSLCompressed.fragment)其中:| 连接MAC_write_secret 共享密钥Hash hash算法MD5或SHA-1pad_1 字节0 x36(00110110),对MD5重复48次(384位), 对SHA-1重复40

10、次(320位)pad_2 字节0 x5C(01011100),对MD5重复48次;对SHA-1重复40次seq_num 此消息的序列号SSLCompressed.type 处理此分段的上层协议SSLCompressed.length 压缩后的分段长度SSLCompressed.fragment 压缩后的分段(如果没有压缩,则为明文段)SSL记录协议的最后一步是加上一个由如下域组成记录协议的最后一步是加上一个由如下域组成的的SSL头:头: 内容类型(内容类型(8位)位):封装段使用的高层协议。:封装段使用的高层协议。 主版本(主版本(8位):位):表明表明SSL使用的主版本,如使用的主版本,如S

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

12、重程度。通常导致致命错误的警报列举如下: 意外消息:意外消息:接收到不正确的消息。 MAC记录出错:记录出错:接收到不正确的MAC。 解压失败:解压失败:解压函数接收到不正确的输入(如不能解压或解压长度大于允许值的长度)。 握手失败:握手失败:发送者无法在给定选项中协商出一个可以接受的安全参数集。 非法参数:非法参数:握手消息中的某个域超出范围或与其他域不一致。 结束通知:结束通知:通知接收者,发送者将不再用此连接发送任何消息。 无证书:无证书:如果无适当的证书可用,用可能作为证书请求的响应来发送。 证书出错:证书出错:接收的证书被破坏 不支持的证书:不支持的证书:不支持接收的证书类型 证书撤

13、销:证书撤销:证书被其签名者撤销。 证书过期:证书过期:证收超过使用期限。 未知证书:未知证书:在处理证书时,出现其他错误,使得证书不被接受。16.2.5握手协议握手协议此协议允许客户端和服务器端相互认证、协商加密和MAC算法,保护数据使用的密钥通过SSL记录传送。握手协议在传递应用数据之前使用。握手协议由客户端和服务器间交换的一系列消息组成,这些消息的格式如图17.5(c)所示。每个消息由三个域组成: 类型(类型(1字节)字节):表明10种消息中的一种,下表列举了所定义的消息类型。 长度(长度(3字节)字节):消息的字节长度。 内容(内容(1字节)字节):与消息相关的参数。消息类型消息类型参

14、数参数Hello_requestHello_request空空Client_helloClient_hello版本号、随机数、会话标识、密码组、压缩版本号、随机数、会话标识、密码组、压缩方法方法Server_helloServer_hello版本号、随机数、会话标识、密码组、压缩版本号、随机数、会话标识、密码组、压缩方法方法CertificateCertificateX.509v3X.509v3证书链证书链Server_key_exchangServer_key_exchange e参数、签名参数、签名Certificate_requesCertificate_request t类型、认证机构

15、类型、认证机构Server_doneServer_done空空Certificate_verifyCertificate_verify签名签名Client_key_exchangClient_key_exchange e参数、签名参数、签名finishedfinishedHashHash值值阶段阶段1:建立安全能力:建立安全能力此阶段用于建立初始的逻辑逻辑连接,并建立与之相连的安全能力。客户端发起这个交换,发送具有如下参数的client_hello消息消息。 版本:版本:客户端所支持的最高SSL版本。 随机数:随机数:客户端生成的随机数结构,由32位时间戳和一个安全随机数生成器生成的28字节随

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

17、域中包含的是客户端支持的最低版惯例:版本域中包含的是客户端支持的最低版本号和服务器支持的最高版本号。随机数域是本号和服务器支持的最高版本号。随机数域是由服务器生成的,与客户端的随机数域相互独由服务器生成的,与客户端的随机数域相互独立。如果客户端会话标识非立。如果客户端会话标识非0,则服务器使用,则服务器使用与之相同的值,否则,服务器的会话标识域包与之相同的值,否则,服务器的会话标识域包含新对话的值。密码组域包含着服务器从客户含新对话的值。密码组域包含着服务器从客户端所给的密码组中选出的密码组。压缩域包含端所给的密码组中选出的密码组。压缩域包含的是服务器从客户端所给的压缩方法中选出的的是服务器从

18、客户端所给的压缩方法中选出的压缩方法。压缩方法。密码组参数的第一个元素是密钥交换方法。密码组参数的第一个元素是密钥交换方法。支持下述密钥交换方法:支持下述密钥交换方法: RSA:用接收者的用接收者的RSA公钥加密密钥,公钥加密密钥,必须拥有接收者公钥的公钥证书。必须拥有接收者公钥的公钥证书。 固定固定Diffie-Hellman:Diffie-Hellman密密钥交换,其中包含认证中心签发的钥交换,其中包含认证中心签发的Diffie-Hellman公钥参数的服务器证书,公钥参数的服务器证书,也就是说,公钥证书包含也就是说,公钥证书包含Diffie-Hellman公钥参数公钥参数(即在公钥证书中

19、包含(即在公钥证书中包含p、g、和和y,其中,其中ygx mod p)。客户端在证。客户端在证书中提供它的书中提供它的Diffie-Hellman公钥参数,公钥参数,或需要进行客户端认证时,在密钥交换或需要进行客户端认证时,在密钥交换消息中提供证书。消息中提供证书。 瞬时瞬时Diffie-Hellman:此技术用于创建瞬时此技术用于创建瞬时(临时、一次性)的密钥。在这种情况下,(临时、一次性)的密钥。在这种情况下,Diffie-Hellman公钥在交换时使用发送者的公钥在交换时使用发送者的RSA或或DSS私钥签名。接收者使用相应的公钥私钥签名。接收者使用相应的公钥验证签名。由于它使用的是临时的

20、认证密钥,验证签名。由于它使用的是临时的认证密钥,因此在三种因此在三种Diffie-Hellman选项中最安全。选项中最安全。(注:接收者也需要发送者的公钥证书,不过(注:接收者也需要发送者的公钥证书,不过在公钥证书中只是包含验证签名的公钥。)在公钥证书中只是包含验证签名的公钥。) 匿名匿名Diffie-Hellman:使用基本的使用基本的Diffie-Hellman算法,没有认证。即在向对方发送其算法,没有认证。即在向对方发送其Diffie-Hellman公钥参数时,不进行认证。这公钥参数时,不进行认证。这种方法容易受到中间人攻击,攻击者可以使用种方法容易受到中间人攻击,攻击者可以使用匿名匿

21、名Diffie-Hellman与双方进行通话。与双方进行通话。 Fortzza:为为Fortezza模式定义的技术。模式定义的技术。密钥交换方法定义之后的是密钥交换方法定义之后的是CipherSpec,其中,其中包含以下域:包含以下域: 对称加密算法:对称加密算法: RC4、RC2、DES、3DES、DES40、IDEA、Fortezza。 MAC算法:算法:MD5或SHA-1 密码类型:密码类型:流或分组。 可出口:可出口:真或假。 散列长度:散列长度:0,16(MD5)字节或20(SHA-1)字节。 密钥材料:密钥材料:字节序列,包含生成写密钥所使用的数据。 IV大小:大小:密码分组链接(

22、CBC)加密使用的初始矢量的大小。阶段阶段2 服务器认证和密钥交换服务器认证和密钥交换l如果需要进行认证,则服务器开始发送如果需要进行认证,则服务器开始发送其证书;消息包含一个或一组其证书;消息包含一个或一组X.509证书。证书。除匿名除匿名Diffie-Hellman方法外,其他密钥方法外,其他密钥交换方法均需要证书消息。交换方法均需要证书消息。l如果需要,可以发送服务器密钥交换消如果需要,可以发送服务器密钥交换消息。息。 签名中用到的散列函数定义如下:hash ( ClientHello.random | ServerHello.random | ServerParams )散列不仅包含D

23、iffie-Hellman或RSA参数,还包含初始hello消息中的两个nonce,可以防止重放攻击和伪装。对DSS签名而言,散列函数使用SHA-1算法;对RSA签名而言,将要计算MD5和SHA-1,再将两个散列结果串接(36字节)后,用服务器私钥加密。接下来,一个非匿名服务器(服务器不使用匿名Diffie-Hellman)需要向客户端申请证书。证书请求消息包含两个参数:证书类型和认证中心。证书类型表明了公钥算法和它的用途: RSA,仅用于签名 DSS,仅用于签名。 固定Diffie-Hellman的RSA;此时,发送RSA签名证书,其签名仅用于认证。 固定Diffie-Hellman的DSS

24、;仅用于认证。 瞬时Diffie-Hellman的RSA。 瞬时Diffie-Hellman的DSS。 Fortezza。证书请求消息中的第二个参数是一个可接受的认证中心名字表。第二阶段的最后一个消息是服务器完成消息,它通常是需要的。 阶段阶段3 客户端认证和密钥交换客户端认证和密钥交换在接收到服务器完成消息之后,如果请求在接收到服务器完成消息之后,如果请求了证书,客户端需要验证服务器是否提了证书,客户端需要验证服务器是否提供了合法证书,并且检查供了合法证书,并且检查server_hello参数是否可接受。如果所有的条件均满参数是否可接受。如果所有的条件均满足,则客户端向服务器发回一个或多个足

25、,则客户端向服务器发回一个或多个消息。消息。如果服务器请求了证书,则在此阶段客户如果服务器请求了证书,则在此阶段客户端开始发送一条证书消息。如果未提供端开始发送一条证书消息。如果未提供合适的证书,则客户端将发送一个合适的证书,则客户端将发送一个“无无证书警报证书警报”。接下来是此阶段必须要发送的客户端密钥交换消接下来是此阶段必须要发送的客户端密钥交换消息。消息的内容依赖于密钥交换的类型:息。消息的内容依赖于密钥交换的类型: RSA:客户端生成:客户端生成48字节的次密钥,并使用服字节的次密钥,并使用服务器证书中的公钥或服务器密钥交换消息中的务器证书中的公钥或服务器密钥交换消息中的临时临时RSA

26、密钥加密。它用于生成稍后介绍的主密钥加密。它用于生成稍后介绍的主密钥计算。密钥计算。 瞬时或匿名瞬时或匿名Diffie-Hellman:发送客户端的:发送客户端的Diffie-Hellman公钥参数。公钥参数。 固定固定Diffie-Hellman:由于客户端发出的证书:由于客户端发出的证书消息中包括消息中包括Diffie-Hellman公钥参数,因此,公钥参数,因此,此消息内容为空。此消息内容为空。 Fortezza:发送客户端的:发送客户端的Fortezza参数。参数。阶段阶段4 完成完成此阶段完成安全连接的设置。握手完成后,客户端和服务器即可开始交换应用层数据。16.2.6密码计算密码计

27、算1.主密钥的创建主密钥的创建 共享主密钥是利用安全密钥交换为此会话建立的一个一次性48字节的值(384位)。生成此密钥共分为两个阶段:首先,交换次密钥pre_master_secret(见握手协议);其次,双方共同计算主密钥master_secret。按如下方法计算主密钥:master_secret=MD5( pre_master_secret | SHA( A | pre_master_secret | ClientHello.random | ServerHello.random) | MD5( pre_master_secret | SHA( BB | pre_master_secre

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

29、| 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

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁