HTTPS、SSL和TLS

1、HTTPS相关概念

1.1、对称加密和非对称加密

简单描述一下,加密密钥和解密密钥相同,则称为对称加密;加密密钥和解密密钥不同,则称为非对称加密;

对称加密比非对称加密的效率要高。详细的描述的可以查看 对称加密与非对称加密详解 - 浪迹天涯的派大星 - 博客园 (cnblogs.com)

1.2、中间人攻击

顾名思义,就是通过在通讯两端中间,拦截正常的网络通信数据,并进行数据篡改和嗅探,而通信的双方却毫不知情。

1.3、数字证书

用户将自己的信息和公钥提交给认证中心,由认证中心生成数字证书。

数字证书包含证书公开信息和签名,公开信息一般包含:证书的版本、序列号、签名算法、发行机构名称、有效期、所有人名称和公钥,以及签名,如下图:

签名计算步骤:公开信息先进行哈希得到hash值,在由证书颁发机构的私钥对hash值进行RSA加密,得到签名。

1.4、根证书、中间证书、用户证书

根证书:由可信任的CA认证中心颁发,它由自身进行认证,一般初始安装在操作系统和浏览器中,是整个证书链的起点

中间证书:由根证书的私钥计算签名,拥有根证书的签名的是中间证书,中间证书可以利用自己的私钥对用户证书进行颁发

用户证书:用户提交公开信息和自己的公钥,由中间证书私钥计算签名,来得到自己的证书

1.5、证书链

整个认证链从根证书开始,经过中间证书,最终达到用户证书,由于签名只能由证书颁发者的公钥进行验证,所以在根证书正确的前提下,保证了整个链条的安全性

2、SSL/TLS

SSL(Secure Socket Layer)是安全套接字层,TLS(Transport Layer Security)传输层安全是基于SSL3.0设计的协议,实际上相当于SSL的后续版本。

SSL/TLS是一个安全通信框架,属于传输层,上面可以承载HTTP协议和SMTP/POP3协议等。其属于传输层和应用层之间。

3、HTTPS通信流程

此时如果发生中间人攻击,客户端获取的证书其实是中间人的证书,拿到的公钥也是中间人的,发送的请求,中间人自然可以解密,中间人冒充客户端和服务端进行通信,所有的通信对于中间人来说就是透明的。

这里最大的问题就是如何确保客户端获取的公钥是要访问的网站的,所以引入了证书验证,由可信任的认证中心进行颁发,同时由于电脑上有认证中心的根证书,所以可以对网站的证书进行验证,判断是否合法。

4、TLS握手流程

握手流程分为四步:

1、客户端发起请求:

  • ClientHello:客户端TLS版本、客户端随机数、密码套件列表。Wireshark抓包数据如下图:

       

2、服务端发起请求:

  • ServerHello:服务端TLS版本、服务端随机数、确定的密码套件

       

  • Certificate:证书(包含公钥)、Server Key Exchange:密钥交换、Server Hello:服务端Hello结束

         

3、客户端

5、数字证书颁发和验证流程

在保证根证书可信任的前提下,使用根证书的公钥解密中间证书的签名,得到解密的hash值,然后计算中间证书公开信息的hash值,比较 解密得到的hash值和计算出的hash值,如果相等,则中间证书可信;用户证书的验证同理。

如此便可以保证用户证书中的公钥是可信任的。

posted @   浪迹天涯的派大星  阅读(38)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
历史上的今天:
2023-07-12 对称加密与非对称加密详解
点击右上角即可分享
微信分享提示