SSL协议

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

IP
IP

SSL协议可用于保护正常运行于TCP之上的任何应用协 议,如HTTP、FTP、SMTP或Telnet的通信,最常见的 是用SSL来保护HTTP的通信。 SSL协议的优点在于它是与应用层协议无关的。高层的 应用协议(如HTTP、FTP、Telnet等)能透明地建立 于SSL协议之上。 SSL协议在应用层协议之前就已经完成加密算法、通信 密钥的协商以及服务器的认证工作。在此之后应用层 协议所传送的数据都会被加密,从而保证通信的安全 性。
4. 签发证书的机关是否服务器信任的; 5.用户的证书是否在服务器的LDAP用户信息中; 6.该用户是否有权限访问请求的服务器资源 ;
在客户认证的情况下,客户机用客户的密钥加密一些随机 数据,创建一个数字签名。只有在相应的密钥被使用时, 客户证书中的公钥能够正确验证数字签名。否则,服务器 不能验证数字签名,会话被终止。
主要工作流程
6. 若 服 务 器 要 求 客 户 认 证 , 客 户 机 会 向 服 务 器 随 加 密 的 pre_master_secret 一起发送签名的数据和客户自己的证书。 7服务器若认证客户成功,使用私钥加密pre_master_secret, 然后执行一系列步骤生成master secret。否则会话终止。 7.客户机与服务器使用master secret生成会话密钥。该密钥 是对称密钥,用于加密和解密在 SSL 会话期间交换的信息, 检验信息完整性。 8. CS:发送消息通知以后从客户机来的消息将用会话密钥 加密。客户机然后发送一条独立的(加密的)消息表明握手 的客户机部分已经完成。
安全套接层协议SSL
SSL概述 SSL体系结构与协议 SSL协议的安全性分析

SSL概述

SSL协议是一种国际标准的加密及身份认证通 信协议 目标:SSL被设计用来使用TCP提供一个可靠的 端到端安全服务,为两个通讯个体之间提供保 密性和完整性(身份鉴别)。

SSL/TLS协议



1994年Netscape开发了SSL(Secure Socket Layer)安全套 接层协议,专门用于保护Web通讯 版本和历史 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年,发布RFC 2246(The TLS Protocol v1.0)
SSL握手协议的功能
协商SSL协议的版本 协商加密套件 协商密钥参数 验证通讯双方的身份(可选) 建立SSL连接
SSL握手协议的握手过程
无客户端认证的全握手过程 有客户端认证的全握手过程
会话恢复过程
无客户端认证的全握手过程
client
ClientHello
Internet

服务器对客户的身份认证
ቤተ መጻሕፍቲ ባይዱ

建立服务器与客户之间安全的数据通道

SSL提供的安全服务

用户和服务器的合法性认证

using X.509v3 digital certificates

传输数据的机密性

using one of DES, Triple DES, IDEA, RC2, RC4, …
using MAC with MD5 or SHA-1
在服务器认证的情况下,客户机用服务器公用密钥加密 pre_master_secret 。只有相应的密钥能够正确地解密 pre_master_secret ,客户才确信:与公钥相关联的标识 符事实上是服务器与客户机连接使用的。否则,服务器 不能解密 pre_master_secret 、不能生成会话要求的对 称密钥,会话将被终止。
SSL体系结构
Application
SSL API
握 手 协 议
密 钥 改 变 协 议
告 警 协 议
SSL层 握手层
记录层 记录层协议
TCP

SSL协议定义了两个通信主体:客户(client)和服务 器(server)。其中,客户是协议的发起者。
在客户/服务器结构中,应用层从请求服务和提供服务 的角度定义客户和服务器,而SSL协议则从建立加密参 数的过程中所扮演的角色来定义客户和服务器。
ClientKeyExchange [ChangeCipherSpec] Finished Application Data
客户端产生的PreMasterKey密钥参数 通知对方本端开始启用加密参数 发送自己计算握手过程验证报文 通知对方本端开始启用加密参数 发送自己计算握手过程验证报文 传送应用层数据

客户对服务器的身份认证

SSL服务器允许客户的浏览器使用标准的公钥加密技术和 一些可靠的认证中心(CA)的证书,来确认服务器的合 法性。 也可通过公钥技术和证书进行认证,也可通过用户名, password来认证。 SSL要求客户与服务器之间的所有发送的数据都被发送端 加密、接收端解密,同时还检查数据的完整性
密钥协商的形象化比喻
C:(查看证书上S的名字,并通过手头已有的CA的证书验证 S的证书的真实性,如果有误, 发出警告并断开连接,这一步 保证了公钥的真实性)
(产生一份秘密消息 ——称为per_master_secret ,以后用 于对初始化向量和 hmac进行加密,然后用 S的公钥加密成为 ClientKeyExchange)
[ChangeCipherSpec] Finished Application Data
认证服务器的身份
1.从服务器端传送的证书中获得相关信息 2.当天的时间是否在证书的合法期限内; 3.签发证书的机关是否客户端信任的; 4.签发证书的公钥是否符合签发者的数字签名 5.证书中的服务器域名是否符合服务器自己真正的域名 6.服务器被验证成功,客户继续进行握手过程。
客户端支持的最高版本,加密套件列表,压缩算法列表, 客户端随机数,会话ID=0 服务器同意的版本,加密套件,压缩算法, 会话ID, 服 务器端随机数 服务器的证书 服务器端密钥交换的附加信息 通知对方服务器端握手消息发完
server
ServerHello ServerCertificate* ServerKeyExchange * ServerHelloDone*
密钥协商的形象化比喻
我生成了一份秘密消息,并用你的公钥加密传给你了 (把ClientKeyExchange发给S)

传输数据的完整性

SSL协议的分层模型
SSL 协议是一个分层的协议,共有两层组成。处 于 SSL 协议的底层的是 SSL 记录层协议 (SSL Record Protocol),它位于可靠的传输层协议(如TCP)之上, 用于封装高层协议的数据。其中 SSL 握手协议 (SSL Handshake Protocol)允许服务方和客户方互相认证 ,并在应用层协议传送数据之前协商出一个加密算法 和会话密钥。

一个保证任何安装了安全套接字的客户 和服务器间事务安全的协议,它涉及所 有TCP/IP应用程序 IPSec SSL
SSL TCP IP/IPSec OS TCP IP
Lower layers
Lower layers
SSL在协议栈的位置
Application SSL UDP TCP Application SSL TCP UDP
四、SSL协议原理及工作流程
主要工作流程
应用数据的传输过程为 : 1)应用程序把应用数据提交给本地的SSL; 2)发送端的SSL根据需要 :
a)使用指定的压缩算法 ,压缩应用数据;
b)使用散列算法对压缩后的数据计算散列值; c)把散列值和压缩数据一起用加密算法加密; 3) 密文通过网络传给对方;
四、SSL协议原理及工作流程
客户端的证书
前面所有握手消息的数字签名
[ChangeCipherSpec] Finished 传送应用层数据
Application Data
Application Data
认证客户端的身份
1. 客户端传送的证书中获得相关信息; 2. 用户的公钥是否符合用户的数字签名;
3. 当天的时间是否在证书的合法期限内;
有客户端认证的全握手过程
client
ClientHello
Internet
server
ServerHello ServerCertificate* ServerKeyExchange* CertificateRequest* ServerHelloDone*
向客户端索要证书 Certificate* ClientKeyExchange CertificateVerify* [ChangeCipherSpec] Finished



SSL协议使用通信双方的客户证书以及CA根证书,允 许客户/服务器应用以一种不能被偷听的方式通信,在 通信双方间建立起了一条安全的、可信任的通信通道。
该协议使用密钥对传送数据加密,许多网站都是通过 这种协议从客户端接收信用卡编号等保密信息。它被 认为是最安全的在线交易模式,

SSL解决的问题(功能)
协议的使用

https:// 与shttp://

在网络上传输的敏感信息(如电子商务、金融业务中 的信用卡号或PIN码等机密信息)都纷纷采用SSL来进 行安全保护。 SSL通过加密传输来确保数据的机密性,通过消息验证 码(Message Authentication Codes,MAC)机制来保 护信息的完整性,通过数字证书来对发送和接收者的 身份进行认证。
主要工作流程
4)接收方的SSL
用相同的加密算法对密文解密 ,得到明文;
用相同的散列算法对明文中的应用数据散列; 计算得到的散列值与明文中的散列值比较; 5)如果一致 ,则明文有效 ,接收方的SSL把明文解压后得到 应用数据上交给应用层。否则就丢弃数据,并向发方发出告 警信息。严重的错误有可能引起再次的协商或连接中断。

SSL的两个重要概念


SSL连接(connection) 一个连接是一个提供一种合适类型服务的传输(OSI 分层的定义)。 SSL的连接是点对点的关系。 连接是暂时的,每一个连接和一个会话关联。 SSL会话(session) 一个SSL会话是在客户与服务器之间的一个关联。会 话由Handshake Protocol创建。会话定义了一组可供 多个连接共享的密码安全参数。 会话用以避免为每一个连接提供新的安全参数所需昂 贵的协商代价。
连接1 连接2 …… 连接n
连接1 连接2 …… 连接n
SSL的会话与连接
在任意一对通信主体之间,可以有多个安全连接。
会 话
SSL体系结构
Application
SSL API
握 手 协 议
密 钥 改 变 协 议
告 警 协 议
SSL层 握手层
记录层 记录层协议
TCP
四、SSL协议原理及工作流程
主要工作流程
1. 网络连接建立, SSL 客户端发送消息,消息中包含 SSL版本号、密码设置、可实现的算法列表、随机数以 及服务器使用SSL协议通信所需的其它信息;
2.SSL 服务器端回应消息,确定 SSL 版本号、加密算法 和压缩算法;
3.SSL服务器发出服务器数字证书;
4.SSL客户端的身份认证是可选的;
5. 客户端生成预主密钥 pre_master_secret ,用服务器 的公钥加密后返回服务器,服务器利用自己的私钥解密 后得到会话密钥;
密钥协商的形象化比喻
假设 SSL客户端 C与 SSL服务器端 S通信,加密后的消息放在 方括号[]里,以区别于明文消息。双方的处理动作的说明用圆 括号()括起。
C:我想和你安全的通话,我这里的对称加密算法有 DES,RC5, 密 钥 交 换算 法 有 RSA 和 DH , 摘 要 算 法有 MD5 和 SHA。 S : 我 们 用 DES - RSA - SHA 这 对 组 合 好 了 。 这是我的证书,里面有我的名字和公钥,你拿去验证一下我的 身份(把证书发给C)。
相关文档
最新文档