我正在使用Strongswan vpn,我想通过客户证书(X 509)识别我的客户,我想向每个客户发出一个带有唯一序列号的证书。
我的问题很简单,证书的序列号部分是否已签名?
在维基百科中写道:
还包括RSA公钥(模数和公共指数),后跟签名,通过获取证书的第一部分的MD5哈希并对其进行签名(应用加密操作)计算)使用Thawte的RSA私钥。
他们谈论的第一部分是什么?他是否包含序列号?如果可以,将它用作标识符是否安全?
由于
答案 0 :(得分:2)
X509证书的结构在RFC5280第4.1.1章中定义。签署的内容将在第4.1.2章中介绍。简而言之,有主题,序列号,发行人,有效期,扩展名,当然还有公钥(以及许多其他内容)。
所以简短的答案是肯定的,你写的这样做是安全的。
但应该提到一件事。序列号可以有两种不同的含义(和用法)。它可以是证书的序列号(如RFC第4.1.2.2节中所述)。或者它可以是主题或发行者的一部分(RFC的第4.1.2.4和4.1.2.6章)。目前尚不清楚你有哪个序列号。
无论哪种方式,它仍然应该可行且安全来执行此操作如果您要对客户端证书进行有效性检查(撤销,链接到受信任的根,完整性...)因为如果您可以发出序列号为X的证书,那么我可以。但我无法从您的CA颁发证书,因为我没有您的CA的私钥。
答案 1 :(得分:2)
证书将实体或身份绑定到公钥。绑定通过权威的签名发生。因此,实体(即主题)及其公钥(例如,RSA公钥)将被签名。
证书的哪些部分已签名?
那将是toBeSigned
部分(它真正命名为)。例如,请参阅PKCS#10或RFC 2986 Certification Request Syntax Specification。
toBeSigned
包括:
证书的序列号部分是否已签名?
是。它由 Issuer (签署证书的人)设置,而不是 Subject (拥有公钥的人)。
还包括RSA公钥
这是绑定到实体或个人的公钥(即主题的公钥)。
后面是签名
这是将实体或个人与公钥绑定的签名(即发行人的签名)。
采用MD5哈希
这个例子有点陈旧。现在正在使用SHA-256。
[第一部分]是否包含序列号?
是。它是其中一个“其他属性”。