Subject: Re: Which Subject name type is more secure

From: "Mohammad Awad" <[email-masked]>
Date: Tue, 18 Mar 2003 22:26:16 +0200

I really appreciate Stephen's comments.
Stephen wrote:

>From: Stephen Kent <[email-masked]>
>To: "Mohammad Awad" <[email-masked]>
>CC: [email-masked]
>Subject: Re: Which Subject name type is more secure
>Date: Tue, 18 Mar 2003 11:50:22 -0500
>
>
>At 9:44 AM +0200 3/16/03, Mohammad Awad wrote:
>>Hi All,
>>I've a question regarding the usage of the X.509 certificate. What is 
>>considered more secure against the identity stealing threat, to have the 
>>alternate subject name of the certificate registering the IP address of 
>>the entity, or the FQDN name? I.e., which of those two (IP, FQDN) result 
>>in more dangerous security breach for when an attacker could steal them.
>>My understanding is that whenever the attacker intend to steal a victim's 
>>IP address, it never can exploit this incident by any gain beyond DoS, 
>>because conceptually the attacker could never receive the packets targeted 
>>to the stolen IP address. On the other hand, by spoofing the DNS system, 
>>the attacker is able to impersonate the victim's FQDN in both sending and 
>>receiving packets, so can perform a real security breach.
>>Could any body kindly provide me with corrections for my understanding.
>>Thank you all.
>>Moham. Awad.
>
>I'm afraid this is not a well-formed question, as it does not state all of 
>the context in which the certs are used.
>
I was concerned in my question about a certain case of identity faking:
Assume (entityA.com at 217.1.1.1) is a machine that have a cert, 
(attacker.com at 100.2.2.2) is an attacker that is trying to impersonating 
the identity of entityA (once by stealing its FQDN and another time  by 
spoofing its ipAddress).
Stealing the FQDN, the attacker can perform it by:
1- ATTACKING the DNS server, i.e., changing the A RR from (entityA is at 
217.1.1.) to be (entityA.com is at 100.2.2.2) and,
2- issuing a cert for his own, publishing it in the CA and also (OPTIONAL) 
in the DNS CERT record
Spoofing the ipAddress, the attacker can perform it by just sending traffic 
having the srcAddress=217.1.1.1 (I think he could never guarantee that reply 
packets should reach him, else the genuine 217.1.1.1, would receive them. is 
this a correct understanding for spoofing ip Addresses?)
I hope this could, to a certain extent, clarify what case I wanted to ask 
about.
>Putting an address in a cert is useful if the CA is authoritative for 
>address space assignments, but not necessarily a great idea otherwise. The 
>same might be said about putting in a DNS name. We usually employ DNS names 
>as the means of identifying machines, so if a cert as both the DNS name and 
>address, it provide protection against DNS attacks, but it faces the 
>problem that an address change necessitates will result in revocation and 
>reissuance of the cert.
I can understand that.
>If one puts only the DNS name in the cert, and then uses the key in the 
>cert to authenticate the machine, then a DNS attack will not succeed.
And what about if the attacker begins its attack by issuing a certificate 
for his own claiming that he is entityA.com? I think the attack can then 
succeed.
>However, if one puts in only the IP address, then a DNS attack could cause 
>the wrong address to be returned in response to the name-to-address 
>mapping, and a valid cert for the "wrong" address would not provide the 
>security the user probably envisioned.
I think now, that this is the case of the cert being maintained in the DNS 
and another machine is retrieving it to authenticate the machine in 
question. But in the case of the cert is issued for the IP address of the 
entity, I think it should have published its CERT in the IN-ADDR.ARPA DNS 
reverse domain, (i.e., indexed by the IP address of the machine), not in the 
conventional domain, (indexed by the FQDN). Then when another machine 
receives traffic from 217.1.1.1, it should seek its cert record in the 
1.1.1.217.IN-ADDR.ARPA (of course if it instructed  that the cert should be 
there).
>
>I hope this example shows how hard it is to respond to the question you 
>posed.
Yes I see. And hope this version of the question will be rather more clear
>Steve

_________________________________________________________________
Add photos to your e-mail with MSN 8. Get 2 months FREE*. 
http://join.msn.com/?page=features/featuredemail

---

From: Jean-Marc Desperrier <[email-masked]>
Date: Thu, 20 Mar 2003 02:08:15 +0100

Mohammad Awad wrote:

>> If one puts only the DNS name in the cert, and then uses the key in 
>> the cert to authenticate the machine, then a DNS attack will not 
>> succeed.
>
> And what about if the attacker begins its attack by issuing a 
> certificate for his own claiming that he is entityA.com? I think the 
> attack can then succeed. 

Here, we assume the attaquer can not break the signature and can not get 
the victim to trust a CA that is ready to issue the attaquer a 
fraudulous certificate.

If any of the two is feasible, then whatever added complexity we may 
imagine, it will NOT be possible to protect the victim with a PKI based 
solution.

>> However, if one puts in only the IP address, then a DNS attack could 
>> cause the wrong address to be returned in response to the 
>> name-to-address mapping, and a valid cert for the "wrong" address 
>> would not provide the security the user probably envisioned.
>
> I think now, that this is the case of the cert being maintained in the 
> DNS and another machine is retrieving it to authenticate the machine 
> in question. But in the case of the cert is issued for the IP address 
> of the entity, I think it should have published its CERT in the 
> IN-ADDR.ARPA DNS reverse domain, (i.e., indexed by the IP address of 
> the machine), not in the conventional domain, (indexed by the FQDN). 
> Then when another machine receives traffic from 217.1.1.1, it should 
> seek its cert record in the 1.1.1.217.IN-ADDR.ARPA (of course if it 
> instructed  that the cert should be there). 

Why would reverse DNS be more secure than forward DNS ?
How would we populate each of the record ?
Wouldn't certificate be a bit too much data for DNS server records ?
What are you trying to achieve here ? I hope at least the record for 
1.1.1.217.IN-ADDR.ARPA will hold a certificate for 217.1.1.1 and not for 
another IP address, but what would it proove ?

Anyway, the logic of trying to secure the IP adress instead of the name 
is flawed and can not be saved.
The point is that people start the connexion from a domain name, they 
never start directly from an IP address.

Let's take for exemple 204.228.229.168 and 218.45.23.125.
Wich one is the address of www.trusbanking.com and which one is 
www.pirate.com ?

There is no meaning in an IP address, you make no difference at sight 
between a dangerous and a trusted ip address.
The current system secure a domain name, and this works reasonnably well.
If you wanted to word with IP address, you would need anyway to link 
204.228.229.168 and www.trusbanking.com, and that link have to be more 
secure than the current system.