周志明的软件架构课
周志明
博士,远光软件研究院院长,《深入理解 Java 虚拟机》《凤凰架构》等书作者
54203 人已学习
免费领取
课程目录
已完结/共 74 讲
架构师的视角 (24讲)
周志明的软件架构课
15
15
1.0x
00:00/00:00
登录|注册

29 | 传输(下):数字证书与传输安全层

你好,我是周志明。
上节课,我们花了很多时间来学习传输安全层中的摘要、加密和签名的主要用途和差别,在最后,我给你留了一个问题:数字签名需要分发公钥,但在网络世界里,“公开”具体是一种什么操作?如何保证每一个获取公钥的服务,拿到的公钥就是授权服务器所希望它拿到的呢?在网络中一切皆不可信任的假设前提下,任何传输都有可能被篡改,那这个问题能够解决吗?
答案其实是可以的,这就是数字证书要解决的问题。
所以接下来,我们就先从数字证书如何达成共同信任开始说起,一起来了解下在传输安全的过程中,数字证书与传输安全层的相关实现细节。

如何通过数字证书达成共同信任?

有了哈希摘要、对称和非对称加密之后,签名还是无法保证负载中的信息不可篡改、不可抵赖。所以,当我们无法以“签名”的手段来达成信任时,就只能求助于其他途径。
现在,你不妨想想真实的世界中,我们是如何达成信任的。其实不外乎以下这两种:
基于共同私密信息的信任
比如某个陌生号码找你,说是你的老同学,生病了要找你借钱。你能够信任他的方式是向对方询问一些你们两个应该知道,而且只有你们两个知道的私密信息,如果对方能够回答上来,他有可能真的是你的老同学,否则他十有八九就是个诈骗犯。
基于权威公证人的信任
如果有个陌生人找你,说他是警察,让你把存款转到他们的安全账号上。你能够信任他的方式是去一趟公安局,如果公安局担保他确实是个警察,那他有可能真的是警察,否则他也十有八九就是个诈骗犯。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

数字证书在网络安全中扮演着关键角色,通过建立共同信任的方式解决了数字签名的可信性问题。本文详细介绍了数字证书的内容和PKI的概念,强调了数字签名体系的复杂性和自动化应用的重要性。同时,文章深入解析了传输安全层的发展历程和技术特点,包括SSL 1.0到TLS 1.3的演进过程以及TLS 1.2的握手过程和安全性保障机制。通过对TLS 1.2握手过程的详细解读,读者可以了解到在传输安全层中如何保障信息的加密传输、防篡改和身份验证。文章还强调了HTTPS的安全性,指出启用HTTPS并非保证安全,不同的协议版本、密码学套件和证书有效性都会影响站点的安全强度。因此,读者需要更深入地了解HTTPS的相关内容,以确保信息的安全传输。文章内容全面而深入,为读者提供了有益的技术信息,让他们能够快速了解数字证书和传输安全层的作用、实现细节以及技术特点。

该试读文章来自《周志明的软件架构课》,如需阅读全部文章,
请先领取课程
免费领取
登录 后留言

全部留言(11)

  • 最新
  • 精选
  • Free
    老师好,我用Wireshark抓包查看了测试环境的tsl的握手过程,发现握手过程的第三步开始和本节略有差异,请问有差异的原因是在我抓包的场景里,服务器选择的密码学套件和本节讲的密码学套件不一样造成的吗? 另外下面的③是属于②的一部分,只是因为包大小的关系被分成了两个吗? 以下是抓包得到的流程: ①客户端-->服务器:Client Hello (含第一个随机数、可选的密码学套件16个) ②服务器-->客户端:Server Hello (含第二个随机数、选择的密码学套件:ECDHE_RSA_WITH_AES_128_GCM_SHA256) ③服务器-->客户端:Certificate、Server Key Exchange、Server Hello Done ④客户端-->服务器:Client Key Exchange、ChangeCipher Spec、Encrypted Handshake Message ⑤服务器-->客户端:Change Cipher Spec、Encrypted Handshake Message

    作者回复: 2和3都被认为是Server Hello的过程。

    2021-05-14
    9
  • zhanyd
    关于数字证书,有一篇我觉得非常经典的文章: http://www.youdzone.com/signature.html
    2021-01-22
    21
  • 文进
    TLS是安全应用层面的,需要建立在TCP传输层已经连接上的基础上,即通常情况下,TCP三次握手已经完成,再进行TSL四次握手。
    2022-06-16
    6
  • 我相信很多人看到这里,一个头俩大,我这里有一个讲的挺不错的加密签名的,可以对照着一起看 https://www.zhihu.com/question/52493697/answer/1600962734
    2022-06-13
    5
  • null
    原文:如果协商出的加密算法组合是依赖证书认证的,服务端还要发送出自己的 X.509 证书,而证书中的公钥是什么,也必须根据协商的加密算法组合来决定。 【而证书中的公钥是什么,也必须根据协商的加密算法组合来决定】,需要根据协商的加密算法组合,动态生成公钥么?那证书是动态实时生成的?证书不是提前申请好的么
    2022-11-23归属地:广东
  • Allen
    数字证书可以用来做签名,防抵赖,例如电子合同签约等
    2022-01-11
  • return
    老师,请教一下, 如果根证书被修改为一个冒充者的证书, 或者使用盗版系统 盗版浏览器, 其实还是有风险, 对吗
    2021-12-29
  • 要做个读书人
    老师是怎么学了这么多东西的。 感觉计算机各个方面的知识都很有体系,了解各个细节和技术的由来,以及技术的优缺点(是解决了哪部分问题,而不能解决哪部分)。 感觉自己学习的时候看了就忘。
    2021-11-04
  • CA颁发的证书,我怎么感觉和授权中心颁发的TOKEN一样,只是验证证书来源可靠性,可以直接在本机依赖根证书去验证
    2021-07-05
  • neohope
    1、机构、网站、身份认证 2、APP开发者认证 3、可执行程序开发者认证 4、控件开发者认证 5、API认证 6、文档的电子签章证书 7、大家自己搭建开发环境时有时需要自签名证书 其实还有很多咯。 除了顶级CA之外,其实CA也分等级的,这就涉及到了证书链。 此外,CA还要维护黑名单,吊销一些还在有效期之内的证书。
    2021-04-05
收起评论
显示
设置
留言
11
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部