Https工作原理&TLS握手机制
【摘要】 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也可以实现双向认证)
- 第一步:浏览器发起
ClientHello
消息,消息中包括:TLS版本、加密算法集、随机数(客户諯产生); - 第二步:服务器响应一个
ServerHello
消息,消息中包括:TLS版本、加密算法集、随机数(服务器产生); - 第三步:服务器继续发送一个
Certificate
消息,附加服务器的证书; - 第四步:服务器发送一个
ServerHelloDone
消息; - 第五步:浏览器在收到服务器发来的证书后,验证是否是受信任的机构签发的,是否是真实的服务器;
- 第六步:认证服务器的身份后,浏览器使用证书中附带的公钥生成premaster secret作为ClientKeyExchange,并把生成的premaster secret传给服务器;
- 第七步:服务器接着使用私钥解密得到premaster secret;
- 第八步:浏览器和服务器分别使用premaster secret和之前收到的对方的随机数生成相同的master key,用于加密和解密后续所有的通信;
- 第九步:浏览器向服务器发送
ChangeCipherSpec
消息,然后发送用master key
加密的Finished消息; - 第十步:服务器接收并验证,接着服务器向浏览器也发送
ChangeCipherSpec
消息,然后发送用master key
加密的Finished消息; - 第十一步:浏览器接收并验证,至此TLS握手完成。
文章来源: blog.csdn.net,作者:WongKyunban,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/weixin_40763897/article/details/110944583
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)