HTTPS工作过程!

HTTPS了解

  1. HTTPS 也是一个应用层协议, 是在 HTTP 协议的基础上引入了一个加密层。
  2. HTTP 协议内容都是按照文本的方式明文传输的, 这就导致在传输过程中出现一些被篡改的情况。如运营商劫持。

HTTPS工作过程

① 既然要保证数据安全, 就需要进行 “加密”。
② 网络传输中不再直接传输明文了, 而是加密之后的 “密文”。
③ 加密的方式有很多,但是整体可以分成两大类: 对称加密 和 非对称加密。

其实,HTTPS加密中最主要的就是:对称加密是数据安全的基本保证,非对称加密是保护对称加密的安全,证书为了防止中间人攻击。


数据摘要/签名

数据签名,其实就类似于现实中的签名。

  1. 不同的数据, 生成的 “签名” 差别很大, 这样使用这样的签名就可以一定程度的区分不同的数据。
  2. 常见的生成签名的算法有: MD5 和 SHA 系列。
    以 MD5 为例, 我们不需要研究具体的计算签名的过程, 只需要了解 MD5 的特点:

① 定长: 无论多长的字符串, 计算出来的 MD5 值都是固定长度 (16字节版本或者32字节版本)
② 分散: 源字符串只要改变一点点,最终得到的 MD5 值都会差别很大
③ 不可逆: 通过源字符串生成 MD5 很容易, 但是通过 MD5 还原成原串理论上是不可能的.

正因为 MD5 有这样的特性, 我们可以认为如果两个字符串的 MD5 值相同, 则认为这两个字符串相同。


完整流程!

文字

在客户端的系统中内置了CA证书的的公钥1,服务器申请证书并获得CA机构的私钥1,同时生成了公钥2与私钥2.
客户端发起建立连接的请求,服务器收到请求后将公钥2放入证书,重新计算证书的签名并使用私钥1进行加密,客户端使用公钥1解密获取签名并验证正实数的合法性,然后获取到证书中的公钥2(其实在这里,黑客也是可以解密私钥1拿到公钥2的,但是没有私钥2也没有办法,亦或者是篡改了公钥2后使用私钥2解不开也是会被发现的);然后在客户端生成对称密钥,使用公钥2对对称密钥加密并发送给服务器,服务器收到请求之后使用私钥2解密,获取到对称密钥,接着返回一个确认相应,响应内容使用对称密钥进行加密,客户端收到确认响应之后就确认对方已经获取到对称密钥了;然后客户端就可以使用对称密钥对业务请求进行加密发送给服务器了,服务器收到请求之后使用对称密钥进行解密,获取业务请求的内容,然后使用对称密钥加密业务响应并返回给客户端,客户端使用对称密钥解密获取业务响应的内容。

【为什么后期直接使用对称加解密了?】
答:后续客户端和服务器的通信都只用对称加密即可。 由于该密钥只有客户端和服务器两个主机知道, 其他主机/设备不知道密钥即使截获数据也没有意义。


图文

HTTPS工作过程!_第1张图片

你可能感兴趣的:(Note-JavaEE,https,ssl,http)