HTTPS

2019-11-16 10:21:07 +08:00
 linwu

https 中:

保证 接收公钥来源的正确性 是通过证书(数字签名+信息摘要)来保证的

想问下:接收的公钥究竟是来源于 1. 客户端请求服务端 获取的证书里的信息摘要 2. 客户端直接请求 CA 认证机构获取对应证书的公钥 两种情况的哪种?

 如果是从 1 中获取的话,那我是否只要把证书获取,
 自己使用 hash 函数加密信息摘要(自己的公钥),再用自己的私钥加密,发送给客户端
 不是就可以伪造证书了吗?
1883 次点击
所在节点    问与答
12 条回复
JsonLee
2019-11-16 10:33:20 +08:00
在这问等别人回答自己可能已经通过搜索引擎找到答案了。先去了解一下证书的格式和怎么生成的,这个答案自然明了。
HarryQu
2019-11-16 10:45:44 +08:00
https://s2.ax1x.com/2019/11/16/MwsGrT.png

我之前关于这个问题做的笔记。 笔记来源 <图解 HTTP>
linwu
2019-11-16 10:48:02 +08:00
我选择的不是 问与答 的节点么,难道 V2EX 的答案不算 搜索引擎里的内容么?
linwu
2019-11-16 10:48:38 +08:00
@HarryQu 感谢
chinvo
2019-11-16 12:46:39 +08:00
@linwu #3 不算啊,因为搜索引擎里早就有这个问题的答案了,你自己搜索就知道了,v2 还要别人回答

你这思想,很伸手党
aabbcc112233
2019-11-16 12:47:52 +08:00
@chinvo 不懂就问,别太苛刻
chinvo
2019-11-16 12:49:51 +08:00
@aabbcc112233 #6 提问的智慧,别太懒惰

提问没错,下面有人指出可以搜索之后楼主竟然把对方批判一番实在过于伸手党
aabbcc112233
2019-11-16 12:52:17 +08:00
@chinvo 看了下他的提问标题,确实该!
lhx2008
2019-11-16 13:00:42 +08:00
公钥在证书里面,证书有 CA 的签名,可以用 CA 的公钥验证,CA 公钥是客户端内置的
linwu
2019-11-16 13:19:46 +08:00
@chinvo 你又是如何知道我没有搜索过?如果我搜索过出来的文章解释的并不清楚,我希望到专业些的技术网站来确定,也是不允许确定的?是不是每个问题都要附带(已在搜索引擎搜索过)才能提问,你看我的问题描述觉得我是一点都没查过自己就过来问的吗?
TtiGeR
2019-11-16 15:16:45 +08:00
@linwu 没有批评的意思,只是作为过来人说几句。

已经查过的情况下,建议说明已经看了哪些资料,但是*具体*哪里觉得说得不清楚或是不同资料之间哪里冲突。这样大家给的回答一般也更有针对性。

至于你的问题,伪造出来的证书不是受信任的 CA 签发的话,签名是无法通过检验的。理论上讲,如果你实际控制了另一个受信任的 CA 是可以伪造证书的。但在公共互联网上是几乎不可行的,因为现在各大浏览器(和操作系统)对公共 CA 的审计和透明度要求非常高。
TtiGeR
2019-11-16 15:21:52 +08:00
当然在你自己控制的设备上,想要伪造一个证书是完全可行的,像 Fiddler 或者 Burp Suite 之类监听 HTTPS 的原理本身就是重签发(伪造)证书,之所以可以“骗”过浏览器是因为这些软件会让你信任软件生成的根证书。

也可以参考一下别人的答案:

https://security.stackexchange.com/questions/68198/cant-i-forge-an-ssl-certificate

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/620117

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX