21.03.2013 Views

Problem - Kevin Tafuro

Problem - Kevin Tafuro

Problem - Kevin Tafuro

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

ecause even if a source does fail completely, you should end up with 80 bits of security<br />

on a 128-bit value, which is generally considered impractical to attack. (Thus,<br />

80-bit symmetric keys are often considered more than good enough for all current<br />

security needs.)<br />

One thing you should do to avoid introducing security problems by<br />

underestimating entropy is aggregate each entropy source independently,<br />

then mash everything together once you have met your output<br />

metric. One big advantage of such a technique is that it simplifies analysis<br />

that can lead to cryptographic assurance. To do this, you can have<br />

a collector for each entropy source. When you need an output, take<br />

the state of each entropy source and combine them somehow.<br />

More concretely, you could use a SHA1 context for each entropy<br />

source. When an output is needed and the metrics are met, you can<br />

get the state of each context, XOR all the states together, and output<br />

that. Of course, remember that in this scenario, you will never have<br />

more entropy than the output size of the hash function.<br />

Now assume that the attacker cannot make a source fail; she can only take measurements<br />

for guessing attacks. We will talk about estimating the amount of entropy in a<br />

piece of data, assuming two different threat models: with the first, the attacker has<br />

local but nonprivileged access to the machine, * and in the second, the attacker has<br />

access to the local network segment.<br />

In the second threat model, assume this attacker can see everything external that<br />

goes on with the application by somehow snooping network traffic. In addition,<br />

assume that the attacker knows all about the operational environment of the<br />

machine on which the application runs. For example, assume that she knows the<br />

operating system, the applications running on the system, approximately when the<br />

machine rebooted, and so on. These assumptions mean that a savvy attacker can<br />

actually figure out a fair amount about the machine’s state from observing network<br />

traffic.<br />

Unfortunately, the first problem we encounter when trying to estimate entropy is<br />

that, while there is an information-theoretic approach to doing so, it is actually ridiculously<br />

difficult to do in practice. Basically, we can model how much entropy is in<br />

data only once we have a complete understanding of that data, as well as a complete<br />

understanding of all possible channels available to an attacker for measuring the<br />

parts of that data that the attacker would not otherwise be able to figure out from<br />

patterns in the data.<br />

* If an attacker already has privileged access to a machine, you probably have more important issues than her<br />

guessing random numbers.<br />

Performing Entropy Estimation and Management | 623<br />

This is the Title of the Book, eMatter Edition<br />

Copyright © 2007 O’Reilly & Associates, Inc. All rights reserved.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!