网络安全协议,授课教师:石元泉 E-mail:syuanquan@ 授课学期:2015-2016(1),第四讲 传输层安全通信协议,内容提要,传输层安全协议概述 安全套接字协议SSL 传输层安全协议TLSP SSL/TLS协议应用 SSL/TLS协议分析,传输层安全通信协议在TCP/IP协议体系中的位置,传输层安全协议概述,特点:基于两个传输进程间的端到端安全服务,保证两个应用之间的保密性和安全性,为应用层提供安全服务Web浏览器将http和ssl相结合,此外,在电子商务中也常被应用 常用协议:SP4+TLSP+SSH+SSL SP4:从属于安全数据网络系统SDNS,由NSA与NIST开发 SSH:强制认证+数据加密安全登陆+安全传输 TLSP:ISO开发和标准化的协议:通信加密+完整性验证 SSL:安全套接层(secure sockets layer)Web通信安全,SSL协议概述,IPsec缺陷:IPSec可以提供端到端的网络层安全传输,但是它无法处理位于同一端系统之中的不同的用户安全需求,因此需要在传输层和更高层提供网络安全传输服务,来满足这些要求 协议版本:netscape开发。
SSL1.0(未公开发行)+ SSL2.0(作为工业标准)+ SSL3.0(升级) 与TLS关系:功能类似、相互兼容 SSL构成:SSL握手协议+SSL记录协议,SSL协议简史,Netscape 公司于1994开发 SSLv2 released in 1995 SSL v3 also released in 1995 due to bugs in v2 1996年IETF成立 Transport Layer Security (TLS) committee TLSv1 was based upon SSLv3 Netscape 、Microsoft 都支持 TLSv1,SSL协议设计目标,在Browser和Web Server之间提供敏感信息传输通道 Social Security Number (SSN) Credit Card, etc 提供访问控制 Open Closed SSL被设计使用TCP提供一个可靠的端到端安全服务,为两个通讯个体之间提供保密性和完整性(身份鉴别),SSL协议服务,用户和服务器双向合法性认证服务:客户机和服务器都有各自的识别号,握手交换中认证彼此身份使得用户和服务器能够确信数据将被发送到正确的客户机和服务器上。
加密数据隐藏传输的数据:握手交换中协商证书认证的加密技术可以使用对称加密和非对称加密数字证书的应用防止非法用户的破译 数据传输完整性验证:散列函数+机密共享,提供完整服务,建立客户机与服务器之间的安全通道,使所有经过安全套接层协议处理的业务在传输过程中都能完整、准确无误地到达目的地 密钥交换服务,SSL加密服务,采用两种加密技术 非对称加密 认证 交换加密密钥 对称加密:加密传输数据,SSL协议服务特点与优势,安全服务特点:设计SSL是为了利用TCP提供可靠的端对端的安全维护,利用它可以保证两个应用间通信的保密性和可靠性,可在服务器和客户机两端同时实现支持SSL协议要求建立在可靠的传输层协议(例如TCP)之上 SSL协议的优势:与应用层协议独立无关的SSL协议构成,两层协议:SSL记录协议层(the SSL Record Protocol Layer)、SSL握手协议层(the SSL Handshake Protocol Layer) 两个实体:客户机+服务器 两个概念:会话+连接 握手协议服务:允许通信双方在应用协议传送数据之前相互验证、协商加密算法、生成密钥、初始向量等 记录协议服务:封装各种高层协议,具体实施压缩/解压缩、加/解密、计算/校验MAC等与安全有关的操作。
SSL协议架构,SSL协议实现层次,SSL协议使用,SSL协议中的两个重要概念,连接:在任意一对的双方之间,也许会有多个安全连接 会话:理论上,双方可以存在多个同时会话,但在实践中并未用到这个特性,SSL协议的会话与连接,连接:连接是能提供合适服务类型的传输,对于SSL,这样的连接是对等的关系连接是暂时的,每个连接都和一个会话相关 会话:SSL会话是客户机和服务器间的关联,由握手协议创建,定义了一组可以被多个连接公用的密码安全参数对于每个连接,可以利用会话来避免对新的安全参数进行代价昂贵的协商SSL会话,会话状态:每个SSL会话都有许多相关的状态建立了会话,就有一个读和写(例如,接收和发送)的当前操作状态另外,在握手协议中,还创建了挂起的读写状态在成功的握手协议结束后,挂起状态就会变成当前状态 会话参数:会话ID+同等实体证书+压缩算法+加密规范+主控密码+可恢复标志,SSL会话参数,SSL连接参数,SSL协议安全信道特性,私密性:由于在握手协议中定义了会话密钥后,所有的消息都被加密 确认性:因为尽管会话的客户端认证是可选的,但是服务器端始终是被认证的 可靠性:因为传送的消息包括消息完整性检查(使用MAC)。
SSL握手协议概述,SSL中最复杂的协议就是握手协议 该协议允许服务器和客户机相互验证,协商加密和MAC算法以及保密密钥,用来保护在SSL记录中发送的数据 握手协议是在应用程序的数据传输之前使用的 握手协议分为两个阶段: 第一个阶段用于建立私密性通信信道; 第二个阶段用于客户认证SSL握手协议数据报,,SSL握手协议数据报,Hello-Request消息:利用Hello-Request消息可以在客户端和服务器端之间交换涉及安全的属性内容当一个新的会话开始时,加密规则中的加密算法、散列算法以及压缩算法均初始化为空 Client-Hello消息:当客户端第一次与服务器连接时,第一个发送的消息即为Client-Hello消息,消息包括了客户端支持的密码算法及压缩模式,按优先级顺序排列 Server-Hello消息:服务器在处理客户端Hello消息之后,可能有两种结果:连接错误或返回服务器端Hello消息消息包括服务器从客户请求中选取的密码算法及压缩模式 Certificate消息:一般来说,服务器总能得到确认,在此情况下,服务器会在发送了Hello消息后立即发出其证书客户在响应服务器发出的需要证书(certificate_request)消息时也会使用这种类型的证书。
SSL握手协议数据报,Server-Key-Exchange消息:若服务器没有证书或有一个仅用于签名的证书时,它将发送服务器密钥交换消息如果服务器用固定的Diffie-Hellman参数已经发送了证书或未用到RSA交换则不需要此消息 Certificate-Request消息:没有使用匿名Diffie-Hellman的服务器要从客户机请求证书该消息包含两个参数:证书类服务器和可接受的证书权威机构列表 Server-Hello-Done消息:服务器端发出Hello完成消息以标识服务器端对Hello及相关消息处理完毕,其后的工作就是等待客户端的响应 Client-Key-Exchange消息:客户端发出的密钥交换,消息的内容取决于密钥交换的类型 Certificate-Verify消息:客户机有可能需要为了验证客户机的证书而发送Certificate-Verify消息其目的是为了验证客户机私钥的所有权 Finished消息:如果改变密码规格消息(在改变密码规格协议中)已经证实密钥交换以及认证过程成功,客户端将立即发送完成消息,完成消息不需要回应,通信双方将在此消息发送后直接开始交换数据,SSL密钥交换类型,RSA:保密密钥使用接收方的RSA公钥加密。
固定的Diffie-Hellman:在服务器的证书包含有CA的Diffie-Hellman公用参数时,就是固定的密钥交换如果需要客户机身份验证,客户机需要在证书中提供Diffie-Hellman公钥参数,或在密钥交换消息中提供 短暂的Diffie-Hellman:该技术用来生成短暂的保密密钥这种情况下,发送方使用私有的RSA或DSS密钥进行签署,接收方可以用相应公钥验证签名验证公钥要使用证书 匿名的Diffie-Hellman:使用基本的Diffie-Hellman算法,但没有验证每一方都给对方发送公用的未授权的Diffie-Hellman参数这种方案容易受到中间者的攻击握手协议工作过程,Client,Server,握手协议工作过程-建立安全能力,客户机服务器选择密码算法及压缩算法 交换由客户机发起,客户机首先发送Client-Hello消息提供客户机支持的密码算法及压缩算法的列表 服务器发送Server-Hello消息,包括服务器从客户机请求的密码组中选择的密码算法及压缩算法握手协议工作过程-建立安全能力,握手协议工作过程-建立安全能力,SSL Client,SSL Server,,2.Server Hello,The Server Hello message is composed of SSL Version (highest) that is understood by the client. TLSv1 b. Key Exchange to identify the method of exchanging keys. RSA. c. Data Encryption to identify the encryption methods available to the Client. DES d. Message Digest for data integrity. MD5 e. Data Compression method for message exchange PKZip f. A Random number to compute the secret key produce by server (un-depends the client’s random),,1.Client Hello,Cipher Suite Alternatives,Data Encryption: RC2-40 RC4-128 DES DES 40 3DES IDEA Fortezza Message Digest: MD5 SHA.,Key Exchange. RSA Fixed Diffie-Hellman Ephemeral Diffie-Hellman Anonymous Diffie-Hellman Fortezza Data Compression: PKZip WinZip gzip StuffIt,握手协议工作过程-服务器身份验证和密钥交换,服务器发送自己的证书(除了匿名DH之外的密钥交换方法都需要)。
服务器发送Server-Key-Exchange消息当密钥交换方式为匿名的DH、短暂的DH或RSA时,需要发送;根据不同密钥交换类型,消息可以包含签名 非匿名的服务器要从客户机请求证书,即发送Certificate-Request消息(可选) 服务器发送Server-Hello-Done消息,用来确定服务器呼叫和相关消息的结束握手协议工作过程-服务器身份验证和密钥交换,握手协议工作过程-服务器身份验证和密钥交换,握手协议工作过程-服务器身份验证和密钥交换,SSL Client,SSL Server,,Server Certificate,The Server Certificate message is composed of The server Identifier information A Digital Certificate of the sever information encrypted with the CAs Private Key. This contains the server's Public Key,,Client Certificate R。