web-dev-qa-db-ja.com

スマートカードとeIDカードを使用して証明書に署名しますか?

ベルギーでは、政府によって発行された電子IDカード(eID)があります。スマートカードリーダーで読み取ることができます。カードには、署名用と認証用の2つの証明書があります。

公開鍵を配布したいのですが。 eIDを使用して証明書に署名して、それが本当にmy公開鍵であることをユーザーに知らせることはできますか?これは安全で受け入れられた方法でしょうか?

あなたの考えと助けをありがとう。

6
Joachim Jacob

あなたの eIDX509証明書 を使用 [〜#〜] ca [〜#〜] 政府によって制御されていますそのCAが トラストチェーン のルートです。これは、それらがその証明書を個人としてあなたに発行したことを保証するものであることを意味します。

自分の公開鍵は同じ信頼チェーンにあるため、署名しても追加情報はありません。

それは危険な場合さえあります。たとえば、PGP鍵を生成し、個人証明書で公開鍵に署名した場合、同じ鍵の秘密部分にアクセスできることを証明できません。証明されるのは、ある時点で、あなた(そしてあなただけ)が対応する秘密鍵を所有していると主張したことです。パスポートのコピーに署名するのとほぼ同じです。ドキュメントがオリジナルであるか、アクセス権があるかを受信者に通知するのではなく、自分が持っていると主張しただけで、信頼できるサードパーティがそれを認証していません。別の方法で主張し、それは役に立たないです。

3
Stephane

技術的に言えば、eIDカードを使用して好きなように署名できます。証明書を持っている人はだれでも、公開鍵に対して署名を検証し、証明書パスを検証できます(検証者がCitizen Root CAを有効であると見なすと仮定するとTrust Anchor)。

ただし、いくつかの理由により、eIDを使用して別の証明書に署名することはお勧めできません。

まず、X.509標準に準拠していません。つまり、eIDキーで証明書に署名すると、この証明書の検証は、準拠するX.509バリデーターによって拒否されます。少なくとも2つの理由があります。

  • 市民CA証明書には、明示的に(Basic Constraintsという名前の)拡張が含まれていますEnd User証明書、つまり他の証明書への署名が許可されていない証明書のみを発行できることを指定
  • eID市民署名証明書には、(Key Usageという名前の)拡張が含まれています。証明書の署名目的が禁止されていることを明示的に示します。

さらに、証明書に対するこれらの制限は、証明書ポリシーと呼ばれる証明書発行ルールのみを反映しています。 証明書ポリシーは、認証局が証明書を発行する方法(たとえば、証明書所有者のIDを確認する方法、情報が証明書、証明書の許容および禁止される使用法...).

EID認定ポリシーはこちらから入手できます。 http://repository.eid.belgium.be/downloads/citizen/en/CPS_CitizenCA.pdf

セクション4.5.1の市民の義務は言う:

CPSに従って、合法的かつ認可された目的でのみ証明書を使用する。

つまり、署名が技術的に有効であっても、この署名の値は、ポリシーに従って証明書の承認された使用法に従属します。言い換えると、eIDカードを使用して証明書に署名することは技術的に実現可能ですが、この使用法はポリシーによって許可されていないため、この証明書はCitizen CAコンテキストでは価値がありません。

ただし、新しい公開キーを作成するために、直接eID市民署名証明書を使用しないことに注意してください。

1
Jcs