From: Scott A Crosby <scrosby@cs.rice.edu>
To: Timothy Miller <miller@techsource.com>
Cc: Ingo Molnar <mingo@elte.hu>, "David S. Miller" <davem@redhat.com>,
linux-kernel@vger.kernel.org
Subject: Re: Algoritmic Complexity Attacks and 2.4.20 the dcache code
Date: 30 May 2003 13:53:47 -0500 [thread overview]
Message-ID: <oyd1xygb70k.fsf@bert.cs.rice.edu> (raw)
In-Reply-To: <3ED79FE9.7090405@techsource.com>
On Fri, 30 May 2003 14:16:09 -0400, Timothy Miller <miller@techsource.com> writes:
> Ingo Molnar wrote:
>
> > i'd suggest to use the jhash for the following additional kernel
> > entities: pagecache hash, inode hash, vcache hash.
>
> > the buffer-cache hash and the pidhash should be hard (impossible?) to
>
> > attack locally.
> >
>
>
>
> Maybe this is what someone is saying, and I just missed it, but...
>
> Coming late into this discussion (once again), I am making some
> assumptions here. A while back, someone came up with a method for
> breaking encryption (narrowing the brute force computations) by
> determining how long it took a given host to compute encryption keys
> or hashes or something.
Yes. Thats also being presented at Usenix Security 2003:
Remote Timing Attacks Are Practical
David Brumley and Dan Boneh, Stanford University
Available at:
http://crypto.stanford.edu/~dabo/papers/ssl-timing.pdf
However, that paper was dealing with public key operations, not
hash-collisions. Thus, the temporal dependence on the key, the 'hidden
channel' will probably be orders of magnitude smaller. At that, the
paper only works well on a local network, and the result of the attack
is far more interesting, the server's private key.
In *theory* such an attack is possible and could be used to determine
the secret key used in the Jenkin's hash in the networking stack,
dcache, or other places in the kernel. Assuming that collision versus
non-collision could be uniquely distinguished with $k$ trials, and the
hash table has $n$ buckets, the attack would require about 5*k*n or so
queries. The idea is to determine if inputs $i$ and $j$ collide. This
has a chance of $1/n$ of occuring. If I can uniquely distinguish this,
which requires $k$ trials. then on average after $k*n$ trials I'll
have one collision. I repeat this $32/log_2 (n)$, say, 5 times, and I
have 5 such pairs of known collisions $i,j$. I then enumerate all 2^32
keys, and see which one of them is consistent with the collision
evidence observed. This will usually result in only a few possible
keys.
All of this is in theory of course. In practice, for the bits of the
kernel we're discussing, this sort of attack is completely irrelevant.
I also note that universal hashing is also not immune to these
attacks. To defend, we'd have to go to cryptographic techniques.
Scott
next prev parent reply other threads:[~2003-05-30 18:41 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-05-29 20:42 Algoritmic Complexity Attacks and 2.4.20 the dcache code Scott A Crosby
2003-05-30 3:57 ` David S. Miller
2003-05-30 4:29 ` Ingo Molnar
2003-05-30 18:16 ` Timothy Miller
2003-05-30 18:53 ` Scott A Crosby [this message]
2003-05-30 5:04 ` Scott A Crosby
2003-05-30 6:24 ` David S. Miller
2003-05-30 6:46 ` Scott A Crosby
2003-05-30 6:56 ` David S. Miller
2003-05-30 8:59 ` Alex Riesen
2003-05-30 9:00 ` David S. Miller
2003-05-30 15:05 ` Scott A Crosby
2003-05-31 6:18 ` David S. Miller
2003-05-31 8:02 ` Willy TARREAU
2003-05-31 8:12 ` David S. Miller
2003-05-31 8:56 ` Willy Tarreau
2003-05-31 8:58 ` David S. Miller
2003-05-31 8:58 ` David Schwartz
2003-05-31 9:01 ` David S. Miller
2003-05-31 6:30 ` William Lee Irwin III
2003-05-31 6:33 ` David S. Miller
2003-05-31 6:41 ` William Lee Irwin III
2003-05-31 6:45 ` David S. Miller
2003-05-31 18:40 ` Aaron Lehmann
2003-05-30 4:02 ` Ingo Molnar
2003-05-30 4:42 ` Scott A Crosby
2003-05-30 5:01 ` David S. Miller
2003-05-30 13:48 ` Nikita Danilov
2003-06-01 1:15 ` Daniel Phillips
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=oyd1xygb70k.fsf@bert.cs.rice.edu \
--to=scrosby@cs.rice.edu \
--cc=davem@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=miller@techsource.com \
--cc=mingo@elte.hu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox