HTTPS_SSL加密(HTTP终)

简介: HTTPS_SSL加密(HTTP终)

HTTPS

我们刚刚学完HTTP,咋有来了一个HTTPS呀,这和HTTP有啥关系么?

image.png

我们知道HTTP是用户层协议,是由业界大佬编写的协议模板供我们使用,我们来看看 HTTP存在的问题!


当我们客户端用户要下载一个天天动听app时,因为我们网络传输数据要经过很多中间设备,其中就肯定要经过运营商设备,毕竟这些网络设施都是由他们搞的!当你的http请求通过他们的设备时,他们就可以拿到你的请求,你本来是想下载天天动听的,他就给你返回了一个QQ浏览器,挣你流量,恰烂钱!

我们如何避免这个信息暴露问题呢?

我们知道这里最大的问题就是除了服务器和客户端中间网络传输设备都可以读取到里面的数据内容,就好比传纸条!

我们可以对数据加密!

SSL/TLS

我们就将HTTP进行了升级,引入了SSL加密层!这就是我们的HTTPS!

加密方式:

1.对称加密!

2.非对称加密!


对称加密

如何对数据进行加密呢?


明文: 就是我将我们的数据不进行任何处理直接传输!

密文: 密文通过某种加密方式(密钥)将明文进行加密后传输!

密钥: 通过这里的密钥可以将明文和密文进行转换!


我们可以联系实际生活,这里的密钥就相当于钥匙,通过钥匙我们的客户端和服务器都可以对锁进行解锁操作!


我们的HTTP也是通过这里的密钥进行加密!

对称加密就是通过一个密钥将数据报进行加密操作,然后客户端话服务器通过这个共有的秘钥可以对数据报进行加密和解密!

image.png

这里通过将密钥,双方共享,服务器和客户端就可以都数据报进行加密解密操作!


密钥传输

image.png

现在又有一个问题就是我们的秘钥也是需要进行网络传输的,也就会被中间有些设备拿到!中间设备拿到后,也可以对数据进行解密操作,所以白加密了!


还有就是这里密钥肯定要每一台客户端拥有不一样的密钥,然后将密钥给服务器!如果大家共用一个密钥的话,你想知道密钥开一台客户端就好了!

非对称加密

对称加密存在的问题就是密钥会被其他设备拿到!

我们可不可以对密钥进行加密就解决了这个问题!

这时就引入了非对称加密方式!!

非对称加密就是套娃!我们再给密钥加上一把锁!


这里就引入了私钥和公钥:


公钥:服务器和客户端大家共享的密钥,通过这个密钥可以对对称密钥进行加密!

私钥:只有自己知道的密钥,通过这个密钥可以对对称密钥进行解密操作!

这里我们的公钥,服务器和客户端都会生成一个公钥,然后将公钥发出去,然后大家都拿到了这个公钥,然后私钥留着!然后当服务器和客户端生成一个对称密钥后,会将该对称密钥用这个公钥进行加密后发送,然后我们拿到数据报和加密后的对称密钥后,通过私钥对已经加密后的对称密钥进行解密,拿到对称密钥,然后通过对称密钥对数据报进行解密操作!


可能看完有点头大,就类似一个信箱,我们给邮递员一把锁(公钥),然后邮递员将信(对称密钥)放入信箱后,将信箱锁上(通过公钥对对称密钥进行加密),然后用户通过钥匙(私钥)将信拿到!

image.png


我们一开始将公钥发出去,如果要进行对称密钥传输,就应该事先通过公钥对对称密钥进行加密后再进行传输!而这时中间设备拿到加密后的对称密钥和公钥也无济于事!公钥只能用来加密操作,不能解密!

然后我们的另一方拿到加密后的对称密钥后通过自己私有的私钥对对称密钥进行解密!然后就可以对数据报文进行解密操作了!


重点就是: 公钥(发出去)只能对对称密钥进行加密,私钥自己留着,用来对对称密钥解密!


难道这样就安全了嘛?如果有中间设备自己搞个公钥和私钥冒充会怎么样?

image.png



上面的过程就是中间人攻击,就是被黑客入侵的网络设备,会自己生成假冒公钥和私钥,黑客收到服务器发来的公钥后保存,将自己的公钥发个客户端,然后客户端将对称密钥用黑客的公钥加密,发个黑客,黑客通过自己的私钥解密,然后通过服务器的公钥进行加密发给服务器,如假包换!!!


中间人攻击如何解决呢?


这里存在的问题就是我们无法知道公钥到底是冒充的还是真的!

只要我们可以确定公钥的真实性,就可以解决这个问题!

我们联系实际生活,我们是如何确定一个人的身份呢?

我们可以通过这个人的身份证!

身份证可以造假,就想公钥可以冒充一样,但是我们可以通过身份证在公安区登记的信息,就可以知道这个身份证的真实性!

所以我们这里也是如此,我们引入了第三平台,通过这个第三平台给的证书,就可以保证这里公钥的真实性!

image.png

我们通过这个公证机构就可以避免中间人攻击了

当创建一个服务器后就去这个公证机构登记(类似人一出生就去登记信息),然后将这个公钥数据放在这个证书里发送(类似身份证),客户端拿到证书后去公证机构验明身份!然后再使用加密操作!

这里天天访问公证机构有点繁琐,使用在操作系统内部就有这个公证机构的认证方式,就可以进行本地认证!

目录
相关文章
|
29天前
|
缓存 安全 网络协议
一起深入了解http和https的区别
HTTP适合于非敏感信息的传输,而HTTPS则是在要求安全性、隐私保护及信任机制的现代互联网环境中不可或缺的标准配置。随着网络安全意识的提高和技术的发展,越来越多的网站和服务都转向使用HTTPS,力求在提供便捷服务的同时保障用户数据的安全。HTTPS将成为未来的基本选择。
37 0
一起深入了解http和https的区别
|
3天前
|
SQL 安全 网络安全
IDEA DataGrip连接sqlserver 提示驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接的解决方法
IDEA DataGrip连接sqlserver 提示驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接的解决方法
8 0
|
3天前
|
网络协议 安全 API
Android网络和数据交互: 什么是HTTP和HTTPS?在Android中如何进行网络请求?
HTTP和HTTPS是网络数据传输协议,HTTP基于TCP/IP,简单快速,HTTPS则是加密的HTTP,确保数据安全。在Android中,过去常用HttpURLConnection和HttpClient,但HttpClient自Android 6.0起被移除。现在推荐使用支持TLS、流式上传下载、超时配置等特性的HttpsURLConnection进行网络请求。
5 0
|
6天前
|
缓存 安全 网络协议
【面试必备】HTTP和HTTPS是什么?有什么差异?
HTTP(超文本传输协议)和HTTPS(超文本传输安全协议)是用于在互联网上传输数据的协议。它们都是应用层协议,建立在TCP/IP协议栈之上,用于客户端(如浏览器)和服务器之间的通信。
12 2
|
7天前
|
安全 网络协议 网络安全
网络原理(5)--HTTPS是如何进行加密的
网络原理(5)--HTTPS是如何进行加密的
5 0
|
22天前
|
前端开发 应用服务中间件 网络安全
http转为https,ssl证书安装及nginx配置
http转为https,ssl证书安装及nginx配置
36 1
|
22天前
|
安全 数据安全/隐私保护
深入解析:HTTP和HTTPS的三次握手与四次挥手
在这些握手和挥手过程中,双方交换信息,协商参数,建立或关闭连接,以保证数据的可靠传输。HTTPS在此基础上加入了数字证书验证和加密通信,增加了安全性。这些步骤确保了HTTP和HTTPS协议的通信过程的稳定和安全。
112 0
|
29天前
|
数据采集 缓存 前端开发
http和https请求服务器的时候在请求头部分都带什么到服务器呢?
HTTP和HTTPS请求头基本结构相似,HTTPS多了一层SSL/TLS加密。常见请求头如Accept(指定内容类型)、Authorization(身份验证)、Cookie(会话跟踪)、User-Agent(标识用户代理)等。HTTPS特有的头包括Upgrade-Insecure-Requests(升级到HTTPS)、Strict-Transport-Security(强制使用HTTPS)、Sec-Fetch-*(安全策略)和X-Content-Type-Options、X-Frame-Options等(增强安全性)。实际应用中,请求头会根据需求和安全策略变化。
20 0
|
30天前
|
网络安全 数据安全/隐私保护
JavaMail给QQ邮箱发邮件报错,没有SSL加密
JavaMail给QQ邮箱发邮件报错,没有SSL加密
13 0
|
1月前
|
机器学习/深度学习 人工智能 监控
视觉智能平台常见问题之http转https便捷的转换如何解决
视觉智能平台是利用机器学习和图像处理技术,提供图像识别、视频分析等智能视觉服务的平台;本合集针对该平台在使用中遇到的常见问题进行了收集和解答,以帮助开发者和企业用户在整合和部署视觉智能解决方案时,能够更快地定位问题并找到有效的解决策略。
20 0