Re: 'Padding Oracle' Crypto Attack Affects Millions of ASP.NET Apps

2010-10-02 Thread Richard Outerbridge

On 2010-10-01 (274), at 12:29, Brad Hill wrote:


Kevin W. Wall wrote:
isn't the pre-shared key version of W3C's XML Encrypt also going to  
be vulnerable

to a padding oracle attack.


Any implementation that returns distinguishable error conditions for  
invalid
padding is vulnerable, XML encryption no more or less so if used in  
such a
manner.  But XML encryption in particular seems much less likely to  
be used

in this manner than other encryption code.


Oh come on.  This is really just a sophisticated variant of the old  
never say
which was wrong - login ID or password - attack.  In this case it's  
padding or
MACing.  If either fails the result should be the same: something went  
wrong,
sorry for you.  The POET Oracle depends upon the server taking a  
shortcut and

signaling which went wrong first.

--
Perfect games of Draughts always end in draws.

-
The Cryptography Mailing List
Unsubscribe by sending unsubscribe cryptography to majord...@metzdowd.com


Re: 'Padding Oracle' Crypto Attack Affects Millions of ASP.NET Apps

2010-10-02 Thread Jerry Leichter

On Oct 1, 2010, at 11:34 PM, Richard Outerbridge wrote:
Any implementation that returns distinguishable error conditions  
for invalid padding is vulnerable...
Oh come on.  This is really just a sophisticated variant of the old  
never say which was wrong - login ID or password - attack.  In  
this case it's padding or MACing.  If either fails the result should  
be the same: something went wrong, sorry for you.  The POET Oracle  
depends upon the server taking a shortcut and signaling which went  
wrong first.
I wouldn't call that a shortcut - one has to actually define two  
failure returns and choose which one to send.  More code, more  
complexity.  But ... there's a reason for doing this, in virtually all  
situations:  Manageability, Without some detail as to exactly what  
went wrong, it's very hard to know what to correct or even where to  
look.


Cryptographic protocols are outliers here, because here you really  
can't afford to make the system manageable if the cost is that it  
can then serve as an oracle.  This is one reason it's so hard for most  
developers to produce correct crypto implementations:  So much of what  
is good practice almost everywhere else ends up being hazardous when  
it comes to cryptography.


It's not that there are *no* other situations where better error  
messages are a potential liability.  The classic example is error  
messages that leak information about directory configurations or  
database tables, thus enabling other attacks.  The difference is that  
such information, in most cases, is only problematic if the actual  
system *has some other vulnerability*.  We may not be at all good at  
producing systems without such vulnerabilities, but at least we know  
in general principle how to do so.  (If there are no SQL injection  
attacks, knowing what tables exist probably isn't useful to an  
attacker.)  One might argue that a cryptosystem that is vulnerable to  
a what failed attack is also buggy - but we really have no general  
idea how to fix them.  So we have to avoid them by accepting hard-to- 
manage protocols.


By the way, the don't acknowledge whether it was the login ID or the  
password that was wrong example is one of those things everyone  
knows - along with change your password frequently - that have long  
passed their use by date.  Just what attack on a modern system does  
revealing that a guessed login ID is correct actually allow?  It can  
only be used in on-line attacks, and it's been years since any decent  
system didn't protect against high rates of failures in on-line  
authentication.  Besides, valid - or highly-probably-valid - login  
ID's are typically cheaply available for most systems anyway.


I'm really tired of using up my on-line password tries, only to  
discover that I accidentally erased the last character on the login  
name, or added a trailing \ when I went for the RETURN key!  Systems  
are *so* nice to keep re-prompting with the bogus username.


Really, most systems these days reveal valid usernames quite easily.   
Both Windows boxes and Macs typically give you a pull-down list of  
accounts to log into.  Web logins have ways to recover passwords for  
lost accounts that usually reveal if you get the account name wrong -  
and then give you a way to recover the account name.  Can you think of  
an example in, say, the last 20 years of an attack that would not have  
been possible if the system had made it difficult to determine valid  
usernames?

-- Jerry

-
The Cryptography Mailing List
Unsubscribe by sending unsubscribe cryptography to majord...@metzdowd.com


Re: 2048 bits, damn the electrons! [...@openssl.org: [openssl.org #2354] [PATCH] Increase Default RSA Key Size to 2048-bits]

2010-10-02 Thread James A. Donald

On 2010-10-01 3:23 PM, Chris Palmer wrote:

In my quantitative, non-hand-waving, repeated experience with many clients in
many business sectors using a wide array of web application technology
stacks, almost all web apps suffer a network and disk I/O bloat factor of 5,
10, 20, ...


Which does not, however, make bloated RSA keys any the less evil.

All the evils you describe get worse under https.

A badly designed https page is likely to require the client to perform 
lots and lots and lots of RSA operations in order to respond to the user 
click.


A 2048 bit operation takes around 0.01 seconds, which is insignificant. 
 But an https connection takes several such operations.  Lots of https 
connections 


-
The Cryptography Mailing List
Unsubscribe by sending unsubscribe cryptography to majord...@metzdowd.com