文章目录
前言
本人是一个普通程序猿!分享一点自己的见解,如果有错误的地方欢迎各位大佬莅临指导,如果你也对编程感兴趣的话,互关一下,以后互相学习,共同进步。这篇文章能够帮助到你的话,劳请大家点赞转发支持一下!
一、HTTPS是什么
HTTPS 也是一个应用层协议, 是在 HTTP 协议的基础上引入了一个加密层。
HTTP 协议内容都是按照文本的方式明文传输的,所以一些别有用心的黑客等,就可以通过一些手段来截获HTTP请求,从而来窃取用户的隐私信息,甚至对内容进行篡改后,再进行发送至原目的地。
在互联网上, 明文传输是比较危险的事情!!!
HTTPS 就是在 HTTP 的基础上进行了加密, 进一步的来保证用户的信息安全。
二、HTTPS加密方法
加密就是把 明文 (要传输的信息)进行一系列变换,生成 密文 。
解密就是把 密文 再进行一系列变换,还原成 明文 。
在这个加密和解密的过程中,往往需要 一个或者多个中间的数据 ,辅助进行这个过程,这样的数据称为 密钥 。
三、HTTPS加密流程
既然要保证数据安全, 就需要对数据进行 “加密”。
网络传输中不再直接传输明文了,而是加密之后的 “密文”。
加密的方式有很多, 但是整体可以分成两大类: 对称加密 和 非对称加密 。
对称加密
此时就算黑客入侵路由器,截获了密文,他没有密钥解密,因此数据仍是安全的。
但是实际情况可不是这样的。
非对称加密
须知
图解
你以为这就安全了吗??
魔高一丈的攻击要来了!!!
中间人攻击
攻击来啦!
图解
上述的中间人攻击,就对数据神不知鬼不觉的完成了截取篡改。
那么HTTPS为了应对中间人攻击,就实施了 “证书” 这一方案
证书
如何破解 “中间人攻击” 呢?
所以破解"中间人攻击"的关键就是服务器的公钥可以安全送达。
而 “证书” 就可以让客户端验证服务器传输过来的公钥有没有被篡改。
搭建一个 HTTPS 网站要在相关权威机构先申请一个证书,要向权威机构提供一些资料(包括服务器要发送给客户端的公钥),申请下来的 证书的信息中就包括公钥 ,证书中有一个最关键的核心信息: 签名 !
这个 签名由权威机构先针对证书计算出一个值,然后权威机构再用自己的私钥对这个签名进行加密 。
电脑操作系统内置了 与权威机构私钥成对的公钥 。
此时服务器就不会向客户端发送公钥,而是将整个证书发送给客户端。
而证书仍然采用明文传输,其中只有签名这个属性进行了加密!
图解
此时就保证了数据的安全!
黑客将证书中的公钥替换成自己的,客户端可以识别,直接报错,就不会再向外发送数据。
如果黑客不替换,那么他也无法解密出数据,更别说篡改数据了。
证书的目的就是为了保护服务器的公钥可以安全送达客户端,而不被篡改。
以上的 “对称加密”,“非对称加密”,“证书”,都是SSL协议中的内容。
而HTTPS协议 = HTTP协议 + SSL协议。
总结
以上就是今天要讲的内容,本文介绍了HTTPS的是如何保证数据安全传输,以及如何应对中间人攻击!
路漫漫不止修身,也养性。