使用我的智能卡和电子身份证签署我的证书?

信息安全 证书 密钥管理 智能卡
2021-08-14 02:22:24

在比利时,我们拥有政府颁发的电子身份证 (eID)。它们可以由智能卡读卡器读取。卡上有两张证书,一张用于签名,一张用于认证。

我想分发我的公钥。我可以使用我的 eID 来签署我的证书,以便让用户知道它确实是我的公钥吗?这会是一种安全且被接受的方式吗?

感谢您的想法和帮助。

2个回答

您的eID使用由政府控制的CA签署的X509 证书。该 CA 是您信任链的根。这意味着他们是保证他们向您作为个人颁发该证书的人。

签署您自己的公钥不会提供任何额外信息,因为它位于同一信任链中。

它甚至可能很危险:例如,如果您生成 PGP 密钥并使用您的个人证书签署公钥,则无法证明您可以访问同一密钥的私有部分。它所证明的是,在某些时候,您(并且只有您自己)声称拥有相应的私钥。这与签署护照复印件大致相似:它不会告诉收件人该文件是原件或您可以访问它,只是您声称拥有它,并且在没有受信任的第三方验证的情况下换一种说法,没用。

从技术上讲,你可以用你的电子身份证签署任何你想要的东西。任何拥有您证书的人都可以根据您的公钥验证签名并验证证书路径(假设验证者认为 Citizen Root CA 认为是有效的Trust Anchor)。

但是,出于多种原因,使用您的 eID 签署另一个证书并不是一个好的做法。

首先,它不尊重 X.509 标准。我的意思是,如果您使用您的 eID 密钥签署证书,则该证书的验证将被任何符合 X.509 的验证器拒绝。我至少看到两个原因:

  • Citizen CA 证书包含一个扩展(名为Basic Constraints ) ,它明确指定它只能颁发最终用户证书,即不允许签署其他证书的证书
  • eID 公民签名证书包含一个扩展名(名为Key Usage),它明确表示禁止证书签名目的。

而且这些对证书的限制只反映了证书颁发规则,也就是所谓的认证政策证书政策是一份文件,表明证书颁发机构如何颁发证书(例如如何验证证书持有者的身份,证书中包含哪些信息,证书的可接受和禁止用途......)。

eID 认证政策可在此处获得:http ://repository.eid.belgium.be/downloads/citizen/en/CPS_CitizenCA.pdf

第 4.5.1 节公民义务说:

仅将证书用于符合 CPS 的合法和授权目的。

这意味着即使一个签名在技术上是有效的,这个签名的值也从属于根据策略对您的证书的授权使用。换句话说,使用您的 eID 卡签署证书在技术上是可行的,但由于此使用未经策略授权,因此该证书在 Citizen CA 上下文中没有价值。

但请注意,除了创建新的公钥之外,您不直接使用您的eID 公民签名证书吗?