1
weeei 2022-12-06 15:51:31 +08:00
看用途,只是加密数据当然不需要。
|
2
catro 2022-12-06 15:58:42 +08:00
HTTPS 能防止中间人攻击,但是无法防止终端的攻击。数字签名不仅可以用在 HTTPS ,还能用在其它需要签名的数据中。
|
3
Yeen 2022-12-06 16:11:04 +08:00
数字签名主要是用于验证证分发的内容没有被篡改
比如 exe ,dll |
4
tool2d 2022-12-06 16:16:46 +08:00 1
你看 oauth 规范,第一版是基于 http 的,就选择了公钥私钥和数字签名。
但是由于流程过于复杂,第二版做了化简,但是强制要求在 https 下才能运行。 各大厂的普通授权 API ,也没做强制数字签名处理,前提默认你操作的 https 终端,是可信任的。 也有特例,比如电子支付,只能堆代码加安全系数了。 |
5
blackshow 2022-12-06 16:28:41 +08:00 2
数字签名是防篡改,https 是通道加密,加密的内容不一定是没被篡改过的,所以还是看场景和业务要求
|
6
MrSheng 2022-12-06 17:47:50 +08:00
https 握手阶段需要验证对方出示的证书是否真实,这一步就是借助受信任 CA 机构的数字签名完成的,受信任 CA 机构已经内置在你的浏览器中,所以 https 的安全是依赖数字签名的
当你安装一个自定义的 CA 证书时,如果无法保证此证书的真实性,那么以此建立的 https 连接也是不安全的。 https 使用非对称密钥算法协商建立连接后,实际依旧使用对称加密算法加密数据,在不考虑证书的情况下,等同于自己加密后通过 http 发送。 |
7
unco020511 2022-12-06 17:57:12 +08:00
我认为大部分场景都是不需要的
|
8
viakiba 2022-12-06 18:01:46 +08:00
签名一方面是防篡改,另一方面验证发送人是不是可以接受的人。
|
9
lookStupiToForce 2022-12-06 18:22:30 +08:00
|
10
sdhzdmzzl 2022-12-06 20:26:00 +08:00
@lookStupiToForce 这个很快就要解决了。他们的 CA 机构在想辙呢。有可能是找个国际 /国密 CA 签个域名证书。
|
11
parametrix 2022-12-06 22:17:58 +08:00
https 能保证传输过程中不被篡改和监听,也就是下载的文件可以确保是从所连接到的服务器来的且传输过程保密。而程序的数字签名保证的是自签名以来文件未被修改。从防篡改的角度来说,数字签名可以保证的环节更多,包括服务器上的存放、网络传输、本地存放,但不具有保密的作用。
实践上我觉得 https 基本够用,比如从 github 上下载的开源软件就算没有签名我也相信这是作者发布的版本。至于什么装了自签证书 https 被中间人的,自签 CA 能签网页不能签程序嘛?说这个有什么意义。 |
12
ihciah 2022-12-06 22:47:27 +08:00
看到这个问题第一反应是 黑人问号.jpg
1. https 是加密版本的 http ,而 http 是个文本协议,怎么就和数字签名对比起来了? 2. 如果是想问 “有 tls 还需要数字签名吗”,可这两个一个是交互式的密钥协商,一个是离线的签名验证,好像也没啥可比性。 |
13
lookStupiToForce 2022-12-07 10:10:47 +08:00
|