[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

identifiers and security



As I've said before, I think it would be useful to allow for multihoming solutions that add a new identifier space, and also for multihoming solutions that don't. (The new identifier space may or may not be expressible as something that looks like an IPv6 address, but if it is, it's not a routable IPv6 address.)

The advantages of not having identifiers are that it's easier to be backward compatible and less new stuff to worry about. The downside is that it's probably prohibitively complex to fully secure any negotiations that are needed for this, and/or it's necessary to rely on the DNS which also has security problems, and isn't always very reliable.

The irony of explicit identifiers is that they are so insecure, that they must be protected using strong security, so they effectively become more secure than any identifierless solution. The reason explicit identifiers are insecure to start with is that without a secure mapping mechanism of some sort, a correspondent is unable to determine whether someone claiming to hold an identifier is the legitimate owner of this identifier.

In an identifierless solution the routing system provides some level of assurance as obviously packets addressed at the initial locator (that functions as an identifier) make it to the host claiming to hold this locator (assuming a handshake of some sort, such as the TCP one). However, it's sometimes possible for third parties to gain access to a link and claim to hold addresses routed over that link, so this only provides a very basic level of security. However, single homed operation is also insecure in these situations so there is no obligation for any multihoming solution to solve this problem, just to make sure the additional multihoming mechanisms don't add to this problem in a material way.

I think it's important to recognize that "regular" IP operation without the benefit of IPsec, TLS or similar authentication and what comes with it (such as SSH) is very often insecure, and in most cases this isn't a problematic situation. So mandating strong security in all situations is probably a mistake. However, IPsec/TLS and the like are in wide use for communication that must remain confidential. In those cases, the key management problem is solved in some way or another. It would be very beneficial to take advantage of this situation and leverage IPsec or TLS mechanisms that are already in operation towards securing multihoming. One way to do this is taking the IPsec or TLS "identifier" and use it as the multihoming identifier. Architecturally this is a nice approach, but in practice it will be hard to get off the ground, especially with TLS as it's not always possible to determine the authenticity of a single packet with TLS. Another approach would be to exchange a session key that's protected using the IPsec or TLS that's already there and protect the multihoming exchanges using this session key.