Re: rough sketch of a potential solution
"Adam M. Costello" <[email protected]> Tue, 18 Nov 2003 06:56:08 +0000
| Newsgroups | gmane.ietf.imaa |
|---|---|
| Message-ID | <[email protected]> |
Keith Moore <[email protected]> wrote: > consider a.example.com and b.example.com that were intended to > be equivalents. each would have a SRV record pointing to the > same hostname/port. sender types <stuff>@a.example.com but the > distinguished domain is b.example.com. sender's MUA does the > following. > > - lookup SRV for _ams._tcp.a.example.com, gets back ams.example.com > port NNN > - contacts ams.example.com port NNN > - >>> I'm looking for address lookups on "a.example.com" > - <<< distinguished domain is "b.example.com" > - >>> lookup equivalents for "<stuff>" > - <<< equivalents are ... > - >>> (close connection) > - sender then looks up SRV for _ams._tcp.b.example.com. if it gets > back the same result as the original SRV record, it considers the > results valid (after all, it was just talking to that server). if > not, it considers the entire lookup invalid and falls back to IMAA > encoding Hmmm, it looks like you and I have had slightly different ideas about what these address mappings would mean. You apparently want the alternate-address header field to state that several addresses are all alternates for each other. In order to get proper permission to make that claim, we need to look up all the addresses and make sure they all list each other as alternates. I was imagining that the "alternate for" relation is not assumed to be symmetric. When I compose a message in which address1 appears, my MUA looks up address1, gets back address2 and address3, and puts a field in the header that says that address2 and address3 are alternates for address1 (with no implication that address2 and address3 have any alternates). It is safe for the recipient's MUA to display address2 or address3 in place of address1 because we got address1's permission; we don't need permission from address2 or address3 for that. And there is no need for the header to assert that anything is an alternate for address2 or address3, because that information wouldn't be useful to the recipient. It's only address1 that appears in the real field, and therefore only address1's alternates that would be useful. When the recipient replies to all, address1 will remain in the real field and address2 and address3 will remain in the alternates field. If anyone ever types or pastes address2 into a real field, then it will be looked up in order to discover its alternates. > But now I remember another one of the reasons for allowing the mapping > service to sign address mappings (and to include those signatures in > the address mapping header extensions) - it was so that if a message > were signed by [email protected] but shown to the recipient as if it were > from [email protected], it would be possible for the recipient's MUA to > verify that the two addresses really were equivalent. > > (unless the mappings are signed by the domain) you permit a rogue > third-party to add additional headers that say "my.new.address@domain > is equivalent to the From address" and sign the message with > my.new.address@domain - making it appear that the (perhaps altered) > message was signed by the From address, when it wasn't. I'm skeptical of a proposal to sign a particular kind of header field. There are presumably plenty of header fields that could benefit from the ability to be signed. I would expect a more general-purpose scheme to be the way to go. But I'm also skeptical of this roundabout way of presenting signatures: address1 signs the message, and signs a note saying "address2 is an alternate for address1", and the MUA then concludes that it's safe to tell the user that the message is signed by address2. A more direct approach would be for the signer to sign the message with both addresses. I'm not very familiar with S/MIME, but I scanned RFC 3280 (regarding the use of X.509 certificates on the Internet) and it looks like a certificate can contain multiple email addresses bound to a single public key. That would seem to be exactly what we need. The MUA could take the intersection of {the From address and its alternates} and {the addresses in the certificate}, and from the intersection choose the address best suited to the user's locale, and display that as the author&signer. This would avoid the need for a separate signature on the alternate-addresses header field. AMC