{"id":100,"date":"2013-08-23T19:50:42","date_gmt":"2013-08-23T17:50:42","guid":{"rendered":"http:\/\/calypt.com\/blog\/?p=100"},"modified":"2013-08-23T19:54:46","modified_gmt":"2013-08-23T17:54:46","slug":"mauvaise-implementation-et-vol-de-bitcoins","status":"publish","type":"post","link":"https:\/\/www.calypt.com\/blog\/index.php\/mauvaise-implementation-et-vol-de-bitcoins\/","title":{"rendered":"Mauvaise impl\u00e9mentation et vol de Bitcoins"},"content":{"rendered":"<p>L&#8217;affaire a fait assez de bruit pour que le site officiel de Bitcoin se fende d&#8217;un <a title=\"Android Security Vulnerability\" href=\"http:\/\/bitcoin.org\/en\/alert\/2013-08-11-android\">communiqu\u00e9 <\/a>dat\u00e9 du\u00a011 ao\u00fbt 2013\u00a0: en effet des &#8220;pertes&#8221; de Bitcoins ont \u00e9t\u00e9 signal\u00e9s par des utilisateurs\u00a0de la monnaie \u00e9lectronique.<\/p>\n<p>Dans le <a title=\"Protocol specification\" href=\"https:\/\/en.bitcoin.it\/wiki\/Protocol_specification\">protocole <\/a>d&#8217;\u00e9change de monnaie Bitcoin, on appelle <em>entr\u00e9es<\/em>\u00a0(<em>inputs<\/em>) un ensemble de r\u00e9f\u00e9rences de transactions pr\u00e9c\u00e9demment effectu\u00e9es permettant d&#8217;assurer que la personne \u00e0 l&#8217;origine du transfert poss\u00e8de r\u00e9ellement la quantit\u00e9 de Bitcoins \u00e0 transf\u00e9rer. Les <em>sorties<\/em> (<em>outputs<\/em>) d\u00e9terminent le b\u00e9n\u00e9ficiaire de la transaction et seront les <em>entr\u00e9es<\/em> d&#8217;une future transaction.<\/p>\n<p>Chaque <em>entr\u00e9e<\/em> est sign\u00e9e par l&#8217;auteur de la transaction avec sa clef priv\u00e9e. Bitcoin utilise <a title=\"ECDSA\" href=\"http:\/\/en.wikipedia.org\/wiki\/Elliptic_Curve_DSA\">ECDSA <\/a>pour la signature.<\/p>\n<p>Une \u00e9tape de l&#8217;algorithme ECDSA de g\u00e9n\u00e9ration de signature consiste \u00e0 tirer un nombre al\u00e9atoire. Cette \u00e9tape est <strong>critique<\/strong> car si le m\u00eame nombre al\u00e9atoire est utilis\u00e9 pour g\u00e9n\u00e9rer les signatures de deux messages, on peut d\u00e9duire la clef priv\u00e9e ayant sign\u00e9 les messages.<\/p>\n<p>Or sur Android, une impl\u00e9mentation malheureuse de la m\u00e9thode <em>SecureRandom<\/em> de g\u00e9n\u00e9ration de nombres pseudo-al\u00e9atoires faisait qu&#8217;en sortie du PRNG les nombres n&#8217;\u00e9taient pas si al\u00e9atoires que cela. Dans le cas de Bitcoin cette m\u00e9thode \u00e9tait utilis\u00e9e dans cr\u00e9ation de la clef priv\u00e9e ainsi que pour tirer le fameux nombre &#8220;al\u00e9atoire&#8221; utilis\u00e9 lors de la signature des transactions.\u00a0Les transactions Bitcoin sont r\u00e9f\u00e9renc\u00e9es dans une base de donn\u00e9es publique (blockchain) partag\u00e9e par tous les utilisateurs du syst\u00e8me. Il semblerait que des petits malins aient r\u00e9cup\u00e9r\u00e9 des signatures des entr\u00e9es et en aient d\u00e9duit des clefs priv\u00e9es correspondantes.<\/p>\n<p>Bitcoin a <a href=\"http:\/\/bitcoin.org\/en\/alert\/2013-08-11-android\">mis \u00e0 jour<\/a> les applications Android pouvant poser probl\u00e8me et Android devrait \u00eatre\u00a0<a href=\"http:\/\/android-developers.blogspot.fr\/2013\/08\/some-securerandom-thoughts.html\">patch\u00e9<\/a>.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>L&#8217;affaire a fait assez de bruit pour que le site officiel de Bitcoin se fende d&#8217;un communiqu\u00e9 dat\u00e9 du\u00a011 ao\u00fbt 2013\u00a0: en effet des &#8220;pertes&#8221; de Bitcoins ont \u00e9t\u00e9 signal\u00e9s par des utilisateurs\u00a0de la monnaie \u00e9lectronique. Dans le protocole d&#8217;\u00e9change de monnaie Bitcoin, on appelle entr\u00e9es\u00a0(inputs) un ensemble de r\u00e9f\u00e9rences de transactions pr\u00e9c\u00e9demment effectu\u00e9es permettant [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_mi_skip_tracking":false},"categories":[24,23],"tags":[25,26],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v16.1.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<link rel=\"canonical\" href=\"https:\/\/www.calypt.com\/blog\/index.php\/mauvaise-implementation-et-vol-de-bitcoins\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Mauvaise impl\u00e9mentation et vol de Bitcoins - Calypt\" \/>\n<meta property=\"og:description\" content=\"L&#8217;affaire a fait assez de bruit pour que le site officiel de Bitcoin se fende d&#8217;un communiqu\u00e9 dat\u00e9 du\u00a011 ao\u00fbt 2013\u00a0: en effet des &#8220;pertes&#8221; de Bitcoins ont \u00e9t\u00e9 signal\u00e9s par des utilisateurs\u00a0de la monnaie \u00e9lectronique. Dans le protocole d&#8217;\u00e9change de monnaie Bitcoin, on appelle entr\u00e9es\u00a0(inputs) un ensemble de r\u00e9f\u00e9rences de transactions pr\u00e9c\u00e9demment effectu\u00e9es permettant [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.calypt.com\/blog\/index.php\/mauvaise-implementation-et-vol-de-bitcoins\/\" \/>\n<meta property=\"og:site_name\" content=\"Calypt\" \/>\n<meta property=\"article:published_time\" content=\"2013-08-23T17:50:42+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2013-08-23T17:54:46+00:00\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\">\n\t<meta name=\"twitter:data1\" content=\"2 minutes\">\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.calypt.com\/blog\/#website\",\"url\":\"https:\/\/www.calypt.com\/blog\/\",\"name\":\"Calypt\",\"description\":\"Security thoughts\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/www.calypt.com\/blog\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.calypt.com\/blog\/index.php\/mauvaise-implementation-et-vol-de-bitcoins\/#webpage\",\"url\":\"https:\/\/www.calypt.com\/blog\/index.php\/mauvaise-implementation-et-vol-de-bitcoins\/\",\"name\":\"Mauvaise impl\\u00e9mentation et vol de Bitcoins - Calypt\",\"isPartOf\":{\"@id\":\"https:\/\/www.calypt.com\/blog\/#website\"},\"datePublished\":\"2013-08-23T17:50:42+00:00\",\"dateModified\":\"2013-08-23T17:54:46+00:00\",\"author\":{\"@id\":\"https:\/\/www.calypt.com\/blog\/#\/schema\/person\/b8e19734abc8e33cb4ae7cf56a4b9f73\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.calypt.com\/blog\/index.php\/mauvaise-implementation-et-vol-de-bitcoins\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.calypt.com\/blog\/index.php\/mauvaise-implementation-et-vol-de-bitcoins\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.calypt.com\/blog\/index.php\/mauvaise-implementation-et-vol-de-bitcoins\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.calypt.com\/blog\/\",\"url\":\"https:\/\/www.calypt.com\/blog\/\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.calypt.com\/blog\/index.php\/mauvaise-implementation-et-vol-de-bitcoins\/\",\"url\":\"https:\/\/www.calypt.com\/blog\/index.php\/mauvaise-implementation-et-vol-de-bitcoins\/\",\"name\":\"Mauvaise impl\\u00e9mentation et vol de Bitcoins\"}}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.calypt.com\/blog\/#\/schema\/person\/b8e19734abc8e33cb4ae7cf56a4b9f73\",\"name\":\"Calypt\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.calypt.com\/blog\/#personlogo\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/559f7cccd6f8b48e554537c52d221ac4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/559f7cccd6f8b48e554537c52d221ac4?s=96&d=mm&r=g\",\"caption\":\"Calypt\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","_links":{"self":[{"href":"https:\/\/www.calypt.com\/blog\/index.php\/wp-json\/wp\/v2\/posts\/100"}],"collection":[{"href":"https:\/\/www.calypt.com\/blog\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.calypt.com\/blog\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.calypt.com\/blog\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.calypt.com\/blog\/index.php\/wp-json\/wp\/v2\/comments?post=100"}],"version-history":[{"count":1,"href":"https:\/\/www.calypt.com\/blog\/index.php\/wp-json\/wp\/v2\/posts\/100\/revisions"}],"predecessor-version":[{"id":101,"href":"https:\/\/www.calypt.com\/blog\/index.php\/wp-json\/wp\/v2\/posts\/100\/revisions\/101"}],"wp:attachment":[{"href":"https:\/\/www.calypt.com\/blog\/index.php\/wp-json\/wp\/v2\/media?parent=100"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.calypt.com\/blog\/index.php\/wp-json\/wp\/v2\/categories?post=100"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.calypt.com\/blog\/index.php\/wp-json\/wp\/v2\/tags?post=100"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}