|
Today, while searching for literature regarding which order should be preferred, "Sign & Encrypt" or "Encrypt & Sign", I found the interesting paper Defective Sign & Encrypt in S/MIME, PKCS#7, MOSS, PEM, PGP, and XML by Don Davis. This very interesting and well-written paper was published in 2001 and documents two vulnerabilities in regard to so-called "naïve Sign & Encrypt" which are: Surreptitious Forwarding
Signature Replacement
The paper then proposes multiple ways of handling this problem, including "triple-wrapping" either via Sign-Encrypt-Sign or Encrypt-Sign-Encrypt or by enclosing sender and/or receiver information into the encrypted and/or signed content.
It's the year 2010 now and since the original specification of S/MIME Version 3 in RFC 2633 (June 1999) two other revisions of S/MIME Version 3 were published, namely Version 3.1 in RFC 3851 (July 2004) and Version 3.2 in RFC 5751 (January 2010). It is my understanding that "header protection" which is implemented by S/MIME Version 3.1 in RFC 3851 is the solution to the above problems. It allows to include MIME header fields in secured/encrypted content, and by including the "From" and "To" header fields the above vulnerabilities would be nullified because then the receiver of the message could validate:
To implement validation the receiver would have to check:
If I did not understand that correctly please let me know. These are my questions:
|
|
Thanks for your detailed analysis, I am sure other readers will find it quite useful! 1) To what extent does the Secure Mail component handle these issues? 2) Does it implement "header protection"? 3) Which headers does it include in the encrypted/signed content? I will try answering these 3 question at once: The The
Rationale: When we were writing Rebex Secure Mail in 2005&2006, we found out that major email clients lack proper support for S/MIME v3.1 header protection and some even lack support for simple "Encrypt & Sign" (Outlook Express only supported "Sign and Encrypt"). For this reason, we decided to postpone this for one of the future releases. And it looks like this situation has not improved much since - I just tested Outlook 2007 and Mozilla Thunderbird and although they are able to display a message with S/MIME v3.1 header protection, they don't perform any kind of validation and present the inner message as if it were an attachment. 4) How does it handle headers when decrypting or validating a signature? 5) Does it simply replace the "outer" headers with the "inner" headers when unwrapping? 6) Does it already check if the headers were altered? 7) Is is possible to check if such header information is present in signed/encrypted content (because if it isn't the message ultimately cannot be trusted, unless another solution - e.g. triple-wrapping - was used)? The
The The We will strongly consider adding out-of-the-box support for S/MIME v3.1 header protection to one of the next releases of Rebex Secure Mail, although we won't produce such messages unless explicitly instructed to (for compatibility reasons -see above). Thanks for bringing this to our attention! Thank you very much for your detailed answer. I understand that you target compatibility with existing mail clients. In my case I don't need to be concerned with that because I control to a great extent the mail clients used for sending and receiving (no standard software). An option to use S/MIME header protection is surely a great idea.
(06 Sep '10, 08:57)
Stefan
We have added this to our TODO list. An option to use S/MIME header protection should appear in one of the next releases.
(08 Sep '10, 13:44)
Lukas Pokorny ♦♦
|