【问题标题】:How CSR is encoded? [duplicate]CSR 是如何编码的? [复制]
【发布时间】:2018-07-07 10:31:26
【问题描述】:

我正在学习 TLS 协议,我不喜欢这一刻。创造企业社会责任的时刻。为什么要编码?它使用什么编码?最大的问题是“为什么创建 CSR 的命令需要私钥?”这不是安全漏洞吗?

典型的命令是:

openssl req -out CSR.csr -new -newkey rsa:2048 -nodes -keyout privatekey.key

其中“CSR.csr”是 CSR 请求,“privatekey.key”是我的私钥。

我在 Google 中找到的只是“它是出于实际原因而制作的”。什么原因? 非常可疑的是,我对 PUBLIC 密钥发布的请求需要我的 PRIVATE 密钥来进行无用的 CSR 编码,它只包含我的数据和公钥,并且每个人都可以解码。这太可疑了。我认为这种违规行为是为了让证书颁发机构在解码过程中以某种方式获取私钥,然后将其提供给一些感兴趣的人。

【问题讨论】:

    标签: ssl x509 csr


    【解决方案1】:

    为什么要编码?

    嗯,它是根据公钥加密标准 (PKCS) 编码的。对于 CSR,可以使用两个标准:PKCS#10(单个请求)或封装的 PKCS#7,其中包含嵌入式 PKCS#10 请求和附加信息(例如,外部签名、续订证书)。 X.509 标准系列使用 ASN.1 DER(可区分编码规则)编码将结构转换为字节流。编码仅用于表示层,易于操作和绕线。

    为什么创建 CSR 的命令需要私钥

    私钥不包含在请求中,它用于对请求进行数字签名。 CA 必须执行此步骤,以确保在 CSR 创建和提交之间请求未被篡改/修改。所以这不是安全漏洞。请求中仅包含公钥。从公钥中推断出私钥几乎是不可能的。

    【讨论】:

    • 谢谢!我想,我有迫害狂 :D 但在安全方面它永远没有用处。
    猜你喜欢
    • 2015-10-09
    • 2010-09-17
    • 2018-05-25
    • 1970-01-01
    • 2014-08-12
    • 1970-01-01
    • 2017-02-12
    • 1970-01-01
    • 2013-07-15
    相关资源
    最近更新 更多