【网络通信安全管理员认证-中级】SSL和SET.ppt
《【网络通信安全管理员认证-中级】SSL和SET.ppt》由会员分享,可在线阅读,更多相关《【网络通信安全管理员认证-中级】SSL和SET.ppt(87页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第6章 安全协议6.1 SSL协议及其应用6.2 安全电子交易系统 安全套接字层协议安全套接字层协议(Security Socket Layer,SSL)是用于Internet上进行保密通信的一个安全协议,它的主要目的是保证两台机器之间的通信安全,提供网络上可信赖的服务。SSL协议已成为Web安全方面的工业标准。目前广泛采用的是SSLv3。6.1 SSL协议及其应用 6.1.1 引言 SSL使用保密密钥对将要通过SSL连接传送的数据进行加密,它是对两台机器之间的整个会话进行加密的协议。SSL的设计目标如下:加密安全。互用性。可扩展性。关联功能。6.1.2 SSL协议概述1.SSL 协议的结构
2、由两层组成,分别是握手协议层和记录协议层。SSL协议可以独立于应用层协议,因此可以保证一个建立在SSL协议之上的应用协议能透明地传输数据。SSL协议在网络协议栈的位置如图6.1所示。图6.1 SSL协议层与TCP/IP 协议的关系图 SSL握手协议的作用作用是在正式的秘密通信之前,让服务器和客户之间互相鉴别对方的身份并协商一种会话的加密算法和加密密钥。(1)客户端和服务器之间互相验证身份(2)客户端和服务器之间协商安全参数SSL协议提供安全连接时有以下基本属性:通信内容是保密的。双方的验证是使用非对称密钥。连接是可靠的。2 SSL协议中的状态一个SSL会话是有状态的。(1)待定状态和当前状态
3、待定状态待定状态,包含当前握手协议协商好的压缩、加密、计算MAC以及密钥等。当前状态当前状态,包含记录层正在实施的压缩、加密、计算MAC以及密钥等。(2)会话状态和连接状态每个会话状态包含以下元素:会话标识符压缩算法加密规格说明主密钥是否可回复的一个标志每个连接状态包含下列元素:每个连接状态包含下列元素:服务器和客户端随机数服务器消息验证码密钥客户端消息验证码密钥服务器写密钥客户端写密钥初始化向量序号服务器和客户端3.SSL协议规范表示语言 SSL协议有自己的一套规范语言,使用规范语言可以提供一种没有歧义的、精简的协议描述。SSL的规范语言和C语言有点相似。(1)基本类型 所有的数据表示都是严
4、格规定的。基本的数据大小是一个字节(8个位)。多字节的数据是八字节串联起来,从左到右,从上到下。(2)混合注释用“/*”开始,用“*/”结束,可选的组件放在“”里。(3)数值型基本的数值型是uint8。所有大数值型都是uint8固定组成。uint8 uint162;uint8 uint243;uint8 uint324;uint8 uint648(4)向量一个向量(单维的数组)是一个同构的数据元素流,它是给定类型的元素序列。向量有定长和变长。定长用 表示,变长用 表示。(5)枚举枚举就是只有一系列特定的字段,且每个值都有名字。(6)结构结构类型按需要从原始类型组合而成。语法和C很相似。stru
5、ct T1 f1;T2 f2;.Tn fn;T;这里可以用结构名加上字段名指定一个项,如T.f2 就指定义的第二个字段。记录层SSL常用的数据加密算法有下列几种。(1)No encryptionStream ciphers(2)RC4 with 40 bit key(3)RC4 with 128 bit keyCBC Block Ciphers(4)RC2 with 40 bit key(5)DES with 40 bit key(6)DES with 56 bit key(7)Triple-DES with 168 bit key(8)Idea(128 bit key)(9)Fortezza
6、(96 bit key)6.1.3 记录层协议1 帧帧是记录层从上层接收到的任意长度、非空的、不可分的数据。2 记录的压缩和解压3 记录有效负荷保护和密码规范 change_cipher_spec消息有着特殊的用途,它表示记录加密及认证的改变,一旦握手商定了一组新的密钥,就发送change_cipher_spec消息来指示此刻将启用新的密钥。6.1.4 change_cipher_spec协议 警告类型是被SSL记录层协议支持的一种。警告消息传达消息的严重性和该警告的描述。6.1.5 警告协议enum warning(1),fatal(2),(255)AlertLevel;enum close
7、_notify(0),unexpected_message(10),bad_record_mac(20),decompression_failure(30),handshake_failure(40),no_certificate(41),bad_certificate(42),unsupported_certificate(43),certificate_revoked(44),certificate_expired(45),certificate_unknown(46),illegal_parameter(47)(255)AlertDescription;struct AlertLevel
8、 level;AlertDescription description;Alert;1.关闭提示 当连接关闭时,客户端和服务器端都必须知道,以防止切断攻击。2 错误提示一般有如下错误警告:unexpected_messagebad_record_macdecompression_failurehandshake_failureno_certificatebad_certificateunsupported_certificatecertificate_revokedcertificate_expiredillegal_parameter 握手层SSL支持的密钥交换算法有以下两种:RSA 密钥交
9、换。Diffie-Hellman密钥交换。6.1.6 握手层协议1 握手协议概述 会话状态的加密参数由握手协议产生,握手协议在记录层协议的上方。图6.2是一简单的握手协议顺序图。图6.2显示了握手协议要传输的内容,但并非每一个箭头线都表示要在网络上传输一次,同一方向的几个连在一起,其内容将在一次传输中发送。图6.2 简单的握手协议顺序图 为了避免管道传输延时,ChangeCiphersSpec是一个独立的SSL内容类型,并不是一个实际的SSL握手协议消息。如果服务器和客户端决定再继续一个以前的会话或者复制一个已经存在的会话(使用新的安全参数来替代),那么消息流如下(星号表示可选):客户端 服务
10、器端 ClientHello -erverHello Certificate*ServerKeyExchange*CertificateRequest*ChangeCipherSpec -Finished Application Data Application Dat 恢复一个会话:客户端 服务器端 ClientHello -ServerHello change cipher spec Application Data Application Data 2 握手协议 SSL握手协议是SSL记录层协议的高一级客户。这个协议是用来磋商一个会话的安全属性。下面是握手消息结构:Enum hello_
11、request(0),client_hello(1),server_hello(2),certificate(11),server_key_exchange(12),certificate_request(13),server_hello_done(14),certificate_vertify(15),client_key_exchange(16),(255)HandshakeType;Struct HandshakeType msg_type;uint24 length;select(HandshakeType)case hello_request:HelloRequest;case cl
12、ient_hello:ClientHello;case server_hello:ServerHello;case certificate:Certificate;case server_key_exchange:ServerKeyExchange;case certificate_request:CertificateRequest;case server_hello_done:ServerHelloDone;case certificate_verify:CertificateVerify;case client_key_exchange:ClientKeyExchange;case fi
13、nished:Finished;body;Handshake;握手协议必须按照顺序发送,否则,将会产生一个致命的错误。(1)Hello 消息 Hello阶段的消息用做在双方之间交换安全增强能力。Hello请求。服务器可以在任何时刻发送Hello请求消息,但是,当握手协议正在进行时,客户端忽略消息。客户端也可以发送一个ClientHello来重新开始协议。客户端Hello消息。客户端使用SSL版本号struct uint32 gmt_unix_time;opaque random_bytes28;Random;会话标识符密码组列表压缩算法列表 消息服务器Hello。服务器接收到一个ClientH
14、ello消息后,作为回应,将发送一个handshake_failure提示,或者一个ServerHello消息。struct ProtocolVersion server_version;Random random;SessionID session_id;CipherSuite cipher_suite;CompressionMethod compression_method;ServerHello;(2)服务器密钥交换消息(Server key exchange message)(3)证书请求一个非匿名的服务器可以任意要求客户端发送一个证书给它(4)服务器Hello结束服务器发送一个Ser
15、verHelloDone 消息,表明服务器Hello消息及相关的消息的结束。发送以后,服务器将等待客户端的响应。(5)客户端证书在客户端接收到ServerHelloDone消息后,第一个可能发送的消息就是客户端证书。(6)客户端密钥交换消息 struct select(KeyExchangeAlgorithm)case rsa:EncryptedPreMasterSecret;case diffie_hellman:ClientDiffieHellmanPublic;case fortezza_kea:FortezzaKeys;exchange_keys;ClientKeyExchange;(
16、7)证书验证 这个消息用来严格验证客户端证书。这个消息紧跟在一个具有签名能力的客户端证书后面。(8)结束 一个变化的密码规范消息验证了密钥交换过程和验证过程已经成功后,一个结束的消息就立即发送。这个结束消息是第一个刚刚协商的安全参数保护的消息。在这个消息之后,双方就开始发送应用层数据。接收到结束消息,必须验证内容的正确性。密钥分为两大类:数据加密密钥(DK)和密钥加密密钥(KEK)。在现实世界中,密钥管理是最困难的安全问题,密钥管理问题成为网络安全的核心问题。本小节主要讨论双方在有公钥证书情况下的密钥交换,使用的是RSA密钥交换协议。6.1.7 密钥管理图6.3 共享密钥在公开信道上交换1.共
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络通信安全管理员认证中级 网络 通信 安全 管理员 认证 中级 SSL SET
限制150内