`
逆风的香1314
  • 浏览: 1453405 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
阅读更多
 
1. 用户浏览器将其SSL版本号、加密设置参数、与session有关的数据以及其它一些必要信息发送到服务器。
2. 服务器将其SSL版本号、加密设置参数、与session有关的数据以及其它一些必要信息发送给浏览器,同时发给浏览器的还有服务器的证书。如果配置服务器的SSL需要验证用户身份,还要发出请求要求浏览器提供用户证书。
3. 客户端检查服务器证书,如果检查失败,提示不能建立SSL连接。如果成功,那么继续。
4. 客户端浏览器为本次会话生成pre-master secret,并将其用服务器公钥加密后发送给服务器。
5. 如果服务器要求鉴别客户身份,客户端还要再对另外一些数据签名后并将其与客户端证书一起发送给服务器。
6. 如果服务器要求鉴别客户身份,则检查签署客户证书的CA是否可信。如果不在信任列表中,结束本次会话。如果检查通过,服务器用自己的私钥解密收到的pre-master secret,并用它通过某些算法生成本次会话的master secret。
7. 客户端与服务器均使用此master secret生成本次会话的会话密钥(对称密钥)。在双方SSL握手结束后传递任何消息均使用此会话密钥。这样做的主要原因是对称加密比非对称加密的运算量低一个数量级以上,能够显著提高双方会话时的运算速度。
8. 客户端通知服务器此后发送的消息都使用这个会话密钥进行加密。并通知服务器客户端已经完成本次SSL握手。
9. 服务器通知客户端此后发送的消息都使用这个会话密钥进行加密。并通知客户端服务器已经完成本次SSL握手。
10. 本次握手过程结束,会话已经建立。双方使用同一个会话密钥分别对发送以及接受的信息进行加、解密。
 
1 SSL通讯示意图
    SSL通讯示意图如图1所示:
    2 SSL通讯说明
    在该部分,将对图1所示的示意图进行说明。为了说明的方便,在本文中称客户端为B,服务器端为S。
    STEP 1: B——〉S(发起对话,协商传送加密算法)
    你好,S!我想和你进行安全对话,我的对称加密算法有DES,RC5,我的密钥交换算法有RSA和DH,摘要算法有MD5和SHA。
    STEP2: S——〉B(发送服务器数字证书)
    你好,B!那我们就使用DES-RSA-SHA这对组合进行通讯,为了证明我确实是S,现在发送我的数字证书给你,你可以验证我的身份。
    STEP 3: B——〉S(传送本次对话的密钥)
    (检查S的数字证书是否正确,通过CA机构颁发的证书验证了S证书的真实有效性后。生成了利用S的公钥加密的本次对话的密钥发送给S)
    S, 我已经确认了你的身份,现在将我们本次通讯中使用的对称加密算法的密钥发送给你。
    STEP4: S——〉B(获取密钥)
    (S用自己的私钥解密获取本次通讯的密钥)。
    B, 我已经获取了密钥。我们可以开始通信了。
    STEP5: S<——>B(进行通讯)
    说明:一般情况下,当B是保密信息的传递者时,B不需要数字证书验证自己身份的真实性,如电子银行的应用,客户需要将自己的账号和密码发送给银行,因此银行的服务器需要安装数字证书来表明自己身份的有效性。在某些B2B应用,服务器端也需要对客户端的身份进行验证,这时客户端也需要安装数字证书以保证通讯时服务器可以辨别出客户端的身份,验证过程类似于服务器身份的验证过程。
    此外需要说明的是,在一些电子商务的应用中,可能还会使用到电子签名,或者为了信息交换的更加安全,会增加电子签名和消息校验码(MAC)。
 
为了便于了解SSL,下面在简要介绍一下信息加密相关知识。使用密钥类型加密信息的加密算法可以分为以下几类:HASH 编码、对称加密和非对称加密三类。
    HASH 编码是使用HASH算法从任意长度的消息中计算HASH值的一个过程,HASH值可以说是消息的指纹,因为对于任何不同的消息,几乎总有不同的HASH值。因此在SSL通讯过程中,可以对消息的HASH值进行加密,确保传递的消息在传输过程中没有被修改。
    非对称加密或称之为公钥加密使用数学上相关的两个数值来对信息进行编码(加密),其中一个数字称为公钥,另一个称为私钥。公钥加密的信息可以用私钥解密,私钥加密的信息可以用公钥解密。由于公钥可以大面积发放,因此公钥加密在SSL加密通信中应用于对密钥的加密或者进行数字签名。
    对称加密和非对称加密相比的区别在于对称加密中,加密信息和解密信息使用同样的密钥,因此该密钥无法公开。但是其具有加密、解密快速的特点。
    SSL通讯中,首先采用非对称加密交换信息,使得服务器获得浏览器端提供的对称加密的密钥,然后利用该密钥进行通讯过程中信息的加密和解密。为了保证消息在传递过程中没有被篡改,可以加密HASH编码来确保信息的完整性。 
分享到:
评论

相关推荐

    ssl握手协议

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

    SSL握手协议的研究

    SSL握手协议是安全套接字层(Secure Sockets Layer)的核心组成部分,用于在客户端和服务器之间建立安全的通信通道。其主要目标是确保双方的身份认证、协商加密算法以及交换会话密钥。SSL握手协议包括多种不同的握手...

    国密SSL握手协议抓包

    国密SSL握手协议抓包

    论文研究-SSL握手协议中客户端平衡密钥交换算法.pdf

    由于在SSL握手协议中最耗费计算资源和造成客户端与服务器端计算不平衡的步骤是服务器端解密运算,提出了客户端平衡的密钥交换算法,用来加速SSL会话的初始化和承担服务器端的解密的预运算。对算法中的同时对多个客户...

    SSL协议与SET协议分析

    - **SSL握手协议**:用于在客户端和服务器之间进行身份认证,并协商加密算法和密钥。 - **SSL更改密码说明协议**:用于通知对方密码已被更改。 - **SSL警告协议**:用于在发生错误时向另一方发出警告。 - **SSL...

    SSL协议详解

    三、SSL握手协议 握手协议是SSL的核心部分,负责协商加密算法、交换密钥、验证身份等关键步骤,确保双方可以安全地开始通信。 1. 客户端初始化:客户端发送一个“ClientHello”消息,包含支持的SSL版本、加密套件和...

    论文研究-基于SSL协议的可信应用及实现.pdf

    2. 改进握手协议:对SSL握手协议进行扩展,增加信任协商的消息类型和交互步骤。在握手阶段,除了现有的Client Hello、Server Hello等消息之外,还需要设计新的消息类型用于传输信任协商的相关信息。 3. 引入信任...

    SSL协议(.doc)

    在SSL握手协议阶段,客户端和服务器互相交换信息,包括各自的证书(用于身份验证)、支持的加密套件等,以便确定安全的通信参数。一旦握手完成,双方就能在安全的环境中交换应用数据,直至连接结束或需要更新安全...

    TLS(SSL)协议简述.pptx

    SSL协议包含两个子协议:SSL记录协议和SSL握手协议。记录协议负责数据的格式化、压缩、解压、加密和解密;握手协议则在建立连接时执行,包括一系列消息交换,以完成身份验证、加密算法协商和共享密钥的生成。 四、...

    SSL安全协议(中文版).docx

    SSL协议主要由两部分构成:SSL记录层协议和SSL握手协议。 SSL记录层协议是建立在可靠的传输层协议,如TCP协议之上,负责对上层协议的数据进行封装和解封装,并提供加密和MAC(消息验证码)以确保数据的安全性和完整...

    SSL协议的分析及实现

    SSL握手协议是关键部分,它负责协商加密算法、MAC算法和会话密钥,以及进行服务器和客户端的身份验证。握手协议包括多个步骤,如交换版本信息、随机数、证书、密钥交换和握手结束等,确保双方能安全地进行通信。 ...

    网络安全协议课程设计报告SSL协议书范本.doc

    SSL握手协议确保双方身份的真实性,通过非对称密钥算法进行身份验证,并通过交换对称密钥来提高效率,这些密钥用于后续的数据加密。 SSL协议的结构设计使其能够独立于操作系统和Web服务器,为TCP/IP连接提供一个...

    关于SSL安全协议-----

    4. **SSL握手协议**:负责协商当前会话的状态参数,包括协议版本、密码算法的选择、相互认证(如果需要的话)等。握手协议包括交换Hello消息、密码参数、证书信息等一系列步骤。 5. **应用数据协议**:应用层的数据...

    网络安全协议课程设计SSL协议的安全性研究

    SSL协议分为两层:SSL记录协议和SSL握手协议。SSL记录协议是基础层,它负责数据封装、压缩和加密,以确保数据在传输过程中不被窃取或篡改。记录协议中,数据被分成多个记录进行传输,每个记录包含一个记录头和记录...

Global site tag (gtag.js) - Google Analytics