Steffan Dettmer write:

> Could it be considered that a miss-assumption about SSL/TLS
> capabilities caused this situation?

Only with hindsight.

 
> I think since TLS should be considered a layer, its payload
> should not make any assumptions to it (or vice versa). But in the
> moment some application `looks to the TLS state' and tries to
> associate this information to some data in some buffer, I think
> it makes a mistake.

Well then TLS is basically useless. A secure connection whose properties I 
cannot trust is not particularly useful. If I receive "foo" over the connection 
and cannot ever know where the middle "o" came from, what can I do with the 
"foo"? Anser -- nothing.


> When using HTTP over IPSec, I think no one ever had the idea to
> open or block URLs based on the currently used IPSec
> certificate...

I'm not sure I get the point of your analogy.

> Am I wrong when I think that those level-mixing causes the
> trouble? If a user (by browsers default configuration) first
> accepts some sillyCA or www.malicious.com but then later does not
> accept it any longer and expects the trust that initially was
> given to be taken back in retroperspective and finds this failing
> and unsafe (impossible), is this really a TLS weakness?

No, that's not. Because in that case the client's behavior is objectively 
unreasonable. But looking to the state of the current connection to decide what 
privileges to give it is part of TLS's intended use.

 
> It seems it is, so what do I miss / where is my mistake in
> thinking?

The mistake is in thinking that any security protocol is useful as a security 
measure on end A if the security parameters can be changed by end B at any time 
with no notification to higher levels on end A.
 
> Now I ask myself what happens if I connect via HTTPS and read the
> crypto information as displayed by my browser and decide to
> accept it - but after a renegiotation different algorithms are
> used. As far as I understand, I would get absolutely no notice
> about that. I could find myself suddenly using a 40 bit export
> grade or even a NULL chipher to a different peer (key) without
> any notice! If I understand correctly, even if I re-verify the
> contents of the browsers security information pane right before
> pressing a SUBMIT button, even then the data could be transferred
> with different parameters if a re-negotiation happens at the
> `right' time!

That could be argued to be a bug. Ideally, a renegotiation should not be 
permitted to reduce the security parameters unless, at absolute minimum, the 
intention to renegotiate is confirmed at both ends using at least the security 
level already negotiated.
 
> If this would be true, this means the information firefox shows
> up when clicking the lock icon does not tell anything about the
> data I will sent; at most it can tell about the past, how the
> page was loaded, but not reliable, because maybe it changed for
> the last part of the page.
> 
> Where is my mistaking in thinking?

Correct, and to the extent TLS permits a renegotiation to reduce the security 
parameters without confirming the intention to reduce those parameters at the 
current level, TLS is broken. If the two endpoints negotiate a particular level 
of security, no attacker should be able to reduce that level of security within 
the connection without having to break the current level of security.

That is, if the two ends negotiate 1,024-bit RSA and 256-bit AES, then an 
attacker should not be able to renegotiate a lower (or different) security 
within that connection without having to break either 1,024-bit RSA, 256-bit 
AES, or one of the hard algorithms inside TLS itself (such as SHA1). TLS 
permitted an attacker to do this, and so was deemed broken.

DS



______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to