Earlier quoted context omitted.
I'm saying the error was unforced because the effort the OpenSSL CSPRNG went through was duplicative.
So your position is that Debian didn't go far enough? They should have disabled OpenSSL's CSPRNG entirely and redirected its internal calls to perform IO operations on /dev/[u]random?
Android RNG Weakness Renders Bitcoin Wallets Insecure
61–70 of 105 posts
Re: Android RNG Weakness Renders Bitcoin Wallets Insecure
#62Earlier quoted context omitted.
On a side note, what are the current stats for the Matasano crypto challenge? How many have finished all 6?
On a side note to my side, how many are psyched about Breaking Bad tonight?! (seriously, downvoted for asking about stats on cryptopals? it is relevant -- #6 has two DSA questions!)
63 people have finished the crypto challenges; about 9000 people have started them.
Re: Android RNG Weakness Renders Bitcoin Wallets Insecure
#63Looks like a terrifyingly buggy SecureRandom implementation that results in only 31 bits of entropy when seeding: http://armoredbarista.blogspot.com.au/2013/03/randomly-faile...
Re: Android RNG Weakness Renders Bitcoin Wallets Insecure
#64At blog post https://cryptocow.com/?p=201 we've been experimenting with using sensors to upgrade PRNG's, and we frankly can't understand why this isn't been used natively in Android RNG implementations... It's trivial, easy and tremendously increases the RNG quality.
This is a really common misconception people seem to have about cryptographic random number generation, and a topic Ferguson and Schneier do an extremely good job breaking down in _Cryptography Engineering_.
Re: Android RNG Weakness Renders Bitcoin Wallets Insecure
#65Iä! Digital Signature Algorithm! The Black Goat of the Woods with a Thousand Crypto Bugs! I don't know the Bitcoin software involved at all, but I can sketch out an attack that might shed some light on it, and, more importantly, instill an appropriate fear of DSA into you: To generate a DSA key, you come up with primes p and q and a generator g, which process is a paralytic non-Euclidian brain injury I will not attem…
On a side note, what are the current stats for the Matasano crypto challenge? How many have finished all 6?
https://docs.google.com/spreadsheet/ccc?key=0AscYGzcM4zJNdHR...
I've probably missed a few tweets and typo'd a few numbers along the way, but it should be mostly accurate. Note the tabs (at bottom left) for a derived speadsheet (percent of participants at each level) and a chart.
Re: Android RNG Weakness Renders Bitcoin Wallets Insecure
#66Earlier quoted context omitted.
On a side note, what are the current stats for the Matasano crypto challenge? How many have finished all 6?
Whenever I see tptacek tweet the current stats, I try to update this spreadsheet: https://docs.google.com/spreadsheet/ccc?key=0AscYGzcM4zJNdHR... I've probably missed a few tweets and typo'd a few numbers along the way, but it should be mostly accurate. Note the tabs (at bottom left) for a derived speadsheet (percent of participants at each level) and a chart.
Re: Android RNG Weakness Renders Bitcoin Wallets Insecure
#67Earlier quoted context omitted.
This is a Bitcoin software implementation bug, and an illustration of why you should use your OS's CSPRNG (here, /dev/random) to the exclusion of any other RNG.
"This is a Bitcoin software implementation bug," where are you getting your info from? as far as i can tell previous code was buggy, and android 4.2 "fixed" things by making it impossible (well...) to screw up the PRNG (setSeed in OpenSSL augments state, previously with BouncyCastle it replaced state, afaict). but that doesn't explain why current software has problems (not the kind of problems that should make it ins…
Re: Android RNG Weakness Renders Bitcoin Wallets Insecure
#68Re: Android RNG Weakness Renders Bitcoin Wallets Insecure
#69Earlier quoted context omitted.
Whenever I see tptacek tweet the current stats, I try to update this spreadsheet: https://docs.google.com/spreadsheet/ccc?key=0AscYGzcM4zJNdHR... I've probably missed a few tweets and typo'd a few numbers along the way, but it should be mostly accurate. Note the tabs (at bottom left) for a derived speadsheet (percent of participants at each level) and a chart.
For those watching from the stands, 'rwg also sent us a spreadsheet that does AES. Entirely in cell formulas. He also sent us a Postscript file that appeared to be a visualization of AES state but was in fact a pure-Postscript implementation of AES that rendered itself into the Postscript document.
I don't know what I'll do for set 7 yet. Maybe Excel implementations of the SHA-3 finalists...
Re: Android RNG Weakness Renders Bitcoin Wallets Insecure
#70Earlier quoted context omitted.
That's the lib, if you're bored enough to keep diving https://code.google.com/p/bitcoinj/
OK, I dove a little more. The actual signing happens in org.spongycastle.crypto.signers.ECDSASigner . I haven't dug into _that_ yet. But one thing I'm wondering is: would any setSeed on any SecureRandom instance cause a potential problem? Or just on the same instance being used for signing? In other words, do I only need to check that spongycastle -- which I presume is a fork of bouncycastle -- handles things reasona…
1) reading from /dev/urandom takes more than 10ms causing an entropy error
2) a malloc fails causing the error to be saved to the fallback ERR_STATE instead of the thread local ERR_STATE
3) java sees failing code and tries to read the last error but now malloc succeeds so it reads it from its local thread ERR_STATE which succeeds or some other thread has clobbered the fallback ERR_STATE
4) java doesn't throw an exception because it sees no error
the other possibility is the openssl random state is shared between processes due to forking. i hear there is a process called the zygote that warms up the vm and forks to create apps. if it initialises openssl then it is possible child processes could get the same random state.