【问题标题】:can Digital certificate signature be copied? (ssl)可以复制数字证书签名吗? (ssl)
【发布时间】:2011-02-23 01:22:44
【问题描述】:

根据 X.509 标准,私钥签名必须永远生成相同的加密消息?对吗?

为了避免应对数字证书中的哪些数据字段会被更改?

他们无法处理用户的信息,但通过处理私钥生成的数字签名并与网页攻击者保持一致,可以说我已通过 CA 认证,并且网络浏览器会同意该信息。是是真的?

版本号、序列号、证书算法标识符、颁发者名称、有效期、主题名称、主题公钥信息 颁发者唯一标识符、主题唯一标识符、扩展名、认证机构的数字签名。 这些是数字证书中的字段,如果这些字段永远不变,加密值将永远相同。如果我去 gmail,它会发送加密数字证书。如果我在网页中使用该加密数字证书,我不能说我是 gmail 的所有者。但我不能使用用户发送的信息,因为我没有私钥

【问题讨论】:

  • 这个简单的article 可以回答您在“3.4 您信任什么?”主题下的问题

标签: security


【解决方案1】:

证书必须由 CA 签名才能被视为有效。证书的内容经过哈希处理,然后由 CA 的私钥加密。然后任何人都可以通过使用 CA 的公钥解密签名并验证哈希是否匹配来验证证书是否有效。

签名验证特定名称与特定公钥相关联 - 即使有人逐字复制证书文件,他们也不知道与该公钥对应的私钥,因此他们无法使用它来冒充证书的所有者。

【讨论】:

  • 感谢您的回复。当然,他们不能处理用户的信息,但是通过处理私钥生成的数字签名并与网页攻击者保持一致,可以说我是认证的由 CA 和网络浏览器同意该信息。这是真的吗?
  • @sun:不,他们不能。没有相关的私钥,证书就没有用了。
  • 版本号、序列号、证书算法标识、颁发者名称、有效期、主题名称、主题公钥信息 颁发者唯一标识、主题唯一标识、扩展认证机构的数字签名。这些是数字证书中的字段,如果这些字段永远不变,加密值将永远相同。如果我去 gmail,它会发送加密数字证书。如果我在网页中使用该加密数字证书,我不能说我是 gmail 的所有者。但我不能使用用户发送的信息,因为我没有私钥
  • @sun:不,那样不行。假设您声称自己是 gmail.com 的所有者。因此,用户打开了与您的 TLS 连接。你会怎样做?你没有私钥,所以你无法完成你那一半的 TLS 握手,用户也无法连接。
  • 好问题。这里有一些细节。 en.wikipedia.org/wiki/Transport_Layer_Security#Description
【解决方案2】:

我也在想同样的问题。

阅读@Anon. 的回答让我想到了这一点:https://en.wikipedia.org/wiki/Transport_Layer_Security#Description

当客户端连接到启用 TLS 的服务器时,握手开始 请求安全连接,客户端提供一个列表 支持的密码套件(密码和哈希函数)。

从这个列表中,服务器选择一个密码和哈希函数,它 还支持并通知客户该决定。

然后服务器通常会以 数字证书。证书包含服务器名称、 保证真实性的可信证书颁发机构 (CA) 证书和服务器的公共加密密钥。

客户端在继续之前确认证书的有效性。

要生成用于安全连接的会话密钥, 客户端:

  • 用服务器的公钥加密一个随机数 并将结果发送到服务器(只有服务器应该是 能够用它的私钥解密);然后双方使用 随机数为后续生成唯一的会话密钥 会话期间的数据加密和解密或

  • 使用 Diffie-Hellman 密钥交换安全地生成随机且唯一的 用于加密和解密的会话密钥,具有额外的 前向保密性:如果服务器的私钥被泄露 将来,它不能用于解密当前会话,即使 会话被第三方拦截和记录。

在您的伪造示例中(我也想知道),客户端在第 4 段中成功确认了证书。然后在第 5 段中,由于服务器无法读取客户端的随机数,他们未能就会话密钥达成一致。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-17
    • 2012-03-20
    • 1970-01-01
    • 1970-01-01
    • 2011-09-24
    • 2011-12-03
    • 2011-07-30
    • 2012-11-01
    相关资源
    最近更新 更多