HTTPS握手

作用

  • 内容加密 建立一个信息安全通道,来保证数据传输的安全;
  • 身份认证 确认网站的真实性
  • 数据完整性 防止内容被第三方冒充或者篡改

https的采用了对称加密和非对称加密。握手过程中采用非对称加密,得到一个对称加密的秘钥。数据传输的过程中,采用对称加密。

采用非对称加密比较慢,因此只在握手期间采用非对称加密,保证拿到的对称加密的秘钥的安全性,数据传输期间通过对称加密来加密,速度更快。

握手:

对称加密秘钥的生成:

握手期间,client与server两次往来。会生成三个随机数,由这三个随机数组成对称加密的秘钥。

client验证server可靠性:

浏览器第一次收到服务器的ack时,会验证数字证书,一直验证到最顶层的根证书,如果浏览器内置有,则可信,否则不可信。

数据传输:

http报文的内容都会经过TLS层进行对称加密,秘钥是握手时生成的。发送使用秘钥加密,接收时使用秘钥解密。

这里有一个问题,就是利用哪种非对称加密算法,这可能会影响https握手过程中的交换数据。以RSA算法和Diffie-Hellman算法为例,看一下两种加密方式分别经历了什么。

这个是RSA加密的交互过程。

第一个随机数由client生成,第二个随机数由server生成。

第三个随机数由client生成,使用server的公钥加密,并发送给server。第三个随机数即图中的Premaster secret。这个过程中,Premaster secret只有client和server知道,不会泄露。

然后client和server根据三个随机数生成一个session key,即接下来数据传输过程中用到的对称秘钥。

总结来说就是一共生成三个随机数,根据三个随机数创建一个对称加密的秘钥。前两个随机数可以被抓包拿到,但是第三个随机数已经使用非对称加密算法加密过,所以最终生成的秘钥是保密的。

现在的问题就是,对称秘钥的安全靠第三个随机数的不可破解来保证。理论上来说,只要服务器的公钥足够长,那么Premaster secret可以保证不被破解。但是为了足够安全,我们可以考虑把握手阶段的算法从默认的RSA算法,改为 Diffie-Hellman算法(简称DH算法)。

下面是DH算法握手的过程:

与上面client使用RSA公钥加密Premaster secret然后传递的server不同的是,由server发送一个server的DH 参数+private key,client发送一个client的DH参数,那么client和server都能分别通过两个DH参数得到Premaster secret。这样就提高了Premaster secret的安全性。

参考文章:

图解SSL/TLS协议

HTTPs入门, 图解SSL从回车到握手

HTTPS科普扫盲帖

详解https是如何确保安全的?

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏滕先生的博客

加密工具类,提供RSA & AES & DES 等加密解密方法工具类介绍加密解密概念使用方法公钥、私钥生成

54311
来自专栏俞其荣的博客

HTTPS加密原理HeaderBodyFooterReferences

2867
来自专栏JavaEE

spring和springboot中加密连接数据库的信息前言:一、spring中加密连接数据库的信息:二、springboot项目中加密数据库连接信息:总结:

在实际开发中,一些关键的信息肯定是要加密的,否则就太不安全了。比如连接数据库的用户名和密码,一般就需要加密。接下来就看看spring项目和spring boot...

2193
来自专栏技术换美食换不换

TOB服务部署安全模块

1384
来自专栏北京马哥教育

5大导致"SSL证书不被信任"的原因

前言 今天在这里主要总结一下使用SSL的过程中遇到的坑(注意事项)。SSL是什么东西?(请自行搜索) 我(叫龙君)接触SSL证书已经4年了,算上今年,最开始我认...

54010
来自专栏行者悟空

SSH免登陆原理及配置

1521
来自专栏程序员宝库

看图学 HTTPS

之前说到HTTPS,在我的概念中就是更安全,需要服务器配置证书,但是到底什么是HTTPS,为什么会更安全,整套流程又是如何实现的,在脑子里没有具体的概念。所以,...

1736
来自专栏白驹过隙

OpenSSL - RSA非对称加密实现

9749
来自专栏草根专栏

RxJS速成 (下)

Subject Subject比较特殊, 它即是Observable又是Observer. 作为Observable, Subject是比较特殊的, 它可以对多...

3294
来自专栏PHP在线

看图学 HTTPS

之前说到HTTPS,在我的概念中就是更安全,需要服务器配置证书,但是到底什么是HTTPS,为什么会更安全,整套流程又是如何实现的,在脑子里没有具体的概念。所以,...

1424

扫码关注云+社区

领取腾讯云代金券