Guys, With respect to verifying that the sender is really the sender, there are two basic means. One is a digital signature, the other is MAIL FROM AUTH=, which is part of SMTP AUTH. In something of an ironic coincidence, I just heard back from Bill Shannon regarding JavaMail support for MAIL FROM AUTH=, and will CC the mailing list on my response.
MAIL FROM AUTH= is used to pass on the identity of the authenticated sender in a chain of authenticated trust. Unfortunately, not only does JavaMail not support this now, but we have missed the window to get it into J2EE 1.4. We can try fixing this on our end by extending the MimeMessage and replacing the SMTP transport. The other caveat is that it requires an unbroken chain of authentication, so it has limited applicability on the Internet at large. Vincenzo has proposed that if SMTP AUTH is used the server could use a "server" certificate to sign the message, verifying that the server believes the sender to be authentic: > if (i) SMTPAuth is on, and (ii) the "From" user is the same as the > SMTPAuth-enticated user, a "Sign" mailet could sign the message > using a single common "server" certificate, certifying that the > sender email address was not forged. One of the checks performed on digitally signed e-mail is that the sender address be one of the authorized addresses within the public certificate. So it seems to me that in order to properly use a "server signed" certificate approach, we need to have the signing mailet set the RFC 2822 Sender: header to the address for the server certificate. So what I might get would be e-mail from Vincenzo, but sent (and signed) by [EMAIL PROTECTED] The RFC 2822 headers would then include: Sender: <[EMAIL PROTECTED]> From: <[EMAIL PROTECTED]> Neither of which should be confused with the reverse-path provided to MAIL FROM. This seems roughly right from my quick reading of the RFCs. RFC 2633, section 3.1 says "A MIME entity that is the whole message includes only the MIME headers and MIME body, and does not include the RFC-822 headers." A practical suggestion within the WG was that as a way to protect the headers "the full 822 messsage is wrapped and protected in S/MIME. Then, outer headers for the S/MIME message are added that suffice for message delivery." This may be why most products of this nature are paired; at each end of the transfer are agents that employ S/MIME encoding, hiding it from an MUA. One benefit of doing this should be that we not only provide the server's warrant of trust in the sender's indentity, but can also certify that the message content has not changed since it left the server. But I haven't gone too deep into the details. S/MIME is pretty involved. If we're going add S/MIME support to James, I suggest that we get in touch with http://www.bouncycastle.org/, and ask them to help out. They have both code we can use (perfectly compatible license) and expertise in the domain. --- Noel ref: S/MIME Working Group http://www.ietf.org/html.charters/smime-charter.html RFC 2633 (S/MIME v3) http://www.ietf.org/rfc/rfc2633.txt Interet Mail Consortium on S/MIME: http://www.imc.org/smime-pgpmime.html RSA S/MIME FAQ: http://www.rsasecurity.com/standards/smime/faq.html --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]