`
aiquantong
  • 浏览: 112728 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ssl 协议流程

阅读更多

最近在看公司的SSL协议实现,现将其流程总结如下:

 

 

步骤解释如下:


1.    client -> ClientHello -> server。

(1). ClientHello 消息体 = Client.Version (客户端协议版本)+ClientHello.Timestamp( 客户端时间戳) +ClientHello.Random (客户端随机数)+会话sessionID +CipherSpecs (client支持的算法集)+Certificate.SerialNumber( 服务器证书序列号)。


2.    server -> ServerHello -> client。


(1). server创建会话session ID ,缓存ClientHello.TimestampClientHello.Random ,根据CipherSpecs 的支持加密集合和server 自己支持的加密集合选择本次会话的加密算法集CipherSuite


(2).ServerHello 消息体 = Server.Version( 服务器协议版本号) +ServerHello.Timestamp (服务器时间戳)+ServerHello.Random( 服务器随机数) +sessionID (服务器会话)+CipherSuite (本次会话指定的加密算法)+ServerCertificate( 服务器公钥证书)


(3).如要验证client身份,发送CertificateRequest


3.    client -> ClientKeyExchange -> server


(1). client缓存ServerRNS(服务器随机数)ServerCertificate(服务器证书) +sessionID (服务器会话)+CipherSuite (本次会话指定的加密算法集) ,生成客户端随机数(ClientRNC)。


(2). 用 客户端协议版本号+ 随机数 生成客户端预主密钥premaster secret [PMS ], 使用 服务器证书公钥 加密 (PMS + ServerRNC }

 

(3). 如果服务器发送CertificateRequest 按顺序连接,使用客户端的私钥签名,在CertificateVerify 中发送这个签名。

 

(4). 发送ChangeCipherSpec 声明切换到加密信道传输

 

(5). 用(PMS,ServerRNS,ClientRNC)计算客户端主密钥master secret[MS ] ,生用MS成信道验证的Finished 消息。将Finished 之前发出的和接收到消息(不包括Finished 本身)的二进制数据,按照顺序连接后,使用MSPRF 签名。


4.    server -> ChangeCipherSpec -> client

 

(1). server使用私钥解密并取出{PMSRNC} 。使用PMSRNC 、RNS 计算MS

 

(2).    生成服务器的预主密钥premaster secret2 [PMS2 ] 。使用PMS2RNCRNS 生成服务器主密钥master secret2 [MS2 ] ,在会话中保存MS2 作为传输密钥。

 

(3).    如果有ClientCertificate ,验证相关信息。验证客户端的Finished 信息。如果错误,返回标准失败信息。

 

(4).    生成服务器的Finished ,将Finished 之前发出的和接收到消息(不包括Finished 本身)的二进制数据,按照顺序连接后,使用MSPRF 签名。

 

(5).    回传客户端消息 = ServerKeyExchange[用MS对称加密(PMS2)] +确认加密算法集ChangeCipherSpec +发送自己的Finished 消息。

 

5.    client收到server信息后:

 

(1).    验证服务器的Finished 消息。如失败,切断当前连接。

 

(2).    根据协商好的对称加密算法,使用本地保存的MSServerKeyExchange 。使用PMS2RNCRNS 生成MS2 作为session 密钥。在缓存中保存RNS2


 

  • 大小: 97.5 KB
分享到:
评论

相关推荐

    TLS/SSL协议文档,简单易懂

    TLS/SSL 协议流程可以分为三个阶段:握手协议、记录协议和警报协议。 握手协议 握手协议是 TLS/SSL 协议的第一阶段,该阶段的主要目的是建立加密通道。在握手协议阶段,客户端和服务器之间将交换一些必要的信息,...

    SSL协议与SET协议分析

    ### SSL协议与SET协议分析 #### 一、SSL协议详解 ##### 1.1 SSL协议概述 SSL(Secure Socket Layer)安全套接层协议是由Netscape公司在1994年设计并推出的加密协议,旨在为互联网上的数据传输提供安全保护。SSL...

    安全套接字SSL协议的工作原理

    SSL协议的工作流程包括三个主要部分:握手协议、记录协议和警报协议。握手协议负责初始化安全连接,包括交换证书、协商加密算法和建立会话密钥。记录协议则负责将应用层的数据分割成块,进行加密和MAC(Message ...

    SSL&TLS协议簇加解密流程

    SSL/TLS协议的核心流程包括以下几个步骤: 1. **Client Hello**:客户端向服务器发送Hello消息,包含随机数(用于后续密钥生成)、支持的加密算法和压缩方法等信息。 2. **Server Hello**:服务器回应Hello消息,...

    ssl 协议简介 原理 过程

    #### 四、SSL协议的工作流程 1. **握手阶段:** 客户端与服务器通过握手协议交换证书、协商加密算法和密钥等信息,确保双方使用相同的加密算法和密钥进行后续通信。 2. **密钥交换:** 双方基于协商好的算法生成...

    ssl握手协议

    SSL 握手协议 SSL 握手协议是 SSL 协议的核心组件之一,它负责客户端和服务器之间的身份认证和加密通信。在 SSL 握手协议中,客户端和服务器之间进行了多次交互,以确保身份认证和加密通信的安全性。 SSL 握手协议...

    SSL协议V3.0中文版

    SSL V3.0是SSL协议的第三个版本,发布于1996年,其设计目标包括建立安全连接、保证互操作性和可扩展性,并尽可能提高效率。 SSL协议主要由两层构成: 1. **SSL记录层协议**:这是SSL协议的基础,它负责对高层协议...

    SSL协议详解

    SSL协议的工作流程包括服务器认证阶段和用户认证阶段,这两个阶段确保了双方身份的真实性。然而,SSL协议存在的问题在于它只提供双方认证,对于多方电子交易场景下的安全性和信任关系协调不足。为解决这个问题,SET...

    ssl_tls协议RFC5246文档_ssl_ssl标准文档_

    本文将深入探讨SSL/TLS协议的核心概念、工作流程以及其在RFC5246中的规定。 SSL/TLS协议的主要目标是提供数据的机密性、完整性和身份验证。它通过使用公钥基础设施(PKI)和数字证书来实现这些目标。PKI允许用户...

    SSL协议标准中文翻译版

    SSL(Secure Sockets Layer)协议是互联网上广泛使用的安全协议,用于在客户端和服务器之间建立安全的通信...尽管翻译可能存在不准确之处,但基本概念和流程仍能清晰传达,对于研究和实现SSL协议的人员具有一定的价值。

    电子商务支付与安全概述.pptx

    SSL协议流程包括握手阶段,其中涉及证书交换、密钥协商等步骤,确保双方的身份验证和通信安全。SSL协议在电子商务中广泛应用于HTTPS,为在线支付提供安全保障。 SET(安全电子交易)协议是针对信用卡在线支付设计的...

    电子商务支付与安全模块8.pptx

    SSL协议流程包括握手阶段,双方协商加密算法,验证服务器身份,并建立共享的秘密,这个秘密用于后续的对称加密通信,以提高效率。 SET协议则是针对信用卡在线支付设计的,旨在提供比SSL更高的安全级别。SET协议不仅...

    安全套接层协议SSL(PPT 77页).pptx

    【SSL协议的工作流程】 SSL协议的建立通常包含以下六个步骤: 1. **连接建立**:客户端向服务器发送一个随机的“hello”消息,包含客户端支持的SSL版本和加密算法列表。 2. **密码交换**:服务器回应并选择一个...

    Qt实现的SSL通信客户端和服务器

    SSL协议包含握手协议、记录协议、密钥交换协议等多个子协议,其中握手协议用于建立安全连接,记录协议则处理实际的数据传输。 在Qt中,实现SSL通信主要依赖于`QTcpSocket`和`QSslSocket`类。`QTcpSocket`是基础的...

    使用SSL协议实现客户 服务器之间安全通信.pdf

    实验过程中,学生将深入理解SSL协议的工作流程,掌握数字证书的申请、颁发、安装和管理,以及Web服务器的SSL配置。这有助于提高他们对网络安全和隐私保护的认识,对于IT行业的实际操作技能培养具有重要意义。

    安全套接层协议SSL.ppt

    SSL协议由两部分子协议组成:SSL握手协议和SSL记录协议。SSL的主要目标是提供数据的私密性、确认性和可靠性,确保在网络传输过程中的数据安全。 7.1 SSL协议概述 SSL协议的位置在应用层和传输层之间,主要负责在...

    第7章 安全套接层协议(SSL).pptx

    SSL协议由两部分组成:SSL握手协议和SSL记录协议。 **7.1 SSL协议概述** SSL协议在互联网的七层模型中工作于会话层,其目的是为网络通信创建一个安全的通道。这个通道具备私密性、确认性和可靠性三个特点,确保数据...

Global site tag (gtag.js) - Google Analytics