美文网首页
白话HTTPS

白话HTTPS

作者: 杨志聪 | 来源:发表于2023-03-19 00:39 被阅读0次

白话HTTPS

HTTP协议是明文传输的协议,安全性极差。HTTPS解决了HTTP的安全问题,因为HTTPS是密文传输:当你使用HTTPS时,数据是使用对称加密算法(一般都是AES)加密后再进行传输的。

TLS

现在我们知道,HTTPS是使用对称加密算法来加密数据的,所以,HTTPS最关键的问题,是客户端和服务端之间,是如何获得这个对称加密算法的秘钥的?答案是TLS。

安全传输层协议(TLS)用于在两个通信应用程序之间提供保密性和数据完整性。

TLS的优势是与高层的应用层协议(如HTTP、FTP等)无耦合。应用层协议能透明地运行在TLS协议之上,由TLS协议进行创建加密通道需要的协商和认证。应用层协议传送的数据在通过TLS协议时都会被加密,从而保证通信的私密性。

TLS

HTTPS不是一种新的协议,HTTPS只是使用了TLS的HTTP。

TLS是由SSL发展而来,所以也叫SSL/TLS。TLS之所以能保证数据的保密性,是因为使用TLS的应用层协议,数据都是通过对称加密算法(一般都是AES)加密过的。

由于对称加密需要通信双方都知道秘钥,所以TLS最关键的问题,是如何让通信双方安全地获得秘钥。TLS是在握手过程中交换这个秘钥的。

TLS握手过程

TLS握手的结果是,客户端和服务端之间获得了对称加密的秘钥。握手过程之所以那么复杂,是为了保证对称加密的秘钥只有客户端和服务端知道。

握手过程中,客户端和服务端双方交换了三个随机数,最后对称加密的秘钥是使用这个三个随机数生成的。这个三个随机数中,随机数1和随机数2都是明文传输的,只有随机数3是使用非对称加密算法(一般是RSA)加密后再传输的,这是保证对称加密秘钥不会泄露的核心。

那随机数3是怎么加密的呢?在传输随机数3前,服务端给客户端发送了数字证书公钥,客户端收到数字证书后,会联系CA,验证数字证书的真实性。通过验证服务端数字证书的真实性,确认了服务端可信。然后,客户端使用服务端发来的公钥加密了随机数3,再传输给服务端。因为只有服务端有相应的私钥,所以只有服务端能够获取到随机数3。

中间人攻击

TLS并不是无懈可击,主要是上面所说的握手过程,是可以被破解的,这种破解方法,叫做中间人攻击。

Man-in-the-middle-attack.png

我们知道HTTPS也是可以抓包的,通过抓包软件是可以获取到HTTPS通信的原文内容的。抓包的原理就是中间人攻击,抓包软件就是那个中间人。

中间人攻击的前提有两个:

  1. 中间人被设置为网络代理。就是说,客户端不是直接和服务端直接通讯,他们中间还隔了一个代理。

  2. 客户端安装了网络代理提供的证书。

满足了上述要求后,中间人就可以在TLS握手过程做手脚了:客户端的TLS握手过程其实是和中间人完成的,由于客户端安装了中间人提供的证书,是可以通过数字证书验证的环节的,所以结果是客户端和中间人完成了对称加密秘钥的互换。

所以,防止中间人攻击的方式也很简单,避免上述两个任意一个环节就能避免中间人攻击。尤其是第二个,你的电脑或者手机千万不要安装来路不明的证书。

总的来说TLS还是很安全的,可以说是目前互联网的基石。没有TLS,就没有安全的网络传输。

相关文章

  • 白话https

    什么是https 浏览器访问web应用中使用到http协议和ssl或者tsl协议的组合称为https。https在...

  • 科普-- 白话HTTPS

    HTTPS是传输协议吗? HTTPS与HTTP有什么关系? HTTPS为什么会安全? 闲扯一下 Mac笔记本、Wi...

  • Https

    白话Https【HTTP】HTTPS 原理详解 https://baijiahao.baidu.com/s?id...

  • 白话 HTTPS & SSL/TLS

    iOS9苹果明确强调了操作系统的安全性,其中的做法之一则是网络请求将从默认的HTTP切换为HTTPS。本文主要描述...

  • 白话HTTPS的加密机制

    在讲主题之前,我们先来区分两个概念:签名和加密有什么区别? 我们从字面意思看: 签名就是一个人对文件签署自己的名字...

  • HTTPS 原理详解

    HTTPS 原理详解白话httpsHttps流程和原理

  • https

    摘自[白话Https]https://www.cnblogs.com/xinzhao/p/4949344.html...

  • 【火焰图】使用火焰图做性能分析

    白话火焰图https://blog.huoding.com/2016/08/18/531[https://blog...

  • 初识 Https,大白话讲解

    本文为原创文章,如需转载请注明出处,谢谢! 概述:1.简述 Https 每个环节都做了什么2.解释 Https 为...

  • Flink-[白话解析] Flink的Watermark机制

    转自:https://bbs.huaweicloud.com/blogs/146333 [白话解析] Flink的...

网友评论

      本文标题:白话HTTPS

      本文链接:https://www.haomeiwen.com/subject/nmverdtx.html