SSL协议
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
连接状态
• 随机数(Server and client random): server 和client 为每一 个连接所选择的随机数。 • 预主密钥(Pre Master secret):由客户端生成的一个随机 数,加密传输给服务器端,其长度根据密钥交换方案来 确定。 • 主密钥(Master secret): 共计48字节,由“预主密钥”和2 个随机数共同生成,在client与server之间共享,用于生 成之后的密钥。 • 服务器MAC写密钥(Server write MAC secret): 一个密钥, 用来对server 送出的数据进行MAC操作。 • 客户端MAC写密钥(Client write MAC secret): 一个密钥, 用来对client送出的数据进行MAC操作。
电子商务技术
(第四章 SSL协议) 郭 伟 西南交通大学 信息科学与技术学院 E-mail: WGuo@home.swjtu.edu.cn
目前国际上流行的电子商务所采用的协 议主要有:
安全套接层协议(Secure Sockets Layer,SSL) 基于信用卡交易的安全电子协议(Secure Electronic Transaction,SET) 安全HTTP(S-HTTP)协议 安全电子邮件协议(PEM、S/MIME等) 用于公对公交易的Internet EDI等。 此外在Internet网上利用IPSec标准建设虚拟专用网, 利用VPN为企业、政府提供一些基本的安全服务,
密码参数的生成
PRF(secret, label, seed) = P_MD5(S1, label + seed) ⊕P_SHA-1(S2, label + seed); P_hash(secret, seed) = HMAC_hash(secret, A(1) + seed) + HMAC_hash(secret, A(2) + seed) + HMAC_hash(secret, A(3) + seed) + ... “+”表示连接符 A() is defined as: A(0) = seed A(i) = HMAC_hash(secret, A(i-1)) HMAC:MAC = H(Key ⊕ oPad, H(Key ⊕ iPad , context))
协议层次 默认端口 对消息的处 理 抗抵赖服务 实现代价 应用范围 开发者
位于应用层,是HTTP协议的扩展, 应用了安全套接层(SSL)作为 报文语法与HTTP一致 HTTP应用层的子层 80 可感知到应用层数据的结构,把消 息当成对象进行签名或加密传输 可支持对基于消息的抗抵赖服务 困难 较少 企业集成技术(EIT) 443 无法识别应用层数据的结构,将消 息分帧后再进行流处理。 无法为交易信息提供抗抵赖服务 容易 广泛 网景公司
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)
8
IPSec
HTTP
S-HTTP
HTTP协议扩展 S-HTTP FTP
SSL
Telnet 应用层-7
HTTPS TCP IP/IPSec Lower layers
SSL
传输层-4 TCP 网络层-3 IP Lower layers
HTTPS与S-HTTP协议辨析
S-HTTP 名称 安全的超文本传输协议(Secure HyperText Transfer Protocol) HTTPS 基于安全套接层的超文本传输协议 (HyperText Transfer Protocol over Secure Socket Layer)
连接状态
• 服务器写密钥(Server write key): 用于server 进行数据加 密,client进行数据解密的对称保密密钥; • 客户端写密钥(Client write key):用于client 进行数据加密, server进行数据解密的对称保密密钥; • 初始向量(Initialization vectors): 当数据加密采用CBC方 式时,每一个密钥保持一个IV。该字段首先由SSL Handshake Protocol产生,以后保留每次最后的密文数据 块作为IV。 • 顺序号(Sequence number): 每一方为每一个连接的数据 发送与接收维护单独的顺序号。当一方发送或接收一个 Change cipher spec消息时,序号置为0, 最大264-1。
密码参数的生成
pre_master_secret master secret
Client write MAC secret Client write secret Client write IV
Server write MAC secret Server write secret Server write IV
7
SSL协议分析
采用公钥和私钥相结合技术,可在服务器和客户机两端 同时实现支持. 工作在传输层之上,应用层之下(Socket是TCP/IP传输层 上的接口). 优势是它独立于应用层协议,高层的应用层协议(如 HTTP,FTP,Telnet)能透明地建立于SSL协议之上. SSL协议在应用层协议通信之前就已经完成加密算法、通 信密钥的协商,以及服务器认证工作,在此之后,应用 层协议所传送的数据都会被加密,从而保证通信的私密 性。 现行Web浏览器普遍将HTTP和SSL相结合,从而实现安 全通信。(HTTPS)
SSL概述
SSL-Secure Socket Layer(安全套接层协议) 是一种国 际标准的加密及身份认证通信协议,最近发展为 TLS (Transport Layer Security,传输层安全协议) 目标:SSL被设计用来使用TCP提供一个可靠的端到 端安全服务,为两个通讯个体之间提供保密性和完整 性(身份鉴别)。 SSL协议可用于保护正常运行于TCP之上的任何应用 协议,如HTTP、FTP、SMTP或Telnet的通信,最常 见的是用SSL来保护HTTP的通信
连接1 连接2 …… 连接n
连接1 连接2 …… 连接n
SSL的会话与连接
12
会 话
wk.baidu.com
会话状态参数
• 会话标识(Session identifier): 服务器选择的一个任意字节 序列,用以标识一个活动的或可激活的会话状态。 • 实体证书(Peer Certificate): 用于标识实体身份的X.509.v3 证书。客户端可为空。 • 压缩方法(Compression method): 加密前进行数据压缩的 算法,可以选择不压缩。 • 密钥说明(Cipher spec): 指明数据体加密的算法(无,或 DES等),以及散列算法(如MD5或SHA-1)用以计算 MAC。还包括其它参数,如散列长度。 • 标志(Is resumable):一个标志,指明该会话是否能用 于产生一个新连接。
SSL协议层次结构
应用层协议(HTTP、Telnet、FTP、 SMTP等) ——7层 握手协议(Handshake Protocol)层 SSL记录协议(Record Protocol)层 TCP协议——4层 IP协议——3层
SSL 层
11
SSL协议状态
会话(session)是SSL协议中最常用的概念之一 。指客户端和服务器 之间进行的一次联系。会话是由握手协议产生的。定义了一系列可 以由多个连接所共享的加密参数.利用会话可避免为每一连接协商新 的加密参数。 连接(connection)是SSL协议中另外一个重要概念,是一种点对点的 关系,连接是临时的,如一次加密传输等。且每一次连接均与一会话 相对应。SSL中的一个会话可以包含若干次安全连接.而客户端和 服务器端的任意一方都可以拥有多个会话.
18
SSL握手协议层
握手协议层的主要功能是验证实体身份,协商密钥交换算法、压 缩算法和加密算法,完成密钥交换及生成密钥等,用来保护在 SSL记录中发送的数据。 SSL协议的握手过程用到3种协议:SSL握手协议、修改密文协议、 报警协议。 客户和服务器的握手过程是指建立一个会话或恢复一个会话的过 程。在这一过程中,客户和服务器都建立新的会话状态或使用已 存在的会话的会话状态。但每次握手都生成新的密钥、MAC密钥 和IVs,并将这些参数作为当前状态中的元素。 在客户和服务器之间建立一个会话,就必须进行握手过程。 每次握手都存在一个会话和一个连接(不一定仅一个连接),连接 一定是新的,但会话可能是新的,也可能是已存在的。
协议的使用
SSL协议概述
主要用于提高应用程序之间的数据安全系数,实现兼 容浏览器和服务器(通常是Web服务器)之间安全通信。 SSL协议是在Internet基础上提供的一种保证机密性的 安全协议,能使客户机/服务器应用之间的通信不被窃听, 并且始终对服务器进行认证,还可以选择对客户机进行 认证. 目前, SSL协议已成为Internet上保密通信的工业标准. SSL协议包括:服务器认证、客户认证(可选)、 SSL链路上的数据完整性和数据保密性。SSL通过加 密传输来确保数据的机密性,通过消息验证码 (Message Authentication Codes,MAC)机制来 保护信息的完整性,通过数字证书来对发送和接收者 的身份进行认证。
master_secret = PRF(pre_master_secret, "master secret", ClientHello.random + ServerHello.random) key_block = PRF(master_secret, "key expansion", ClientHello.random + + ServerHello.random);
SSL协议的两个子层
SSL记录层:
定义了要传输数据的格式,它位于一些可靠的传输协议之上 (如TCP). 用于封装各种更高层协议。 具体实施压缩与解压缩、加解密、计算与验证MAC等与安全 有关的操作。
SSL握手协议层:
位于SSL记录层之上,被SSL记录层所封装。 允许服务器与客户机在应用SSL协议传输数据之前相互验证身 份、协商加密算法和生成密钥等。 SSL握手过程包括在初次建立SSL连接时,使用SSL记录协议 在支持SSL协议的服务器与客户机之间交换一系列消息。
6
SSL协议概述
在网络上传输的敏感信息(如电子商务、金融业务中的信用卡号 或PIN码等机密信息)都纷纷采用SSL来进行安全保护。 对于电子商务应用来说,使用SSL可保证信息的真实性、完整性 和保密性。但由于SSL不对应用层的消息进行数字签名,因此不 能提供交易的不可否认性,这是SSL在电子商务中使用的最大不 足。 有鉴于此, Netscape公司在从Communicator 4.04版开始的所有 浏览器中引入了一种被称作“表单签名(Form Signing)”的功 能,在电子商务中,可利用这一功能来对包含购买者的订购信息 和付款指令的表单进行数字签名,从而保证交易信息的不可否认 性。 在电子商务中采用单一的SSL协议来保证交易的安全是不够的, 但采用"SSL+表单签名"模式能够为电子商务提供较好的安全性保 证。