Tell me more ×
IT Security Stack Exchange is a question and answer site for IT security professionals. It's 100% free, no registration required.

I have a question regarding Swedish gov eID (but I guess it is a pki/smart card general question); Why is there two certificates/keys on the card?

Background:

In Sweden you can have a "citizen electronic ID" on smart card (issuer Telia). The smart card have two certificates with different keys and different key-usages. One certificate is for "authentication/encryption" and one is for "digital signing" (key-usage=non-repudiation). As I understand it isn't possible to export the private key for any of the certificates.

My question is why are we using two certificates/keys? Why can't we just have one key/certificate that have support for both purposes (encryption/signing). I understand the principle that it´s good to have the option to export a key which is used for encryption (and vice verse - not able to export the key for signing)... And it would have make sense if the key for the authentication/encryption certificate would have been exportable...

share|improve this question
My guess would be they want to leave the option open for later exportation of the encryption key (through new legislation and/or new design of the next generation of cards) without compromising the signature key. Alternately, escrow encryption keys may still already be kept by the government before the cards get their copies. – Iszi Nov 20 '11 at 3:50

1 Answer

up vote 1 down vote accepted

An explanation on Wikipedia gives the following reason. In many countries digitally signing a document is the same as a hand written signature (i.e., legally binding). So what if you want to hold an encrypted chat session, but don't want it to be legally binding. You could still use only one key-pair and not be signing, but you are safer if you have two separate key-pairs.

Another, more theoretical issue to think about. Look at RSA. How do you sign something. You take M^d mod N where d is your private key. How do you decrypt something? You take C^d mod N. So what is you were willing to decrypt anything I sent to you and tell me the result. I could send you C="I owe you $1,000,000" (note that this is really a plain text). You'd do C^d mod N and tell me the result. What I'd have is your digital signature on the message "I owe you $1,000,000".

share|improve this answer
In real life most smart cards don't do raw RSA, thus padding checks make the simple decrypt==sign trick useless. But there's a way to forge signatures nevertheless: hal.inria.fr/docs/00/70/47/90/PDF/RR-7944.pdf – martin Sep 16 '12 at 7:29

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.