关于ssl:一文带你了解-SSL-协议

3次阅读

共计 2282 个字符,预计需要花费 6 分钟才能阅读完成。

什么是 SSL 简称是 SSL,全称 Secure Sockets Layer 安全套接字协定,个别咱们在学习 SSL 的时候,都会和 TLS 一起来学习的,为什么呢? 因为 SSL 和 TLS 都是为网络通信提供平安及数据完整性的一种平安协定。TLS 与 SSL 在传输层与应用层之间对网络连接进行加密。咱们先看 SSL 协定,而后在看 TLS 协定。SSL 协定位于 TCP/IP 协定与各种应用层协定之间,为数据通讯提供平安反对。SSL 协定可分为两层:SSL 记录协定 (SSL Record Protocol):它建设在牢靠的传输协定(如 TCP) 之上,为高层协定提供数据封装、压缩、加密等基本功能的反对。SSL 握手协定(SSL Handshake Protocol):它建设在 SSL 记录协定之上,用于在理论的数据传输开始前,通信单方进行身份认证、协商加密算法、替换加密密钥等。要说 SSL 协定咱们先来看看构造,

SSL 的体系结构中蕴含两个协定子层,其中底层是 SSL 记录协定层 (SSL Record Protocol Layer); 高层是 SSL 握手协定层(SSL HandShake Protocol Layer)SSL 记录协定层的作用是为高层协定提供根本的平安服务的,而 SSL 握手协定层是用于 SSL 治理信息的替换,容许利用协定传送数据之间互相验证,协商加密算法和生成密钥的。SSL 的工作过程 SSL 的工作过程实际上是分为了两个局部,一个是发送,而另一个就是接管,每个局部所解决的事件也是不一样的,毕竟一个是发送一个是接管。发送过程:(1) 从下层承受要发送的数据 (包含各种音讯和数据);(2) 对信息进行分段,分成若干记录;(3)应用指定的压缩算法进行数据压缩;(4)应用指定的 MAC 算法生成 MAC;(5)应用指定的加密算法进行数据加密;(6)增加 SSL 记录协定的头,发送数据。到了这个地位,发送过程就曾经完结,接下来就是接管的过程了。接管过程:(1)接收数据,从 SSL 记录协定的头中获取相干信息;(2)应用指定的解密算法解密数据;(3)应用指定的 MAC 算法校验 MAC;(4)应用压缩算法对数据解压缩 (在须要进行);(5) 将记录进行数据重组;(6)将数据发送给高层。(7)SSL 记录协定解决的最初一个步骤是附加一个 SSL 记录协定的头,以便形成一个 SSL 记录。SSL 记录协定头中蕴含了 SSL 记录协定的若干管制信息。如果面试官问你,简述 SSL 的工作流程? 如果你这么说,感觉就不是那么的给力,你这时候就能够给他辨别一下了,就是服务器认证阶段,和用户认证的阶段了。服务器认证阶段:(1)客户端向服务器发送一个开始信息“Hello”以便开始一个新的会话连贯;(2)服务器依据客户的信息确定是否须要生成新的主密钥, 如须要则服务器在响应客户的“Hello”信息时将蕴含生成主密钥所需的信息;(3)客户依据收到的服务器响应信息, 产生一个主密钥, 并用服务器的公开密钥加密后传给服务器;(4)服务器复原该主密钥, 并返回给客户一个用主密钥认证的信息, 以此让客户认证服务器。用户认证阶段: 在此之前, 服务器曾经通过了客户认证, 这一阶段次要实现对客户的认证。经认证的 服务器发送一个发问给客户, 客户则返回 (数字) 签名后的发问和其公开密钥, 从而向服务器提供认证。把这玩意给面试官一说,没啥故障吧。SSL 的加密形式说到加密,这就有点深刻了,加密算法次要分为了两大类。

第一类:对称加密第二类:非对称加密什么事对称加密呢? 对称式加密实际上就是加密和解密应用同一个密钥,通常称之为“Session Key”这种加密技术在当今被宽泛采纳,如美国政府所采纳的 DES 加密规范就是一种典型的“对称式”加密法,它的 Session Key 长度为 56bits。而非对称加密就略微简单了,非对称式加密就是加密和解密所应用的不是同一个密钥,通常有两个密钥,称为“公钥”和“私钥”,它们两个必须配对应用,否则不能关上加密文件。这里的“公钥”是指能够对外颁布的,“私钥”则不能,只能由持有人一个人晓得。它的优越性就在这里,因为对称式的加密办法如果是在网络上传输加密文件就很难不把密钥通知对方,不论用什么办法都有可能被他人窃听到。而非对称式的加密办法有两个密钥,且其中的“公钥”是能够公开的,也就不怕他人晓得,收件人解密时只有用本人的私钥即能够,这样就很好地防止了密钥的传输安全性问题。如果应用的话,各位想怎么是用呢? 依据方才阿粉说的服务器认证和用户认证了,那么就持续来剖析一下这个过程中 SSL 是如何加密的。简略说:(1)认证服务器 (2)协商会话秘钥 (3)加密传输然而如果你敢这么说,你会被锤死。强制在合成一下:第一步:客户端给出反对 SSL 协定版本号,一个客户端随机数 (Client random,请留神这是第一个随机数),客户端反对的加密办法等信息; 第二步:服务端收到信息后,确认单方应用的加密办法,并返回数字证书,一个服务器生成的随机数(Server random,留神这是第二个随机数) 等信息; 第三步:客户端确认数字证书的有效性,而后生成一个新的随机数 (Premaster secret),而后应用数字证书中的公钥,加密这个随机数,发给服务端。第四步:服务端应用本人的私钥,获取客户端发来的随机数(即 Premaster secret);(第三、四步就是非对称加密的过程了) 第五步:客户端和服务端通过约定的加密办法(通常是 AES 算法),应用后面三个随机数,生成对话密钥,用来加密接下来的通信内容; 这是不是就实现了呢? 你学会了么?

参考链接:
2 Ways to Fix SSL_ERROR_RX_RECORD_TOO_LONG

正文完
 0