Take the 2-minute tour ×
Cryptography Stack Exchange is a question and answer site for software developers, mathematicians and others interested in cryptography. It's 100% free, no registration required.

Previoulsy I had asked this question at http://stackoverflow.com/questions/18235983/can-s-mime-be-still-considered-secure but I feel this forum is topic-wise the right place.

Recently there has been a discussion whether secret service agencies have access to certification authorities. Also before that several CAs were facing security problems being attacked by hackers.

Given this, I am wondering whether S/MIME can be still considered secure. Some time ago I had generated a free email certificate from one CA. To my surprise the key had not been generated with a tool on my own computer; instead it was generated by the CA and emailed to me. I am wondering:

  1. If this CA is infiltrated by a secret service agency, will they have access to my private key and can use it to decrypt emails encrypted by my public key?
  2. Are there tools to generate S/MIME keys on an own computer? If so, is it possible to send only public keys to a CA to get them signed?
share|improve this question
    
In the future, it is often better to migrate questions, rather than cross-posting or duplicating them. (It's better still to ask at the right place from the start, if you know what the right place is!) No biggie; just wanted to let you know for the future. –  D.W. Sep 7 '13 at 19:10

2 Answers 2

up vote 7 down vote accepted
  1. Yes, obviously if the CA generated your private key, they might keep it and share it with anybody.
  2. Yes on both counts.

In fact, the normal way to generate a certificate -- whether for a Web server (TLS) or for yourself (S/MIME or TLS client) -- is to create a "Certificate Signing Request" and send it to the CA. The CSR includes your public key, not your private key; the private key never leaves your own computer.

See http://www.howtoforge.com/how-to-encrypt-mails-with-ssl-certificates-s-mime for step-by-step instructions using OpenSSL. Note: That page has instructions for creating a self-signed certificate, but further down it shows how to create a CSR and then sign it with a private CA. In practice you just send the CSR to the CA and pay them to sign it.

Assuming this is how you get your signed certificate, the only thing you lose when the CA is compromised is that somebody else could pretend to be you. That does sacrifice one of the purposes of S/MIME (authentication). Such forgeries are very easy to detect after the fact, so even if our security services have this capability, they could not use it very often without getting caught.

share|improve this answer
    
CA's typically don't generate your key pair for you but, yes if they did you are right. –  mikeazo Sep 7 '13 at 23:08
    
@mikeazo I take the OP at his word ("to my surprise...") Yes I agree it is not typical, which is what I tried to indicate in my answer. –  Nemo Sep 7 '13 at 23:51
    
Hello Nemo, thanks a lot for your answer and the link to the explanation. It is clear to me now. –  user2683038 Sep 8 '13 at 17:28

If you are so worried about your keys, not only would I suggest to create them yourself, but I would strongly suggest to generate them with open source tools and open source OS, so that you have more guarantees that your prng- generator has not tampered with.

share|improve this answer

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.