智能卡上的两个证书

信息安全 证书 公钥基础设施 智能卡
2021-08-13 12:07:31

我有一个关于瑞典政府 eID 的问题(但我想这是一个 pki/智能卡一般问题);为什么卡上有两个证书/密钥?

背景:

在瑞典,您可以在智能卡(发卡机构 Telia)上拥有“公民电子身份证”。智能卡有两个证书,具有不同的密钥和不同的密钥用法。一种证书用于“身份验证/加密”,另一种用于“数字签名”(密钥使用=不可否认)。据我了解,无法导出任何证书的私钥。

我的问题是为什么我们使用两个证书/密钥?为什么我们不能只拥有一个支持两种用途(加密/签名)的密钥/证书。我理解这样一个原则,即可以选择导出用于加密的密钥(反之亦然 - 无法导出用于签名的密钥)......如果密钥用于身份验证/加密证书本来可以导出...

2个回答

您希望将签名密钥与加密密钥分开;这归结为密钥丢失和密钥备份的后果。您不希望备份签名密钥,因为这往往会剥夺它们的潜在法律价值;但是您确实需要备份加密密钥,因为丢失加密密钥意味着丢失已使用该密钥加密的所有数据。有关详细信息,请参阅此答案

不过,签名密钥和身份验证密钥可以合并,因为“身份验证”在这里实际上意味着对质询值的签名。如果相应的证书是由两个不同的 CA 颁发的,那么将它们彼此分开是“有意义的”(以官僚的方式),并且它们都不会接受被视为对方的子 CA。另一个原因是一套僵化的规定,坚持“每个密钥一次使用”的口头禅,并认为身份验证签名不同。

现代智能卡有很多私钥的空间(例如我在工作中使用这种类型的卡,你可以将 30 个私钥放在这样的野兽中),因此拥有两个密钥对和两个证书几乎没有什么坏处,即使如果不是绝对必要的话。

维基百科上的解释给出了以下原因。在许多国家,对文档进行数字签名与手写签名相同(即具有法律约束力)。那么,如果您想进行加密聊天会话,但又不希望它具有法律约束力,该怎么办。您仍然可以只使用一个密钥对而不进行签名,但如果您有两个单独的密钥对,您会更安全。

另一个需要考虑的更多理论问题。看看 RSA。你怎么签东西。你取 M^d mod N 其中 d 是你的私钥。你如何解密一些东西?你拿 C^d mod N。那么你愿意解密我发给你的任何东西并告诉我结果。我可以给你发 C="I owe you $1,000,000"(请注意,这实际上是一个纯文本)。你会做 C^d mod N 并告诉我结果。我要的是你在“我欠你 1,000,000 美元”消息上的数字签名。