V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
hhhhhh123
V2EX  ›  程序员

有 https 还需要数字签名吗?

  •  
  •   hhhhhh123 · 2022-12-06 14:18:26 +08:00 · 3349 次点击
    这是一个创建于 747 天前的主题,其中的信息可能已经有所发展或是发生改变。
    13 条回复    2022-12-07 10:10:47 +08:00
    weeei
        1
    weeei  
       2022-12-06 15:51:31 +08:00
    看用途,只是加密数据当然不需要。
    catro
        2
    catro  
       2022-12-06 15:58:42 +08:00
    HTTPS 能防止中间人攻击,但是无法防止终端的攻击。数字签名不仅可以用在 HTTPS ,还能用在其它需要签名的数据中。
    Yeen
        3
    Yeen  
       2022-12-06 16:11:04 +08:00
    数字签名主要是用于验证证分发的内容没有被篡改
    比如 exe ,dll
    tool2d
        4
    tool2d  
       2022-12-06 16:16:46 +08:00   ❤️ 1
    你看 oauth 规范,第一版是基于 http 的,就选择了公钥私钥和数字签名。

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

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

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

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

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

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

    实践上我觉得 https 基本够用,比如从 github 上下载的开源软件就算没有签名我也相信这是作者发布的版本。至于什么装了自签证书 https 被中间人的,自签 CA 能签网页不能签程序嘛?说这个有什么意义。
    ihciah
        12
    ihciah  
       2022-12-06 22:47:27 +08:00
    看到这个问题第一反应是 黑人问号.jpg
    1. https 是加密版本的 http ,而 http 是个文本协议,怎么就和数字签名对比起来了?
    2. 如果是想问 “有 tls 还需要数字签名吗”,可这两个一个是交互式的密钥协商,一个是离线的签名验证,好像也没啥可比性。
    lookStupiToForce
        13
    lookStupiToForce  
       2022-12-07 10:10:47 +08:00
    @sdhzdmzzl #9 emmmmmm
    现在看来 50 天都办不下来一张证书🤐
    https://www.v2ex.com/t/887436
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   843 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 21:23 · PVG 05:23 · LAX 13:23 · JFK 16:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.