02 | 为HTTP穿上盔甲:HTTPS
该思维导图由 AI 生成,仅供参考
HTTP,SSL/TLS 和 HTTPS
- 深入了解
- 翻译
- 解释
- 总结
HTTPS的出现为HTTP协议增添了安全性,使得数据传输更加可靠。文章首先介绍了HTTP存在的安全问题,以及SSL/TLS协议的作用,将HTTP升级为HTTPS。SSL和TLS是父子衍生关系的安全协议,通过它们,HTTP得以加密传输,解决了拦截、伪装和篡改等安全问题。接着,文章介绍了HTTPS安全工作的过程,以及TLS连接的建立原理。在此过程中,对称性加密和非对称性加密是重要的基础概念。TLS连接建立的握手过程包括客户端和服务端的招呼、证书信息的验证、会话密钥的生成等步骤,通过非对称加密技术保证握手过程的可靠性,再通过对称加密技术保证数据传输的可靠性。整个过程采用了较严格、较复杂的方式建立消息交换渠道,再通过相对简单且性能更高的方式来实际完成数据传输。HTTPS的出现为HTTP协议增添了安全性,使得数据传输更加可靠。 文章还提到了两个问题:一是关于使用HTTPS加密的网站是否意味着支付过程中不可能出现安全问题;二是为什么握手过程使用非对称加密,而数据传输部分使用对称加密。此外,还介绍了证书有效验证的原理,强调了证书发布机构的有效性由上一级证书发布机构保证,形成了一个单向的信任链。 总的来说,本文深入浅出地介绍了HTTPS的安全机制建立原理,通过对SSL/TLS协议、HTTPS安全工作过程和证书有效验证的原理的详细解释,读者能够全面了解HTTPS的技术特点和安全机制。
《全栈工程师修炼指南》,新⼈⾸单¥59
全部留言(18)
- 最新
- 精选
- 饭团置顶回答老师问题 1)不能 因为虽然https是安全的,但前提是你的访问对象是安全的,归根到底你要保证真实是真实的,安全的!是你想访问对象!因为证书也是可以自己生成的! 2)为了性能,非对称加密算法性能不好!对称算法性能高!
作者回复: 1)结论正确,但是解释不太妥当。HTTPS 可以达到数据在网络传输过程中的可靠性,但是支付过程是一个复杂和综合性的行为,涉及到的过程和角色远不只有 HTTPS 连接和它的客户端、服务端,因此 HTTPS 的安全性结论无法推广到整个支付过程和支付行为的安全性结论。 2)性能是一个非常重要的因素,说得很好,因为非对称性加密的性能要比对称性加密的性能差很多,特别是在被加密数据量比较大的时候,但它的问题在于无法把密钥传递到对端,因此我们才使用了非对称加密的方式来帮助做到这一点。但是,还有其它原因,比如说,对称性密钥是每次会话生成的,会话以外自动失效,这就像武功唯快不破一样,通常很短的时间就更换掉了;如果使用非对称性加密方式来传输实际数据,因为它只在最开始的时候生成一次,而不是每次会话都生成,因此在传输中同一个公钥会被发给多个不同的客户端,因此第三方的中间人可以使用这个公开的公钥解密服务端发给其它客户端的数据,这显然不具备安全性。
2019-09-1324 - CC对于老师的置顶回复中的下面这句话有一个疑问:「第三方的中间人可以使用这个公开的公钥解密服务端发给其他客户端的数据。」 我的理解是:非对称加密意味着「公钥加密,私钥解密」。 如果使用公开的公钥加密传输数据,第三方中间人仍然需要私钥来解密数据。 为何第三方中间人可以使用这个公钥来解密数据呢? 不确定是不是自己哪一步理解有误。 提前谢谢老师。
作者回复: 这是一个很好的问题。 有“公钥加密,私钥解密”,但其实也有“私钥加密,公钥解密”。 从消息保密的角度来说,一般我们都是使用公钥加密,私钥解密。这样才能让消息保密,即便被第三方窃取了消息,消息内容也不会泄露。如果是这个用途,那么你说的完全正确。 但是 non-repudiation 则是反过来,使用私钥加密,目的就是让对方,以及可能出现的第三方使用公钥解密,这样大家都能证明消息已经确实被发送了,因为在私钥没有泄露的情况下,这条消息是无法被创建的,这也就使得“否认”(repudiation)变得不可能。
2019-09-2337 - kissingers老师,为什么要设计成有了ABC才能计算出密钥,不要AB行吗?因为只有c是加密的,攻击者拿到c 不就可以计算出密钥了吗?那ab 还有意义吗?谢谢
作者回复: 这种方式(传统 RSA 方式)下,C 是通过非对称密钥加密的,因此攻击者拿到加密后的 C,却无法解密。最后的对称密钥的计算,需要解密后的 C。 至于 A 和 B 因子的引入,是为了提高 pre-master 的随机性。
2019-12-0223 - 零维老师,证书发布机构对证书做摘要生成的指纹和客户端生成的指纹 P1 是一个东西吗?
作者回复: 对。对于证书做摘要得到指纹,这个指纹无论是发布方还是客户端得到的,它们必须一致,要不然校验就失败了。
2019-10-172 - 零维老师,您建议先粗略的读一遍,再重读的时候再学习这些延展资料,还是第一遍的时候就跟着学下来呢?
作者回复: 这个取决于你自己吧 :) 理解内容最重要。
2019-10-171 - I.m 帅帅大王老师我想问一下,客户端与服务端建立连接之后,之后的发送消息时是直接使用会话密钥加密后传输吗,不需要客户端再使用公钥加密后传输了吧?
作者回复: 对,连接建立以后,都使用会话密钥加密
2021-05-29 - pengzishang选修课堂中有一句:"对它用指定算法进行摘要,得到指纹 P1;" 我想问这个指定算法是什么算法,没有CA的私钥是怎样得出与P2相同的P1的?
作者回复: 常见的摘要算法有几种,比如MD5,SHA-1等。客户端没有私钥,但是有公钥,而公钥+数字签名,可以计算得到指纹,这个指纹信息如果和使用摘要算法去算得证书本身得到的指纹一致,那就证实了证书的有效性。
2020-10-24 - 川军团“证书发布机构对证书做摘要生成指纹” 老师这句话能不能 详细解释一下,什么是做摘要生成指纹 另外客户端 “对它用指定算法进行摘要,得到指纹 P1;” 这两个操作是不是一样的
作者回复: 摘要生成指纹其实就是一种hash算法,根据一个较长的复杂文本来生成一个较短的指纹字符串,原文本只要有一点点变更,这个指纹就会极大不同。 对,客户端自己用指定算法算得的指纹,必须严格等于使用公钥解密后的指纹,否则就认为这个证书被篡改。
2020-02-27 - Skylight老师我有俩问题: 1、“快速验证”对对话摘要加密使用的秘钥应该是A+B+C生成的会话秘钥吧? 2、有了会话秘钥之后,传输数据时为了判断信息是否被篡改,是不是也要对信息进行摘要然后对称秘钥加密后再把信息、摘要发给对方啊?
作者回复: 1. 是会话密钥 2. 这就不会了,因为前面的机制保证了会话密钥仅此两份
2019-10-10 - CC思考题1: 如果这个支付功能网站本身就是为了钓鱼设计的,仍然可能出现安全问题。(后看到老师置顶留言,才知道原来不能把 HTTPS 的安全结论推广到整个支付过程。HTTPS 只是支付过程的一部分。) 思考题2: 是安全与效率的取舍。 如果全部使用对称加密,安全性不可靠,相对容易反推秘钥;如果全部使用非对称加密,内容传输的效率低,在数据量大的时候低很多。 严格确认双方身份后,就可以用低成本高效率的方式来沟通。 (后看到老师留言,使用非对称性加密来传输实际数据,没有一过性,反倒会有安全性问题。) 选修课堂和扩展阅读长知识了,谢谢老师。
作者回复: 👍
2019-09-23