[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: addresses and IKEv2
Alex,
> SNIP
>>
>>I think your argument above is faulty. If I choose to use DNS names
>>as a basis for access control decisions, and if I have credentials
>>(e.g., certificates) that allow a machine or person to verify that
>>the entity at the other end of a key management exchange is the
>>entity with the DNS name in question, then I can dynamically bind the
>>name to the current address at the time an SA is created and I have
>>achieved the access control goals without needing to introduce the
>>sort of new ID scheme to which you are alluding.
>>
>>
>
>Let's follow your arguement through. I need to establish an IPsec
>connection to www.kent.com. It is currently assigned to machine A which
>has an address of 200.200.200.1. The next morning the admin decides to
>change the DNS entry to point to machine B at 200.200.200.2. Now my
>IPsec connection will fail, even though machine A at 200.200.200.1 is
>still active! Why? Because the key is residing on A not on B. So using
>a cert with a DNS name bound to the key is useless. Any system relying
>on it will quickly run into the problem of how do you keep DNS names and
>keys in synch across multiple machines. And it is *not* good security
>practice to keep transferring private authentication keys (either AES or
>RSA) from machine to machine every time a DNS entry changes. It makes a
>mockery of using a key to automate the authentication of a particular
>machine. So certs are useless, you need the flexibility of reassigning a
>new DNS name to A's key! But how can I find the new DNS name for A in order
>to get the correct key? To solve this problem, if you don't allow the DNS
>name www.kent.com to change to B then you defeat one of the main reasons to
>use DNS. A catch-22 results. Therefore PKI certs & DNS don't mix.
My experience suggests that your examples are not representative. The DNS names for my personal computers remain constant over time, even across hardware changes. If I had to tran sfer private keys every time I got a new computer to which i would assign the same DNS name, I'd have to do that maybe once every 18-24 months. At that rate, I could easily afford to revoke the old cert and issue a new one, in case security provisions made it hard to transfer private keys from one machine to the next. Also, if I need to authenticate a person, vs. a machine, then I would use of RFC822 address form of name, and implement it in a fashion consistent with personal mobility, e.g., see the SACRED work. So, no, I don't agree with your conclusion above, and I don't think you have provided a convincing example to support that conclusion.
>Also, if you require DNS as the ID, then how do we address machines without
>a DNS name? To anticipate your answer, then use a cert bound to an IP
>address. But even then we still have the problem of dynamically assigned IP
>addresses via NAT or DHCP. Again another catch-22 results.
If I want to authenticate a person, vs. a machine, I would use a cert with an RFC822 address. If I want to authenticate a machine with no DNS name, then I could use other name forms, even distinguished names. But, to decide what sort of names are needed here, i think you need to provide some good examples of what machines have no DNS names, but I need to authenticate them, so that we can better understand the real problem.
>So it turns out that neither DNS nor IP addresses can satisfy our need to be
>able to reliably get the proper key needed to start up the IPsec connection.
>
>I am arguing that the key should be bound to the machine itself, regardless
>of it's address(es). The ID I speak of is really a key ID assigned to that
>machine, in a sense very similar to a PGP key ID. But with the significant
>difference that we assign an ID to the key, rather than generating it from
>the key.
Key IDs for machines seem useless to me, in isolation. They are meaningless, initially, and one would have to establish a scheme for mapping them to names that we do use and understand, in order to make use of them for access control purposes. As an analogy I have a passport number that uniquely identifies me among all US passport holders, but it is generally useless as an identifier because I am not known by that 9-digit number, to anyone but the State dept., U.S. Immigrations, and the like. But the creation of a mapping of the sort you would need is a tremendous undertaking, and it is not clear how it would be done and how it would be better than the sort of alternatives we were discussing above.
>>>To reiterate my position: IPsec needs to have a global, secure address space
>>>that uniquely identifies every participating host. It needs to be simple to
>>>understand, distributable, and easy to manage. And it needs to be able to
>>>dynamically map into the IP address space on demand, including private
>>>network non-routable addresses.
>>>
>>>That's the requirements as I see them. Anything less than this means
>>>you can't use IPsec unencumbered across the Internet.
>>
>>we don't need a global, secure address space. we need secure means of
>>mapping IDs to credentials, and mapping those IDs to SA, in real
>>time, as you note immediately above. These two notions are not the
>>same.
>>
>
>Right, I had already agreed with Ken Brown earlier that global and secure are
>not required. However global would simplify the problem significantly. In
>fact I would argue it would be almost impossible to build a world-wide system
>among many organizations using IPsec otherwise. Secure doesn't actually make
>sense since the ID is being used to bootstrap getting the key. So the ID
>cannot be secure in and of itself. The IPsec system must be able to carefully
>bootstrap from an insecure state to a secure state.
Absent a better definition of "secure" I can't tell what you mean here.
Steve