首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有不同私钥的CSR数字签名

具有不同私钥的CSR数字签名
EN

Stack Overflow用户
提问于 2017-07-20 06:39:39
回答 1查看 634关注 0票数 1

我们使用C#和bouncy城堡.net库来实现特性。假设我们作为一个website_A为最终客户生成CSR,那么最终客户将使用我们生成的CSR到我们的业务合作伙伴website_B获得一个证书。

以前它运作得很好。注keyPair.Public和keyPair.Private来自同一个RSA密钥对。生成的CSR可以在这里不存在任何https://certlogik.com/decoder问题的情况下得到验证。

代码语言:javascript
复制
        Pkcs10CertificationRequest request = new Pkcs10CertificationRequest(
            "SHA256withRSA",
            new X509Name(subject),
            keyPair.Public,
            null,
            keyPair.Private);

然而,我们的业务伙伴website_B希望验证终端客户提交/上传的任何CSR不仅是有效的CSR,而且确实是由我们(website_A)生成的。因此,我们创建了一对新的RSA密钥,并将新的公钥传递给website_B,并使用新的私钥对任何新的CSR进行签名。因此,我们的代码被更新如下。请注意,keyPair.Public和newKeyPair.Privae来自不同对的RSA密钥。代码仍然可以生成CSR,但在验证(如https://certlogik.com/decoder )上失败。虽然我们的业务合作伙伴website_B仍然可以用newKeyPair.Public解析/解码CSR的新格式,但是如果跳过CSR验证步骤,那么就够奇怪的了。

代码语言:javascript
复制
        Pkcs10CertificationRequest request = new Pkcs10CertificationRequest(
            "SHA256withRSA",
            new X509Name(subject),
            keyPair.Public,
            null,
            newKeyPair.Private);

所以我的qns是:

  1. 我们的业务伙伴website_B是否要求企业社会责任的数字签名(以便他们能够确定CSR是由我们产生的)?
  2. 如果是的话,我们如何才能将CSR的数字签名与原始的CSR联系起来。请注意,Pkcs10CertificationRequest只能使用一个私钥。
  3. 还有另一种方法可以用不同的私钥对CSR进行数字签名吗?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-20 07:54:54

  1. 我们的业务伙伴website_B是否要求企业社会责任的数字签名(以便他们能够确定CSR是由我们产生的)?

你的搭档想要一个数字签名的真实性证明。这是通常的,数字签名是为此而设计的。

  1. 如果是的话,我们如何才能将CSR的数字签名与原始的CSR联系起来。请注意,Pkcs10CertificationRequest只能使用一个私钥。

CSR必须使用证书请求者的私钥签名,并且必须与嵌入的公钥匹配。您正在使用CSR作为数字签名容器,该容器可以证明website_A生成了CSR,但证书颁发机构无法确保请求者有效地拥有私钥。因此,证书注册处理它是无效的。

因为公司社会责任不是为此目的而设计的。我建议:

  1. 在原始CSR上使用一个带有_A私钥的附加数字签名。不需要将此签名附加到企业社会责任中。只需使用分离的签名或已知格式,如CMS或XMLDSig。
  2. 使用自定义证书签名请求格式。您确实不需要标准的PKCS#10,因为在a之间已经有了一个自定义的注册过程,使用标准有明显的优势,但在您的情况下,它是可以使用的,因为它只在初始的注册过程中使用。请注意,CSR在生成后被丢弃,CSR与颁发的证书之间没有直接关系。您可以定义一个自定义格式,其中包括请求者的公钥、关于证书生成的必需数据以及A和B的两个签名

  1. 还有另一种方法可以用不同的私钥对CSR进行数字签名吗?

不,见上文

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45207061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档