美文网首页
Https协议 - 底层实现原理

Https协议 - 底层实现原理

作者: 黄刚刚 | 来源:发表于2021-03-26 10:08 被阅读0次

学习资料视频地址:https://www.bilibili.com/video/BV1Zr4y1c71C?p=3

SSL协议原理详解 , SSL/TLS协议运行机制的概述 , HTTPS、SSL、TLS三者之间的联系和区别 : 这3篇文章写的都不错 , 我也是从这些文章中理解的 HTTPS , SSL的底层实现原理 .  

SSL/TLS协议详解 : 这是一个系列 , 其中包含了38篇文章来介绍了SSL/TLS协议 , 比较详细也比较通俗易懂 , 是个值得好好阅读的好资料

说明 : 本文中不对TCP/IP协议和HTTP协议做过多的介绍 , 希望读者是已经对TCP/IP协议和HTTP协议有一定了解的基础 , 本文的重点是HTTPS协议底层实现原理 . 用通俗易懂的方式讲明白 , 有一个底层实现原理的概念就行 .  想要了解更多更详细的SSL协议内容及实现过程 , 可以参考文章顶部贴的几篇文章 , 写的都挺不错的 . 而且比我这个详细太多了

正文

HTTPS协议是什么?

HTTPS , 是以安全为目标的HTTP通道 , 在HTTP的基础上通过传输加密 和 身份认证 保证了传输过程的安全性 . HTTPS在HTTP的基础下加入了SSL , HTTPS的安全基础是SSL , 因此加密的详细内容就需要SSL. HTTPS存在不同于HTTP的默认端口及加密/身份验证层(在HTTP于TCP之间) . 这个系统提供了身份验证与加密通讯方法 . 

这段描述是我在百度百科上搜到对HTTPS的描述的简介 , 说的也比较通俗易懂了 , HTTPS就是 HTTP + SSL 形成的一个新的名词 , 它的目标就是安全 , 要做到安全就要靠传输加密 , 传输加密这事儿是SSL在做 , 所以 , 具体怎么做到安全的 , 我们只需要明白SSL协议的原理就行了

SSL的历史

SSL 中文名 安全套接层 , 是由Netscapa公司于1994年开发的 , 用于保障万维网(WWW)通讯的安全 , 主要任务是提供私密性 , 信息完整性和身份认证 , 1995年改版为SSL 2.0 , 1996年改版为SSL 3.0 . 其中1.0版本是没有对外发布过的 , 并且由于漏洞原因 , SSL 2.0版本也是昙花一现就更新了3.0版本 . 

SSL 3.0版本在1999年被互联网标准化组织ISOC接替 , 并基于SSL 3.0版本做了一些符合互联网标准化的轻微改动 , 发布了SSL 3.0的升级版TLS 1.0版本 , TLS 1.0版本也可以称之为SSL 3.1 , 2006年和2008年TLS进行的两次版本升级 , 分别是TLS 1.1 和 TLS 1.2 , 时隔10年 , 在2018年的10月 , 发布了TLS 1.3版本 , 并且就在TLS 1.3发布后的不久 , 苹果 , 谷歌 , Mozilla和微软便联合声明计划在2020年初取消对TLS 1.0 和 TLS 1.1的支持 . 

通俗易懂的介绍下SSL的加密传输原理

SSL的加密传输数据的核心是在客户端与服务端之间的数据怎么进行加密解密 , 并且加密后的数据就算被别有用心的人拦截了 , 别人拿到的也只是加密后的数据 , 除了真实在通讯传输数据的双方 , 谁也解不开加密后的密文 , 这样 , 我们客户端与服务端的通信数据在传输过程中 , 数据包在各个网关 , 各个节点进行传输就不再担心被拦截 , 被篡改的风险了 , 说道这里了 , 那么到底是怎么实现的呢 ? 

这里我们需要补一个知识 , 加密算法 , 对称加密 和 非对称加密 的概念 , 简单的说 , 对称加密就是加密和解密都使用同一个密码 , 非对称加密就是加密和解密使用不同的密码 , 这里就有公钥和私钥的区分了 , 私钥加密的数据能用公钥解密 , 公钥加密的数据能用私钥解密 , 但是公钥加密的数据公钥不能解密 , 所以在算法的区别上 , 非对称加密的方式在性能上不如对称加密 . 

讲回重点 , SSL加密传输数据的核心原理 , 核心是在ssl握手建立ssl连接阶段,客户端请求服务端请求建立ssl连接,第一个请求数据包采用明文传输,携带客户端使用的ssl协议版本,支持的加密套件,还有一个随机数等等参数,服务端收到消息后也采用明文传输回复一个数据包,携带确定ssl版本,加密套件,随机数等等参数,并且发送Ca域名证书给客户端,服务器的ca域名证书是ca机构根据ca证书的私钥加密生成的,所以客户端可以使用操作系统内置的ca证书的公钥进行解密,能够解密就算是信任了证书确实是ca机构颁发的,所以不担心证书被非法篡改,信任了证书没被篡改后,通过解密服务器证书获得的服务器的IP,域名等等信息进行判断服务端的真实性,并且从服务器证书中获得了服务器证书公钥,客户端使用服务端的随机数+自己的第一个包传递的随机数来重新生成一个字符串作为通信加密的对称加密密钥,并且使用服务器证书的公钥进行加密传输给服务端,客户端是使用公钥加密的,只有服务端可以使用私钥解密后得到通信加密使用的对称加密密钥,然后客户端和服务端会再次各发出一个使用对称加密后的数据包,双方都能解密,则完成了ssl连接的建立,并且双方都拿到了对称加密的密钥,后续的通讯传输都加密解密就行了

相关文章

网友评论

      本文标题:Https协议 - 底层实现原理

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