<oembed><type>rich</type><version>1.0</version><author_name>npub1p6uknnmm7wknvg9cq5wqsf7ulpsrdzd6zt6qw707y5t05fuzvfdsx8etde</author_name><author_url>https://nostr.ae/npub1p6uknnmm7wknvg9cq5wqsf7ulpsrdzd6zt6qw707y5t05fuzvfdsx8etde</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2018-04-06&#xA;📝 Original message:Source?&#xA;&#xA;On Fri, Apr 6, 2018 at 4:53 PM, ketamine--- via bitcoin-dev &lt;&#xA;bitcoin-dev at lists.linuxfoundation.org&gt; wrote:&#xA;&#xA;&gt; A significant number of past and current cryptocurrency products&#xA;&gt; contain a JavaScript class named SecureRandom(), containing both&#xA;&gt; entropy collection and a PRNG. The entropy collection and the RNG&#xA;&gt; itself are both deficient to the degree that key material can be&#xA;&gt; recovered by a third party with medium complexity. There are a&#xA;&gt; substantial number of variations of this SecureRandom() class in&#xA;&gt; various pieces of software, some with bugs fixed, some with additional&#xA;&gt; bugs added. Products that aren&#39;t today vulnerable due to moving to&#xA;&gt; other libraries may be using old keys that have been previously&#xA;&gt; compromised by usage of SecureRandom().&#xA;&gt;&#xA;&gt;&#xA;&gt; The most common variations of the library attempts to collect entropy&#xA;&gt; from window.crypto&#39;s CSPRNG, but due to a type error in a comparison&#xA;&gt; this function is silently stepped over without failing. Entropy is&#xA;&gt; subsequently gathered from math.Random (a 48bit linear congruential&#xA;&gt; generator, seeded by the time in some browsers), and a single&#xA;&gt; execution of a medium resolution timer. In some known configurations&#xA;&gt; this system has substantially less than 48 bits of entropy.&#xA;&gt;&#xA;&gt; The core of the RNG is an implementation of RC4 (&#34;arcfour random&#34;),&#xA;&gt; and the output is often directly used for the creation of private key&#xA;&gt; material as well as cryptographic nonces for ECDSA signatures. RC4 is&#xA;&gt; publicly known to have biases of several bits, which are likely&#xA;&gt; sufficient for a lattice solver to recover a ECDSA private key given a&#xA;&gt; number of signatures. One popular Bitcoin web wallet re-initialized&#xA;&gt; the RC4 state for every signature which makes the biases bit-aligned,&#xA;&gt; but in other cases the Special K would be manifest itself over&#xA;&gt; multiple transactions.&#xA;&gt;&#xA;&gt;&#xA;&gt; Necessary action:&#xA;&gt;&#xA;&gt;   * identify and move all funds stored using SecureRandom()&#xA;&gt;&#xA;&gt;   * rotate all key material generated by, or has come into contact&#xA;&gt;     with any piece of software using SecureRandom()&#xA;&gt;&#xA;&gt;   * do not write cryptographic tools in non-type safe languages&#xA;&gt;&#xA;&gt;   * don&#39;t take the output of a CSPRNG and pass it through RC4&#xA;&gt;&#xA;&gt; -&#xA;&gt; 3CJ99vSipFi9z11UdbdZWfNKjywJnY8sT8&#xA;&gt; _______________________________________________&#xA;&gt; bitcoin-dev mailing list&#xA;&gt; bitcoin-dev at lists.linuxfoundation.org&#xA;&gt; https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&#xA;&gt;&#xA;&#xA;&#xA;&#xA;-- &#xA;Matías Alejo Garcia&#xA;@ematiu&#xA;Roads? Where we&#39;re going, we don&#39;t need roads!&#xA;-------------- next part --------------&#xA;An HTML attachment was scrubbed...&#xA;URL: &lt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20180406/7cdc248c/attachment-0001.html&gt;</html></oembed>