有 https 还需要数字签名吗?

2022-12-06 14:18:26 +08:00
 hhhhhh123
3350 次点击
所在节点    程序员
13 条回复
weeei
2022-12-06 15:51:31 +08:00
看用途,只是加密数据当然不需要。
catro
2022-12-06 15:58:42 +08:00
HTTPS 能防止中间人攻击,但是无法防止终端的攻击。数字签名不仅可以用在 HTTPS ,还能用在其它需要签名的数据中。
Yeen
2022-12-06 16:11:04 +08:00
数字签名主要是用于验证证分发的内容没有被篡改
比如 exe ,dll
tool2d
2022-12-06 16:16:46 +08:00
你看 oauth 规范,第一版是基于 http 的,就选择了公钥私钥和数字签名。

但是由于流程过于复杂,第二版做了化简,但是强制要求在 https 下才能运行。

各大厂的普通授权 API ,也没做强制数字签名处理,前提默认你操作的 https 终端,是可信任的。

也有特例,比如电子支付,只能堆代码加安全系数了。
blackshow
2022-12-06 16:28:41 +08:00
数字签名是防篡改,https 是通道加密,加密的内容不一定是没被篡改过的,所以还是看场景和业务要求
MrSheng
2022-12-06 17:47:50 +08:00
https 握手阶段需要验证对方出示的证书是否真实,这一步就是借助受信任 CA 机构的数字签名完成的,受信任 CA 机构已经内置在你的浏览器中,所以 https 的安全是依赖数字签名的

当你安装一个自定义的 CA 证书时,如果无法保证此证书的真实性,那么以此建立的 https 连接也是不安全的。

https 使用非对称密钥算法协商建立连接后,实际依旧使用对称加密算法加密数据,在不考虑证书的情况下,等同于自己加密后通过 http 发送。
unco020511
2022-12-06 17:57:12 +08:00
我认为大部分场景都是不需要的
viakiba
2022-12-06 18:01:46 +08:00
签名一方面是防篡改,另一方面验证发送人是不是可以接受的人。
lookStupiToForce
2022-12-06 18:22:30 +08:00
https://inv-veri.chinatax.gov.cn/

要不你先去上面的网站安装了国税总局的自签根证书然后 google 一下“中间人攻击”再来说话?🤪
sdhzdmzzl
2022-12-06 20:26:00 +08:00
@lookStupiToForce 这个很快就要解决了。他们的 CA 机构在想辙呢。有可能是找个国际 /国密 CA 签个域名证书。
parametrix
2022-12-06 22:17:58 +08:00
https 能保证传输过程中不被篡改和监听,也就是下载的文件可以确保是从所连接到的服务器来的且传输过程保密。而程序的数字签名保证的是自签名以来文件未被修改。从防篡改的角度来说,数字签名可以保证的环节更多,包括服务器上的存放、网络传输、本地存放,但不具有保密的作用。

实践上我觉得 https 基本够用,比如从 github 上下载的开源软件就算没有签名我也相信这是作者发布的版本。至于什么装了自签证书 https 被中间人的,自签 CA 能签网页不能签程序嘛?说这个有什么意义。
ihciah
2022-12-06 22:47:27 +08:00
看到这个问题第一反应是 黑人问号.jpg
1. https 是加密版本的 http ,而 http 是个文本协议,怎么就和数字签名对比起来了?
2. 如果是想问 “有 tls 还需要数字签名吗”,可这两个一个是交互式的密钥协商,一个是离线的签名验证,好像也没啥可比性。
lookStupiToForce
2022-12-07 10:10:47 +08:00
@sdhzdmzzl #9 emmmmmm
现在看来 50 天都办不下来一张证书🤐
https://www.v2ex.com/t/887436

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

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

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

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

© 2021 V2EX