lyp123

首页 » 编程 » 正文

浅析HTTPS

2021-06-12 23:06编程971人阅读

好久之前有发过如何部署https的文章,今天来和大家分享一下其工作原理吧。

1.为什么

要理解HTTPS出现的原因首先需要解释中间人攻击,中间人攻击指的是在密码学计算机安全领域中是指攻击者与通讯的两端分别创建独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者完全控制。http协议很容易发生中间人攻击的原因是其发送的内容都是明文传输的,中间人很容易在DNS服务或者代理服务上做手脚来修改双方交换的内容,这种时候大多需要非对称加密类保证用户数据的安全性,但是非对称加密的前提是双方必须都要有对方公钥对应的私钥才能保证安全,而私钥的传输又成了问题,HTTPS的出现就是为了解决相关的问题的。

2.概念

HTTPS 在HTTP 的基础下加入SSL/TSL,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。SSL/TLS 的工作原理是通过称为X.509 证书的数字文档将网站和公司等实体的身份绑定到加密密钥对。每个密钥对由一个私钥和一个公钥组成。私钥是安全的,公钥可以通过证书广泛分发。一对私钥和公钥之间的特殊数学关系意味着可以使用公钥加密一条只能用私钥解密的消息。此外,私钥的持有者可以用它来签署其他数字文档(如网页),任何拥有公钥的人都可以验证这个签名。

3.过程简析

https证书下载下来之后是两个文件,如下:

image-20210612224659709

分为私钥和证书文件,这里的证书文件对于所有用户都是公开透明的,当用户请求连接时,服务器会返回证书文件,而客户端会首先根据根证书验证证书的真伪,首先使用CA颁发的公钥对证书进行解密,这里就可以获取到证书中有关于域名以及到期时间以及服务器公钥等相关信息,如下:

image-20210612225327155

这里有人可能会问,也可以自己造一个证书伪造身份啊,这里的证书是CA用私钥加密的,他人是无法解密的,所以说到这里客户端已经验证了服务器的身份,然后就是客户端需要保证自己发出的信息的安全性,这里就是基于传统的TCP协议进行加密了,还记得前面通过证书传输回来的公钥么,这里客户端将自己生成的随机数使用公钥加密之后传输给服务器,然后服务器通过私钥解密出随机数,而这个随机数的作用就是对文章进行对称加密解密的秘钥,一开始说的交换秘钥的问题就这样解决了。

img

添加新评论