> No, they only within the scope of what an attacker can do. The attacker 
> becomes a MITM if they can do it without you knowing anything's wrong. 

And SSL/TLS does not itself let you know anything is wrong.

SSL/TLS provides the *ability* for you to know something is wrong
*if* the developers correctly used the tools available to them.
Without enforcing certificate authentication and/or CN matching,
the user will not know anything is wrong.  This is a situation
100% possible in SSL/TLS implementations out there, and they are
numerous.  Hell, even Microsoft got it wrong when they failed to
check certificate constraints, and I with an example.com cert
could sign yahoo.com and be completely valid in the eyes of IE
until it was patched.

That was an example of SSL/TLS done wrong, that lead to the possibility
of MITM attacks, period.

> Note "doing it without you knowing anything's wrong" means one of two 
> things; one is to manipulate data in such a way that the end parties do 
> not know that data has been changed (or created) in transit 
> (authenticity), and the other is to be able to read the encapsulated data 
> (secrecy).

Agreed.

> Your definition is a waste of time, I'm sorry to say. What you're saying 
> leads logically to the trivial extreme that any network protocol passing 
> through the internet is vulnerable to MITM attacks. If you're happy with 
> that definition then this email thread is without point.

Yep, and he's right.

With unencrypted/unauthenticated TCP, we admit that MITM is always
a possibility, and isn't worth meantioning.  If I telnet to some
host with good old fashioned telnet, the router can sniff and/or
modify my packets.  Someone sitting with ethereal/hunt/etc can
redirect things through their box.  We just don't bother meantioning
this vulnerability because it is guarenteed to be possible, and cannot
be prevented.  Yep, still a MITM, just not of interest.

With SSL/TLS, however, the ability to do encryption and authentication
should be able to prevent it.  However, implementing SSL/TLS *correctly*
is the only way to prevent it.  If you do it right, then you'll get
invalid certs or cn or other warnings.  If you don't do it right, you
don't know it happened.

> SSL/TLS never claims that it can prevent active traffic manipulation by 
> undesirable parties, it just claims you'll know something's wrong when 
> and if it happens and that all data passing through the SSL/TLS streams 
> until that point will be both tamper-free and secret.

No, SSL/TLS doesn't.  I will continue to argue that it provides you the
tools to do the above.  It's done wrong all over the place.  I don't
want people to think that if they use SSL/TLS that they are secure, they
are not unless the implementation is done well.

My palm phone has an email app that only trusts a few CAs.  I have
a self signed cert on my server.  I clicked the button 'always trust
the remote cert'.  I'm using TLS, yet I could still get no warning if
there's a MITM attack.[1]

If a closed source product were handed to you that says it supports
SSL, would you stand up and say on a witness stand that it cannot
be vulnerable to a MITM attack?  Without knowing how it was written?

For that matter, what about running 'stunnel -c -r www.example.com:443' ?
That specifies no certificate sources and doesn't say to verify.
It uses SSL - does that mean MITM attack is possible?


What you've been saying above is that if something uses SSL, it
is secure.  I still say it must have SSL done *right* for it to
be secure.

All over the world, applications are being written by people with
no crypto background, using third party libraries, who blindly
piece together sample code until an SSL handshake completes
successfully, and then they ship it.




--
Brian Hatch                  When two egotists
   Systems and                meet, it's an I
   Security Engineer          for an I.
http://www.ifokr.org/bri/

Every message PGP signed

Attachment: pgp00000.pgp
Description: PGP signature

Reply via email to