Profile

unixronin: Galen the technomage, from Babylon 5: Crusade (Default)
Unixronin

December 2012

S M T W T F S
      1
2345678
9101112131415
16171819202122
23242526272829
3031     

Most Popular Tags

Expand Cut Tags

No cut tags
Saturday, March 31st, 2007 11:56 pm

This is an interesting-looking gadget from PayPal: a hardware security token that you carry around with you on your keyring.

If, as the page says, the device generates a six-digit code "about every 30 seconds", then it can be expected to take "about" a year to exhaust all possible codes and start over. (If it generated a new code exactly every 30 seconds, and did not re-use any code until all codes had been used, it would exhaust the one million available codes in 347.222 days.)  On the face of it, this looks like pretty good odds.

However, the algorithm must necessarily be deterministic, or it wouldn't work.  And if it's deterministic, and someone can learn (disassemble, reverse-engineer, whatever) the algorithm, and can get (sniff or shoulder-surf, for example) any single code that you used and when it was used, they may possibly (depending on the algorithm) be able to determine what code your token will generate at any specified time in the future, unless each token has some kind of unique-per-token salt.  The "frequently asked questions" page does appear to imply that such a per-token key or salt exists.

Discuss.

Sunday, April 1st, 2007 12:23 pm (UTC)
<lj user="robbat2" 's explanation is correct and coherent. I don't know the specifics regarding key sizes and random blocks, but the numbers listed would work. Relatively large keys compared to the 20 bits of information you do get per 30 seconds, plus a good one-way hash to generate those 20 bits, would make it difficult to determine where you were in the full (large) sequence. Without knowing that you wouldn't be able to predict with confidence a large series of output values. The synchronization doesn't just look back and forward N windows, but it also asks you for the next number generated. So even if it gives you a false positive on the first number it's unlikely to match the second.