Bitcoin/Clé privée : Différence entre versions

De WikiOpenTruc
Aller à : navigation, rechercher
(Page créée avec « <pre> ex : 4300d94bef2ee84bd9d0781398fd96daf98e419e403adc41957fb679dfa1facd 0123456789012345678901234567890123456789012345678901234567890123 </pre> 256 bits = 64 chiffr... »)
 
Ligne 1 : Ligne 1 :
  
 +
 +
<!--
 +
* les paiements sont signés (grâce à de la [[cryptographie]] réputée incassable/infalsifiable)
 +
-->
 +
 +
* avec la monnaie bitcoin, on ne trimbale pas de porte-monnaie. On trimbale des clés d'accès à des adresses (comptes).
 +
 +
* une adresse de compte n'est rien sans la clé privée permettant d'y accéder. Sans la clé privée associée à une adresse, il est impossible de disposer des fonds disponibles sur l'adresse. Et si vous n'avez pas la clé privée d'une adresse, cela peut aussi signifier que quelqu'un d'autre possède cette clé privée. Donc, non seulement vous ne pouvez pas accéder aux fonds, mais un autre le peut.
 +
 +
* détenir des bitcoins, c'est posséder des clés privées de compte publics. Ce sont les clés privées qui sont à la base. Une adresse bitcoin est fabriquée (de façon déterministe) à partir d'une clé privée.
 +
 +
* il est parfaitement idiot (sauf pour de petites sommes) de stocker ses clés sur un site truc ou machin
 +
** le site peut être piraté, du dehors ou du dedans (complicités internes, voire le patron) ... et on est dépouillé. Les arnaques se comptent par dizaines et sont régulières.
 +
** pour des pirates, tant qu'à mener des attaques, autant attaquer des lieux où se trouvent des centaines de clés privées
 +
** il est plus sûr de stocker ses clés sur du matériel personnel, par exemple du matériel déconnecté d'internet
 +
 +
* à chaque fois qu'une clé circule (sur un fil, dans l'ordi, ou via wifi) elle est potentiellement vulnérable
 +
** en conséquence, c'est la réduction du nombre de transmission(s) qui doit être visée
 +
 +
* la clé publique et l'adresse bitcoin sont générées à partir de la clé privée
 +
 +
* la clé publique sert (c'est sa seule utilité) à prouver qu'on est bien le propriétaire d'une adresse donnée.
 +
 +
<br>
 +
 +
==Exemple de clé privée==
 
<pre>
 
<pre>
 
ex :  
 
ex :  
Ligne 6 : Ligne 32 :
 
</pre>
 
</pre>
  
256 bits = 64 chiffres hexadécimaux (2²⁵⁶=16⁶⁴) => 16⁶⁴ possibilités, 16⁶⁴ = 1.15⁷⁷
+
256 bits = 64 x 4 bits = 64 chiffres hexadécimaux (2²⁵⁶=16⁶⁴) => 16⁶⁴ possibilités, 16⁶⁴ = 1.15⁷⁷
  
 
Tel quel, c'est assez spacieux pour y choisir sa clé sans qu'elle puisse être devinée.
 
Tel quel, c'est assez spacieux pour y choisir sa clé sans qu'elle puisse être devinée.
Ligne 26 : Ligne 52 :
 
On dispose, par sécurité, d'un espace de base immense (1.15x10⁷⁷) pour le choix d'une clé.
 
On dispose, par sécurité, d'un espace de base immense (1.15x10⁷⁷) pour le choix d'une clé.
  
Attention à ne pas réduire de facto cet espace de choix !
+
Attention à ne pas réduire trop de facto cet espace de choix !
 
car il se prêtera alors éventuellement plus facilement à des tentatives d'explorations.
 
car il se prêtera alors éventuellement plus facilement à des tentatives d'explorations.
  

Version du 19 mai 2018 à 17:40


  • avec la monnaie bitcoin, on ne trimbale pas de porte-monnaie. On trimbale des clés d'accès à des adresses (comptes).
  • une adresse de compte n'est rien sans la clé privée permettant d'y accéder. Sans la clé privée associée à une adresse, il est impossible de disposer des fonds disponibles sur l'adresse. Et si vous n'avez pas la clé privée d'une adresse, cela peut aussi signifier que quelqu'un d'autre possède cette clé privée. Donc, non seulement vous ne pouvez pas accéder aux fonds, mais un autre le peut.
  • détenir des bitcoins, c'est posséder des clés privées de compte publics. Ce sont les clés privées qui sont à la base. Une adresse bitcoin est fabriquée (de façon déterministe) à partir d'une clé privée.
  • il est parfaitement idiot (sauf pour de petites sommes) de stocker ses clés sur un site truc ou machin
    • le site peut être piraté, du dehors ou du dedans (complicités internes, voire le patron) ... et on est dépouillé. Les arnaques se comptent par dizaines et sont régulières.
    • pour des pirates, tant qu'à mener des attaques, autant attaquer des lieux où se trouvent des centaines de clés privées
    • il est plus sûr de stocker ses clés sur du matériel personnel, par exemple du matériel déconnecté d'internet
  • à chaque fois qu'une clé circule (sur un fil, dans l'ordi, ou via wifi) elle est potentiellement vulnérable
    • en conséquence, c'est la réduction du nombre de transmission(s) qui doit être visée
  • la clé publique et l'adresse bitcoin sont générées à partir de la clé privée
  • la clé publique sert (c'est sa seule utilité) à prouver qu'on est bien le propriétaire d'une adresse donnée.


Exemple de clé privée

ex : 
4300d94bef2ee84bd9d0781398fd96daf98e419e403adc41957fb679dfa1facd
0123456789012345678901234567890123456789012345678901234567890123

256 bits = 64 x 4 bits = 64 chiffres hexadécimaux (2²⁵⁶=16⁶⁴) => 16⁶⁴ possibilités, 16⁶⁴ = 1.15⁷⁷

Tel quel, c'est assez spacieux pour y choisir sa clé sans qu'elle puisse être devinée.

Une clé privée sert :

  • à chiffrer des messages (en l'occurrence des transactions)
  • à générer une clé publique
  • à générer une adresse (n° de compte)


Fabrication d'une clé privée, les pièges à éviter

Problème : vu sa longueur, une clé privée bitcoin aléatoire est impossible à mémoriser de tête. Et donc certains utilisateurs ont naturellement l'idée de fabriquer des clés pas trop difficiles à mémoriser.

C'est là où il faut faire attention.

On dispose, par sécurité, d'un espace de base immense (1.15x10⁷⁷) pour le choix d'une clé.

Attention à ne pas réduire trop de facto cet espace de choix ! car il se prêtera alors éventuellement plus facilement à des tentatives d'explorations.

Si vous songez eg à prendre un mot du dictionnaire (eg dans un dico standard de 50.000 mots) avec un coup de sha256 par dessus; vous passez d'un espace 1.15x10⁷⁷ à 5x10⁴. C'est tout simplement 10⁷³ fois plus petit, et facilement explorable (et exploré) par ordinateur. Et oui, des gens ont eu l'idée (et ça n'a pas été long) de passer tout le dictionnaire à la moulinette sha256, et à défaut de disposer d'une fonction inverse de sha256, ils disposent donc de cette fonction inverse sur un espace de départ certes petit ... mais peut-être pertinent (car quelques naïfs l'ont utilisé).

La clé publique et l'adresse sont déduites de la clé privée (par d'autres fonctions de hash) :

  • Clé publique = f(clé privée) = clé privée * base point
  • Adresse = g(clé publique)
  • Adresse = g(f(clé privée)) = h(clé privée)

Ici aussi, des personnes ont appliqué la fonction h sur tout le dictionnaire, et si une adresse présente dans la blockchain a le malheur d'appartenir à l'espace 5x10⁴ du dictionnaire, il suffit de la comparer aux résultats stockés de h(dico) pour la cibler et retrouver instantanément la clé privée génératrice.