HTTP加密版本——“HTTPS”
在学习之前,最好先了解一下HTTP协议,推荐大家先读完这篇文章,再来看本文
https://blog.csdn.net/2301_80042078/article/details/152413514?spm=1001.2014.3001.5501
上一篇文章我们提到了HTTPS是在HTTP的基础上多了个加密层,那么为什么要加密以及如何加密,下文将详细描述加密层的奥秘
为什么要加密?
在HTTP协议中,所有数据(包括密码、隐私信息、Session ID等)都是明文传输的,我们需要进行加密保护,否则很容易泄露用户信息,比如通过劫持用户的请求/响应拿到了用户的session ID然后进行封装一个HTTP请求就可以获得对方的相关信息
如何加密?
1. 加密的相关概念
加密:将原始的、可读的明文数据,通过一种算法和密钥,转换为不可读的密文的过程。其逆过程,将密文恢复为明文,称为解密。
- 目的:确保数据的机密性,即使数据被第三方截获,他们也无法理解其含义。
- 关键要素:
- 明文:原始数据。
- 密文:加密后的数据。
- 算法:加密和解密所依据的规则(数学函数)。
- 密钥:一串保密的、用于加密和解密的数据。算法的安全性完全依赖于密钥的保密,而不是算法的保密。
2.加密方案:
初级方案:对称加密
工作流程:
- 发送方向接收方发送一个请求申请一个共同的密钥
- 服务器生成一个共同的密钥,并告诉发送方
- 发送方通过key对明文进行加密,将明文变成密文
- 发送方将密文发送给接收方
- 接收方通过同样的key对密文进行解密,获得发送方的明文数据
优点:速度快,计算开销小,加密解密效率非常高,非常适合大量数据进行加密解密
缺点:双方协商共同密钥的时候是明文数据,容易被黑客进行窃取,获得共同的密钥,进而在后面的发送方和接受方交换密文数据时可以随时解密获得明文数据。
这是对称加密的工作流程图:
这是黑客窃取的流程图:
中级方案:非对称加密
使用一对非对称密钥:一个公钥和一个私钥。
- 密钥对的特点:
- 公钥:可以完全公开,像电话号码一样分发给任何人。
- 私钥:必须绝对保密,只能由所有者持有。
- 用公钥加密的内容,只能用对应的私钥解密。
工作流程:
- 接收方生成一对密钥,公钥发给发送方,私钥自己留着
- 发送方通过接收方的公钥对明文进行加密,将明文变成密文
- 发送方将密文发送给接收方
- 接收方通过自己的私钥对密文进行解密,获得发送方的明文数据
优点:公钥可以公开,无需保密。即使黑客窃取了公钥,由于他没有私钥,也无法解密用公钥加密的密文。
但这里存在一个关键的安全隐患: 发送方如何确定自己拿到的公钥,确实来自真正的接收方,而不是黑客?这就引出了“中间人攻击”的风险,黑客可以伪造自己的密钥对来“迷惑”通信双方(详细见下文)。
缺点:计算速度慢,比对称加密慢成百上千倍,效率低。
高级方案:非对称加密+对称加密
使用一对非对称密钥+对称密钥
工作流程:
- 接收方要生成一对密钥,公钥发给对方,私钥自己留着
- 发送方接收到了公钥,生成了一个对称密钥
- 发送方通过公钥对对称密钥进行加密,形成密文
- 发送方将密文发送给接收方
- 接收方通过私钥对密文进行解密,获得发送方的对称密钥
- 接下来发送方和接收方都可以通过对称密钥进行加密解密
优点:黑客即使截获了所有通信数据,但由于他没有接收方的私钥,因此无法解密出最初的对称密钥 ,他就无法解密后续任何被对称加密的实际数据,安全性提高,后续的交流就通过对称密钥进行加密,后面的效率就大大提高
缺点:虽然安全性提高,但依旧是不安全的,黑客可以有自己的公钥和私钥来获取信息
黑客窃取:
接下来详细谈一下黑客如何破解我们的中级方案和高级方案的,下文拿破解高级方案为例,本质方法是一样的。
窃取流程:
- 接收方要生成一对密钥,公钥(A)和私钥(A'),将私钥(A')自己留着
- 接收方将公钥(A)发送对方
- 黑客窃取信息,黑客生成了自己的公钥(H)和私钥(H'),将接受方的公钥(A)换成自己的公钥(H),并保存接收方的公钥(A),然后发送给发送方
- 发送方获得了黑客的公钥(H),生成了一对对称密钥(S),将对称密钥通过黑客的公钥(H)进行加密
- 黑客又一次窃取了信息,再通过自己的私钥(H')进行解密,获得了对称密钥(S),再用接收方的公钥(A)对数据进行加密,发送给接收方
- 接受方通过自己的私钥(A')进行解密,获得了对称密钥(S),至此双方以后的数据都通过对称密钥(S)来进行交流,而黑客也有对称密钥(S),每次都能劫持然后凭此进行解密获得他们交流的信息,所以说这并不安全!!!
顶级方案:数字证书+非对称加密+对称加密
大家有没有遇到类似这种情况:
上图的安全证书就是指的是数字证书,那数字证书到底是什么呢?下文来仔细讲解
数字证书:
数字证书就是一个由权威机构(CA机构)颁发的“网络身份证”,它将一个服务器的公钥与它的所有者(个人、服务器、组织)的身份信息绑定在一起,保证了接受方的公钥不会被黑客窃取
数字证书包含的信息:
- 证书所有者的主题信息:
- 通用名称(CN):通常是域名,例如
www.mybank.com
。 - 组织(O)、部门(OU)、所在地(C、ST、L)等。
- 证书所有者的公钥:这是证书的核心内容,就是要被验证的那个公钥。
- 证书颁发者(CA)的信息:是哪个机构颁发的这个证书。
- 证书的有效期:起止日期和时间,证书只在这段时间内有效。
- 证书的序列号:由CA分配的唯一标识符。
- 证书颁发者的数字签名:这是整个证书的灵魂所在,其本质就是对数据证书的内容进行了一个哈希摘要,并对这个摘要进行加密后(用证书颁发机构的私钥进行加密,这个私钥只有机构拥有,公钥对外公开),而这个结果就是“数字签名”。
使用数字证书+一对非对称密钥+对称密钥实现了安全通信
工作流程:
- 接收方将自己的数字证书发给发送方,接受方独自持有接收方的私钥
- 发送方接收到了数字证书,用操作系统或者游览器中内嵌的CA机构公钥对数字签名进行解密,(如果解密成功,说明这个签名确实是由这个CA用其私钥生成的,而不是黑客),获得哈希摘要(hash1)
- 发送方将数字证书的内容再用相同的哈希算法获得一个哈希摘要(hash2),如果hash1==hash2的话,就证明数字证书的内容未被修改
- 发送方还需验证数字证书的有效期等相关信息,检验数字证书是否有效
- 发送方确认接收方的证书安全有效后,就会从数字证书取到接收方的公钥
- 发送方通过公钥对对称密钥进行加密,形成密文
- 发送方将密文发送给接收方
- 接收方通过私钥对密文进行解密,获得发送方的对称密钥
- 接下来发送方和接收方都可以通过对称密钥进行加密解密
优点:
优点一:强大的身份认证与防篡改(由数字证书保证)
- 抵御了中间人攻击:不再是简单地拿到一个公钥,而是通过可信的第三方(CA)验证了公钥所有者的真实身份(如域名、公司名称)。黑客再也无法伪装
- 保证了数据的完整性:证书本身包含CA的数字签名,任何对证书内容的篡改都会被接收方发现。这确保了您拿到手的公钥是真实、未被修改的
如果没有数字证书,你无法确定你拿到的公钥是来自朋友还是来自黑客
优点二:完美继承了非对称加密和对称加密的优点
- 非对称密钥保证了传递对称密钥的安全:对称密钥需要在不安全网络上传输,但非对称加密让它变得安全。即使黑客截获了加密后的对称密钥,由于他没有接收方的私钥,他也无法解密
- 对称加密保证了加密解密效率高:非对称加密计算极其复杂缓慢,如果用它来加密所有数据传输,网速会变得不可接受。对称加密算法速度极快,比非对称加密快成百上千倍,在安全连接建立后,海量数据都通过对称加密处理,保证了通信的高效和低延迟,适合大规模数据加密
总结:
HTTPS作为HTTP的升级版,通过层层加码的安全设计,最终构建了一个基于信任链的、安全与效率兼备的通信模型,保证了我们安全可靠地通信,不易被黑客窃取相关信息,了解加密层的几大加密方案,可以帮助我们更深入地理解计算机网络,还以及黑客窃取我们信息的一些手段,我们以后做项目就可以参考这些方案来保证我们项目的网络安全。
结语:
以上就是我分享的HTTPS的全部内容了,希望对大家有些帮助,也希望与一样喜欢编程的朋友们共进步
谢谢观看
如果觉得还阔以的话,三连一下,以后会持续更新的,我会加油的
祝大家早安午安晚安