Re: rough sketch of a potential solution
Keith Moore <[email protected]> Mon, 24 Nov 2003 18:56:52 -0500
| Newsgroups | gmane.ietf.imaa |
|---|---|
| Message-ID | <[email protected]> |
> > only example.com can really say who [email protected] is; > > example.com is free to change this binding anyway. so any > > certificate from an external CA that makes assertions about who > > [email protected] is is meaningless. > > But a certificate from example.com is also meaningless if example.com > is some podunk domain with no reputation. Perhaps, but it's more meaningful than a certificate by anybody else. If you attach value to the name "example.com" or to an email address defined at that domain, you're inherently investing some trust in the entity to which the name "example.com" was assigned. If you choose not to invest any trust, then "example.com" is meaningless to you. > Let's remember what James said: an email address is not an identity. > It would be closer to the truth to say that a public key is an > identity(which ignores the possibility of a person having multiple > public keys, but if they do, it's probably because they want to act as > multiple personas anyway, so let's go ahead and ignore that case). People do use email addresses as identities, just as they use their given names, nicknames, and random other strings (like Amateur Radio callsigns). We can say that email addresses are not intended to be used as identities, but the reality is that naming is slippery and people do not restrict how they use names according to the intent (or even wishes) of the designers of the name space. Email addresses can and are used as identifiers that are simultaneously associated with both people and their public keys. > > We're trying to use an email address as an identifier for a public > key, because email addresses are easier to remember/type than public > keys, and because email addresses help us actually communicate with > the owner of the public key. > > In order to believe that a given email address is an identifier for a > given public key, you need to see some convincing testimony (or set of > testimonies) that the address is bound to that key *and no other key*. It's clearly possible (and reasonable, even necessary) to have multiple keys associated with an identifier, or a person. For instance, a person can use multiple PK cryptosystems each with its own key; he can have different keys for different purposes; he can have different keys with different validity lifetimes (say, as one key is nearing expiration and another key is being phased in). > I don't know how that would work, but if you can trust a given CA to > cooperate with other CAs and take the necessary steps to verify that > an email address is not already bound (by itself or any other > cooperative CA) before issuing a certificate that binds the address, > then you can accept certificates from that CA for any email address. A CA can certainly do this. Whether the CA's word is worth the bits it is written on is a different question. But personally I would never trust the assertions of a CA that didn't have an explicit relationship with example.com, to make assertions about email addresses in example.com. > An alternative is not to use CAs at all, and instead keep your own > local mapping of email addresses to public keys. That's what PGP > does, right? > > Either way, if several addresses (possibly in different domains) are > convincingly bound to the same public key, then the addresses are > interchangeable. Perhaps for your purposes. Not for mine, and not in general. If you want to configure your MUA to trust VeryScrawl's certs that say that [email protected] and [email protected] is equivalent, that's your business, but to provide users in general with assurance that they can trust the assertions of CAs about the relationship of email addresses that are unrelated to each other is, as far as I can tell, well beyond the present state-of-the-art. Heck, nobody has figured out how to make a simple trust hierarchy work in the real world on any scale, and you're saying we should expect users to accept arbitrary transitive trust relationships between parties that can't be shown to have any relationship whatsoever. To be meaningful trust in cryptosystems needs to reflect the structures that humans use to establish trust, and it's hard to see how to make your proposal fit those structures. Anyway, that's why this is not in scope for my proposal. > So if someone wants to have alternate addresses and > wants to sign a message, the signature should include whatever bundle > of evidence is needed to convince the recipient that all the addresses > are bound to the public key that verifies the signature. I don't think that's necessary. The recipient's MUA can say "this message is signed by [email protected] who also claims to be the author of the message" as long as there's a certificate binding [email protected] to the public key, and as long as [email protected] is listed in the message as any one of the alternatives for the author's address. What the MUA shouldn't do is say "this message is signed by [email protected]" if the public key is only known to be associated with [email protected], even if the message claims that [email protected] and [email protected] are equivalent, and even if [email protected] is the address that is most easily readable by the recipient. Now if the message from [email protected] / [email protected] is signed using a key for which there is a cert that binds both of those addresses to the public key, AND if the recipient has determined that it can trust the CA to make assertions on behalf of both b.c and e.f AND if the recipient has configured the MUA to recognize that trust, then the MUA can display either [email protected] or [email protected] (or both) as the party who signed the message. But without all of these conditions being true, the MUA should ignore any equivalence claimed in the message between [email protected] and [email protected] and simply display whatever address appears in the From field. > I don't see how restricting alternate addresses to the same domain > helps us. Either it's possible to convincingly bind an address to a > public key, or it's not. If it's not possible, then the whole idea of > signed email is a farce. If it is possible, then it's possible for > multiple addresses in multiple domains to be convincingly bound to the > same public key. Maybe the single-certificate idea won't work as well > as we hoped, but there must be a way. You're thinking in terms of using signatures, and I'm thinking in terms of having this work without requiring signatures. If the address mapping server that's bound using a DNS SRV record to example.com wants to make assertions about example.com, well, that's about as trustworthy as anything else in the current mail system. And it's already the case that the sender can lie about whatever addresses are in the message's header - he can make bogus claims about who sent the message, where the message was sent, the names associated with those addreses, etc. Allowing the sender to lie about address equivalence doesn't really change that. And for that matter any unsigned message could be altered in transit, or completely forged. But allowing the address mapping service to make assertions about the equivalence of addresses in different domains (that aren't controlled by the same party) would not only degrade the already-weak assurance we have from the email system (because it would allow yet another party to interfere with the communication) - even among trustworthy parties it introduces the potential for synchronization errors, mapping loops, etc. And it's not necessary to support arbitrary cross-domain equivalences to make the system work. So why make life harder than necessary? You also seem to be thinking in terms of sender addresses, when I'm also thinking in terms of recipient addresses. The sender might have a cert that binds several of his addresses to one key; it's less likely that he has a cert that binds several recipient addresses together. > > > > The point is to have one address that's memorable for users of one > > > script, and another address that's memorable for users of another > > > script. The two addresses will obviously contain distinct IDNs. > > > > we can do that if we have a way to declare that the two IDNs are > > equivalent. what we don't want to do is build a mechanism that can > > map an arbitrary email address onto another arbitrary email address. > > I don't understand the importance of the distinction. Is there any > way to declare two arbitrary IDNs equivalent except by building a > mapping mechanism? And if we can map arbitrary IDNs onto each other, > how is mapping arbitrary email addresses different in any significant > way? If a.b and c.d are equivalent to each other (meaning they're run by the same party and that party asserts that [email protected] and [email protected] are equivalent for all x), that's fairly easy to indicate via a combination of DNS and the mapping protocol - and the DNS records can even be signed, for what good that will do. And once we know that those two domains are equivalent, we can then ask the domain mapping server for a.b/c.d whether x and y are equivalent. That's very easy. It's much harder to make tracable assertions that arbitary email addresses are equivalent, and furthermore, it doesn't seem to be necessary. > The relationship between [email protected] and bar.example.net > is pretty much the same as the relationship between bar.example.net > and example.net; the at-sign signifies the same sort of delegation of > naming authority as a dot. Not necessarily. Chances are there's a big difference between the relationship between a.com and b.com and the relationship between a.example.com and b.example.com. > > > > But I still don't see a need to do more than one lookup in the > > > address mapping service. When I send mail, I can put whatever > > > address I like in the From field and the Reply-To field. > > > > It's not the originator fields that are the problem so much as the > > recipient fields. A's MUA needs the address mapping service to > > obtain alternative addresses for B and C so that each address will > > be maximally transcribable by all recipients. > > Okay, and when A sends the message, it can put whatever it wants > in the To/Cc fields. If you're willing to trust that A put the > "right" addresses in the To/Cc fields (and that they were uncorrupted > in transit), then you might as well trust that A put the "right" > addresses (the ones obtained from the address-mapping service) in the > alternate-addresses field too (and that they too were uncorrupted in > transit). And if you're willing to trust the domains appearing in the > addresses in the To/Cc fields to route mail properly and not divert > it, then you might as well trust them to have given A legitimate > alternate addresses when A performed the lookup. Therefore there is > no need for A to look up the alternate addresses and verify the > symmetry. No new opportunities for mail diversion are created if A > forgoes the extra lookups. For that matter, A could certainly look up the equivalent addresses and then lie about them. The purpose of the address mapping service is not to try to keep A from misrepresenting who it sent the message to, but to make it easy for A to get the equivalences for his recipients right even though A doesn't necessarily know all of the recipients personally. So A is trusting the address mapping service to not lie. The purpose of not allowing the address mapping service to make arbitrary assertions about equivlances between addresses is to minimize the potential for harm if A trusts that mapping service - it limits the degree to which the mapping service can betray A's trust, and it also minimizes the potential for problems due to lack of synchronization between the mapping service for example.com and the SMTP server for example.com that has to be aware of those equivalences in order to deliver mail properly. In other words, it makes the mapping service somewhat more trustworthy than it would otherwise be. Keith