当我阅读X.509规范的某些部分时,我发现签名添加了两次--第一次在AttributeCertificate中作为signatureAlgorithm添加,第二次在AttributeCertificateInfo中作为signature添加。你能解释一下为什么吗?基本证书字段也是如此。
signature:此字段必须包含与序列证书中的signatureAlgorithm字段相同的算法标识符
AttributeCertificate ::= SEQUENCE {
acinfo AttributeCertificateInfo,
signatureAlgorithm AlgorithmIdentifier,
signatureValue BIT STRING
}
AttributeCertificateInfo ::= SEQUENCE {
version AttCertVersion, -- version is v2
holder Holder,
issuer AttCertIssuer,
signature AlgorithmIdentifier,
serialNumber CertificateSerialNumber,
attrCertValidityPeriod AttCertValidityPeriod,
attributes SEQUENCE OF Attribute,
issuerUniqueID UniqueIdentifier OPTIONAL,
extensions Extensions OPTIONAL
}发布于 2017-03-10 13:32:34
这是一些旧恐惧的残余。彼得·古特曼的X.509风格指南是一本旧的(2001年)但很有启发性的读物,它包括以下段落:
这个相当不正确的字段包含CA用于签名证书的签名算法的算法标识符。这个字段似乎没有多大用处,尽管您应该检查算法标识符是否与证书上的签名匹配(如果有人可以在证书上伪造签名,那么他们也可以更改内部算法标识符,这可能是因为一些模糊的攻击,有人可以说服(已破坏的)签名算法A生成与(安全)算法B相同的签名值,从而将外部的、无保护的算法标识符从B更改为A,但不能在不使签名无效的情况下更改内部标识符。这将取得什么成果尚不清楚)。
因此,人们可能会推断,有一天,在两次会议之间的一段暂停时间里,可能是在咖啡机周围,有人做了一个精心制作但并不真正有趣的秘密笑话,而另一个人却无意中听到了这个笑话,他没有明白,然后在一个小组委员会的某个黑暗角落里激起了焦虑的情绪。更一般说来,X.509更有意义,如果你读它作为玛丽雪莱的草稿“弗兰肯斯坦”,由于某种原因翻译成古代乌干达。
https://security.stackexchange.com/questions/153449
复制相似问题