Https工作原理&TLS握手机制

举报
yd_221104950 发表于 2020/12/10 22:42:04 2020/12/10
【摘要】 Https工作原理&TLS握手机制 @Kyunban Wong 1.HTTPS作用 HTTPS是在HTTP的基础上提供了数据加密的支持,保证了数据: 私密性完整性用来认证客户端和服务端的身份 2.普通HTTP 在普通的HTTP中,数据是明文传输的,很容易出现中间人伪装数据: 面对客户端伪装成服务端,进行窃取数据。面对服务端伪装成客户端,进行窃取数据。 ...

Https工作原理&TLS握手机制

@Kyunban Wong


1.HTTPS作用

HTTPS是在HTTP的基础上提供了数据加密的支持,保证了数据:

  • 私密性
  • 完整性
  • 用来认证客户端和服务端的身份

2.普通HTTP

在普通的HTTP中,数据是明文传输的,很容易出现中间人伪装数据:

  • 面对客户端伪装成服务端,进行窃取数据。
  • 面对服务端伪装成客户端,进行窃取数据。

在这里插入图片描述

3.HTTPS

HTTPS中使用非对称公钥机制对数据进行加密。HTTPS既能验证对方身份,又能基本避免中间人攻击。

在这里插入图片描述

HTTPS的加密是通过TLS(Transport Layer Security)安全传输层协议来实现的。

HTTPS协议在客户端和服务端正常通信之前,会先完成TLS的握手。

Key交换算法的不同,握手过程会也会有所不同,Key交换算法一般有RSA、Diffie Hellman

以下的讲解以RSA为key的交换算法时的TLS的握手过程,由服务器提供单向认证(HTTPS也可以实现双向认证)

在这里插入图片描述

  1. 第一步:浏览器发起ClientHello消息,消息中包括:TLS版本、加密算法集、随机数(客户諯产生);
  2. 第二步:服务器响应一个ServerHello消息,消息中包括:TLS版本、加密算法集、随机数(服务器产生);
  3. 第三步:服务器继续发送一个Certificate消息,附加服务器的证书;
  4. 第四步:服务器发送一个ServerHelloDone消息;
  5. 第五步:浏览器在收到服务器发来的证书后,验证是否是受信任的机构签发的,是否是真实的服务器;
  6. 第六步:认证服务器的身份后,浏览器使用证书中附带的公钥生成premaster secret作为ClientKeyExchange,并把生成的premaster secret传给服务器;
  7. 第七步:服务器接着使用私钥解密得到premaster secret
  8. 第八步:浏览器和服务器分别使用premaster secret和之前收到的对方的随机数生成相同的master key,用于加密和解密后续所有的通信;
  9. 第九步:浏览器向服务器发送ChangeCipherSpec消息,然后发送用master key加密的Finished消息;
  10. 第十步:服务器接收并验证,接着服务器向浏览器也发送ChangeCipherSpec消息,然后发送用master key加密的Finished消息;
  11. 第十一步:浏览器接收并验证,至此TLS握手完成。

文章来源: blog.csdn.net,作者:WongKyunban,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/weixin_40763897/article/details/110944583

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。