HTTPS 认识的总结

版权声明:本文为博主原创文章,未经博主允许不得转载 https://blog.csdn.net/u011692041/article/details/79265498

前言

首先特别感谢各位分享内容的博主,这里对我学习到的做一个总结

HTTPS 是什么

其实 HTTPS 就是 HTTP + SSL/TLS 的单词的缩写
SSL 是什么这里不做阐述,贴出一个某度的标准解释:
点我了解SSL(Secure Sockets Layer)
点我了解TLS(Transport Layer Security)

HTTPS 用白话文的形式来阐述就是在原有的 HTTP的架构中 加入了 TLS/SSL 等安全传输协议
从而让HTTP变得更安全
在 HTTP 的下层加入SSL层或者TLS层,兼容原有的HTTP

TLS/SSL 做了什么

1)认证用户和服务器,确保数据发送到正确的客户机和服务器;
2)加密数据以防止数据中途被窃取;
3)维护数据的完整性,确保数据在传输过程中不被改变。

在安全传输层大概做了这么几件事.下面我会细说是如何实现这些的!

TLS 是 SSL 的继承者,所以这里以 SSL 作为阐述

SSL

SSL 分为两层,高层握手协议层 (SSL HandShake Protocol Layer)和 底层纪录协议层(SSL Record Protocol Layer)

下面两段摘自某度某科

SSL握手协议层包括SSL握手协议(SSL HandShake Protocol)、SSL密码参数修改协议(SSL Change Cipher Spec Protocol)、应用数据协议(Application Data Protocol)和SSL告警协议(SSL Alert Protocol)。握手层的这些协议用于SSL管理信息的交换,允许应用协议传送数据之间相互验证,协商加密算法和生成密钥等。SSL握手协议的作用是协调客户和服务器的状态,使双方能够达到状态的同步

SSL纪录协议层的作用是为高层协议提供基本的安全服务。SSL纪录协议针对HTTP协议进行了特别的设计,使得超文本的传输协议HTTP能够在SSL运行。纪录封装各种高层协议,具体实施压缩解压缩、加密解密、计算和校验MAC等与安全有关的操作

整个 HTTPS 从请求到返回信息过程

{一个随机字符串}[私钥|RSA] 表示用RSA私钥加密一个字符串,下面都会以这样子来表示,请谅解

Socket啥啥的三次握手。。。这里省略了

step1:

客户端像服务端发送一个请求
“客户端”->”服务器”:你好
as
step2:
服务端给客户端发送自己的数字证书。
“服务器”->”客户端”:你好,我是服务器,这里是我的数字证书
证书中有一个公钥,用于加密信息,私钥在服务端保存

step3:验证证书和验证服务器

1:”客户端” 收到服务器的证书以后,会自动去验证这个证书是不是真实有效的,是不是隶属于这个服务器的.当你平时浏览一些HTTPS的网址的时候,浏览器会弹出证书无法验证的警告的信息,就是这一步的作用,当你手动选择信任那就是告诉浏览器这个证书是有效的,当然这样子是有风险的,不建议这么做
2:”客户端” 生成一个随机的字符串给服务器,让服务器使用私钥加密,服务器发送回来密文,然后用公钥解密,和原来的字符串进行比较,从而验证服务器的真实性
“客户”->”服务器”:向我证明你就是服务器,这是一个随机字符串 {我是随机字符串}
“服务器”->”客户”:{客户端发送过来的随机字符串}[私钥|RSA]

step4:协商接下来的数据加密方式

由于已经验证了服务器的真实性,那么接下来就要传送真实的数据了.

委婉待续……

猜你喜欢

转载自blog.csdn.net/u011692041/article/details/79265498