ContentsThe library

How a Password Is Stored

The Number That Makes the Rest Necessary

Last timeNever Store the Password

Put a real figure on how many guesses a rented machine makes per second against a fast one-way value, and every precaution in this course stops looking like ceremony.

Guesses per second

A fast one-way function is fast. That sounds tautological and it is the

whole problem, because the function was designed to be computed quickly on

ordinary hardware, and that design goal serves the attacker exactly as

well as it serves you.

You compute it once per login. They compute it once per candidate, and

they have the whole table, so they compute it once per candidate per

account, except that without the per-user value from the next lesson they

do not even need to do that.

The rate on commodity hardware is in the billions per second for a single

rented graphics card, and nothing stops somebody renting several. That is

not a specialist capability. It is an hourly rate on a public price list,

which brings it inside the budget of every attacker in the lesson on who

would bother.

FIG 1How long a break takes
seconds to find the password
guesses required, which is not the size of the space but the position of the password in the attackers ordered list
guesses per second, which is a property of the function and the hardware
The time t is the number of guesses required k divided by the rate g. Everything in this course is an attempt to move one of those two numbers, and only one of them is yours to move, because k is set by what your users choose and g is set by the function you picked.

How big the space is

The conventional way to argue about password strength is to compute the

size of the space: the number of available characters raised to the

length. Ninety-five printable characters to the power of eight is around

six and a half thousand million million.

Divide that by a rate of ten thousand million guesses a second and you get

about a week, which sounds reassuring and is one of the most misleading

figures in the subject.

FIG 2Space size against what it actually takes
space size suggests safeactually safe, 0 to 3appears early in the attsurvives a week of guess
a word from a dictionary3030
a word with a digit afte3030
a word with a digit and 3131
two words joined, with a3222
a short random string1303
a long random string fro3333
The first column is nearly all threes and the second is nearly all zeros, and the marked pair is the gap. A word with a digit and a symbol sits in a space of billions and sits a few million guesses into the attackers list, because the decoration is as predictable as the word.

The arithmetic is right. The assumption is wrong, and the assumption is

that the attacker searches the space. Nobody searches the space. Searching

the space is the method of last resort, used only after everything else

has failed, and for most tables it never gets there because it did not

need to.

The lesson stops here

4 more paragraphs to go

You have read the opening. The rest of the argument, the problems that check whether it landed, and the lines worth keeping at the end all come with a plan.

The first lesson of every course in the library reads the whole way through, free, so you can see exactly what the rest of them are.

See the planThe contents

This is the reading half

Starting the course gives you your own copy of it. Every idea on every page has problems standing under it, marked with a reason rather than a tick, and any sentence you do not believe can be opened and argued with. None of that can happen on a page nobody owns.

The contents

The rest of this course

  1. 01The Only Thing the Table May Hold
  2. 02The Number That Makes the Rest Necessaryyou are here
  3. 03Two Rows That Look the Sameopening only
  4. 04The One Place Slowness Is the Featureopening only
  5. 05A Quarter of a Second, Ten Thousand Times at Onceopening only
  6. 06The Comparison That Tells You How Close You Wereopening only
  7. 07The Stored Row Was Never the Only Copyopening only
  8. 08Upgrading Something You Cannot Readopening only

Read alongside