趣谈网络协议
刘超
前网易研究院云计算技术部首席架构师
130417 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 51 讲
趣谈网络协议
15
15
1.0x
00:00/00:00
登录|注册

第15讲 | HTTPS协议:点外卖的过程原来这么复杂

Self-Signed Certificate
CA
证书
其他协议
解决方案
双向认证
单向认证
非对称加密
对称加密
视频传输问题
效率问题
重放与篡改
HTTPS的工作模式
加密
HTTPS协议

该思维导图由 AI 生成,仅供参考

用 HTTP 协议,看个新闻还没有问题,但是换到更加严肃的场景中,就存在很多的安全风险。例如,你要下单做一次支付,如果还是使用普通的 HTTP 协议,那你很可能会被黑客盯上。
你发送一个请求,说我要点个外卖,但是这个网络包被截获了,于是在服务器回复你之前,黑客先假装自己就是外卖网站,然后给你回复一个假的消息说:“好啊好啊,来来来,银行卡号、密码拿来。”如果这时候你真把银行卡密码发给它,那你就真的上套了。
那怎么解决这个问题呢?当然一般的思路就是加密加密分为两种方式一种是对称加密,一种是非对称加密
在对称加密算法中,加密和解密使用的密钥是相同的。也就是说,加密和解密使用的是同一个密钥。因此,对称加密算法要保证安全性的话,密钥要做好保密。只能让使用的人知道,不能对外公开。
在非对称加密算法中,加密使用的密钥和解密使用的密钥是不相同的。一把是作为公开的公钥,另一把是作为谁都不能给的私钥。公钥加密的信息,只有私钥才能解密。私钥加密的信息,只有公钥才能解密。
因为对称加密算法相比非对称加密算法来说,效率要高得多,性能也好,所以交互的场景下多用对称加密。

对称加密

假设你和外卖网站约定了一个密钥,你发送请求的时候用这个密钥进行加密,外卖网站用同样的密钥进行解密。这样就算中间的黑客截获了你的请求,但是它没有密钥,还是破解不了。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

HTTPS协议的复杂性远超想象,涉及网络交互中的安全风险,尤其在涉及支付等敏感信息的场景下。文章介绍了对称加密和非对称加密两种加密方式。对称加密高效但容易受到黑客攻击,而非对称加密通过公钥和私钥的配对解决了密钥传输的安全性问题。然而,非对称加密也存在着黑客模拟发送消息的风险。为了解决这一问题,客户端需要拥有自己的公钥和私钥,并将公钥提供给外卖网站,实现更加安全的信息交互。文章通过生动的比喻和实例,生动地阐述了HTTPS协议的复杂性和加密方式的安全性,为读者深入了解网络安全提供了有益的参考。 文章还介绍了HTTPS的工作模式,包括客户端发送Client Hello消息到服务器,服务器返回Server Hello消息,证书验证,随机数生成,对称密钥协商等过程。此外,还讨论了重放和篡改的问题,并提出了解决方案。最后,总结了加密方式、HTTPS协议和相关问题,引发读者思考。 总体而言,本文深入浅出地介绍了HTTPS协议的复杂性和加密方式的安全性,以及相关问题的解决方案,适合读者快速了解网络安全的概况。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《趣谈网络协议》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(154)

  • 最新
  • 精选
  • 万历十五年
    各大CA机构的公钥是默认安装在操作系统里的。所以不要安装来路不明的操作系统,否则相当于裸奔

    作者回复: 是的

    2018-06-22
    10
    421
  • LEON
    这张SSL握手的图,真的棒!

    作者回复: 谢谢

    2018-06-20
    4
    47
  • isaac
    单向认证中的三个随机数可能是为了保证完全随机吧,毕竟所有的机器都是伪随机的

    作者回复: 赞,对的

    2019-01-28
    2
    30
  • 飞龙在天
    老师你好: https协议中,客户端和服务端信息传输使用了对称加密,疑惑的是服务器端是怎样识别多个客户端的公钥呢?项目中并没有对此做特殊的处理,希望老师解惑o(^o^)o。

    作者回复: 会建立session

    2018-06-20
    21
  • 森码
    客户端和服务端为什么要分别传输一个随机数呢?通过公钥加密Pre-master不是就可以用吗?

    作者回复: 如果双向认证,其实是可以的,但是不都是双向认证

    2018-07-11
    7
    12
  • 木头发芽
    @monkay:证书里还带了域名,如果浏览器联的是外卖网站的域名,被黑客拦截发回了黑客的ca证书,校验证书的时候会发现域名不对从而证书认证失败

    作者回复: 是的

    2019-05-12
    11
  • 酷哥居士
    想请教老师一下,上面的HTTPS请求,客户端和服务端之间发送证书,验证证书,传输秘钥等等这些操作,是在HTTPS的TCP连接建立成功后做的吗?

    作者回复: 是的

    2019-01-23
    2
    10
  • 老师,可以补充一下https双向认证的流程图吗?

    作者回复: 好的,后期补充一下

    2018-07-17
    7
  • 野猪佩奇
    老师你好,我之前听说获取CA证书都是需要给钱的,这边怎么一条命令就能获取一个证书啊?望解惑,谢谢

    作者回复: 我自己做ca当然可以啊,只不过拿出去不算

    2018-07-17
    2
    5
  • 烧饼
    这里两个 hello 信息都是用明文传输的,包括里面的随机数,真正加密传输的是 Pre-master 。就是说外界完全可以抓取这两个随机数,真正影响外界窃取对称密钥的是 Pre-master ,那是不是意味着其实这两个随机数作用不大,可以去掉?

    作者回复: 不是的,这几个都是计算对称密钥的材料

    2018-06-29
    4
收起评论
显示
设置
留言
99+
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部