V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
yeqizhang
V2EX  ›  问与答

问大佬们几个 https 证书的问题

  •  
  •   yeqizhang · 2020-11-16 10:41:19 +08:00 · 1124 次点击
    这是一个创建于 1473 天前的主题,其中的信息可能已经有所发展或是发生改变。

    chrome 浏览器的锁标志打开的 windows 证书框的详情标签页中能看到签名长啥样吗?

    为什么不直接使用 hash 做签名,想要碰撞出一样的 hash 难度还是蛮大吧?使用私钥加密 hash 生成的签名是增加了安全度吗?是怎么增加的,有点混乱,望大佬们指点一下。

    第 1 条附言  ·  2020-11-16 14:53:27 +08:00
    谢谢大家,经过大家提点。我找到了以下的资料:

    (1)完整性.因为它提供了一项用以确认电子文件完整性的技术和方法,可认定文件为未经更改的原件.

    (2)可验证性.可以确认电子文件之来源.由于发件人以私钥产生的电子签章惟有与发件人的私钥对应的公钥方能解密,故可确认文件之来源.

    (3)不可否认性.由于只有发文者拥有私钥,所以其无法否认该电子文件非由其所发送.

    总结:
    hash 只能保证完整性,CA 的私钥的参与可以保证后面两项,特别是第 (3) 项。
    12 条回复    2020-11-16 14:56:50 +08:00
    julyclyde
        1
    julyclyde  
       2020-11-16 14:20:24 +08:00   ❤️ 1
    如果直接用 hash 的话,怎么体现 CA 对证书的承认呢?
    Youngda
        2
    Youngda  
       2020-11-16 14:20:32 +08:00 via Android
    ssl 证书保护的是传输层
    monkeyWie
        3
    monkeyWie  
       2020-11-16 14:23:20 +08:00   ❤️ 1
    这个时候就要祭出我的博客了,保证通俗易懂: https://monkeywie.cn/2020/09/07/why-https-secure/
    eGlhb2Jhb2Jhbw
        4
    eGlhb2Jhb2Jhbw  
       2020-11-16 14:32:24 +08:00
    @monkeyWie #3 写的不错,有学到东西
    blackshow
        5
    blackshow  
       2020-11-16 14:37:20 +08:00   ❤️ 1
    证书框里不能看到签名值,可以用 asn1 工具查看
    hash 只能起到防篡改的作用,私钥加密 hash 是为了防篡改的同时可以防抵赖
    yeqizhang
        6
    yeqizhang  
    OP
       2020-11-16 14:37:46 +08:00 via Android
    @julyclyde 能否 hash 对应了就承认?
    yeqizhang
        7
    yeqizhang  
    OP
       2020-11-16 14:39:39 +08:00 via Android
    @monkeyWie 写的很全面,但那个指纹我在搜索引擎找资料时,说指纹和签名不一样。5 楼说看不见,我在同事的 Safari 上可以看到签名
    yeqizhang
        8
    yeqizhang  
    OP
       2020-11-16 14:40:11 +08:00 via Android
    @blackshow Safari 好像可以看到,防抵赖是啥意思?
    pridealloverme
        9
    pridealloverme  
       2020-11-16 14:42:09 +08:00
    @blackshow ssl 证书应该只有防篡改功能,没有抗抵赖吧?
    julyclyde
        10
    julyclyde  
       2020-11-16 14:48:37 +08:00   ❤️ 1
    @yeqizhang 显然不能仅靠 hash 就表达承认
    仅靠 hash 的话,CA 根本没参与,凭什么负责?
    Jirajine
        11
    Jirajine  
       2020-11-16 14:52:07 +08:00 via Android
    所谓签名就是先对文件进行 hash,然后使用私钥进行加密,得到的密文就是签名。
    验证者拿到文件以后,用公钥将签名解密,得到的明文 hash 。然后再对文件进行 hash,比对两个 hash 是否相同从而验证签名。

    签名和 hash 最大的区别就在这个身份认证上,如果用 hash 做签名,你怎么知道是谁签的呢?相同的文件相同的算法总能生成相同的 hash 。
    blackshow
        12
    blackshow  
       2020-11-16 14:56:50 +08:00
    @pridealloverme #9 嗯,TLS 没有抗抵赖...
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1042 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 20:40 · PVG 04:40 · LAX 12:40 · JFK 15:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.