certifier document numerique

Certifier l’existence d’un document numérique

Dans le passé, de nombreux chercheurs en informatique se sont intéressés à trouver un moyen de certifier l’existence d’un document numerique à un moment précis (date et heure). Cela s’appelle timestamping. Jusqu’à présent, cela s’est toujours fait par l’intervention d’un notaire ou d’une autre autorité pouvant certifier l’existence du document. La technologie de la blockchain, introduite par bitcoin, a cependant complètement changé la donne en rendant disponible un registre universel, ouvert, accessible à tous et immuable, capable de créer une sorte de calendrier partagé et distribué.

Bitcoin, nous le savons tous, est un système économique décentralisé, utilisé pour effectuer des transactions entre des personnes éloignées qui ne se connaissent pas, avec une sécurité maximale et sans intermédiaire financier. En pratique, bitcoin nous permet d’échanger de la valeur en appuyant notre sécurité sur un protocole mathématique précis et non modifiable, capable d’assurer la confiance de toutes les parties concernées.

La blockchain peut résoudre le problème de la certification?

Mais comment bitcoin peut-il également aider à résoudre le problème de la certification? La réponse se trouve dans la chaîne de blocs utilisée par bitcoin. La blockchain est en fait un registre comptable dans lequel les transactions sont en séquence dans un ordre temporel acceptée par tous les nœuds du réseau (consensus) et non modifiable. La blockchain de bitcoin certifie ensuite de manière temporelle précise chaque transaction qu’elle contient, comme s’il s’agissait d’une véritable “horloge” du passé, absolument immuable.
Pour toutes ces raisons, nous pouvons donc penser à une opération particulière qui peut inscrire dans ce registre non pas un mouvement comptable comme cela se fait habituellement, mais une autre information numérique. On peut donc utiliser la chaîne de blocs pour stocker une petite partie des informations dans un bloc afin de certifier que ces informations existaient réellement à ce moment précis. Ces informations deviendraient immuables et irréfutables.

L’opérateur OP_RETURN

Cela est possible depuis la version 0.9 du bitcoin core qui a introduit l’opérateur RETURN. Avec cet opérateur, nous pouvons écrire 80 bytes de données non liées à un paiement, sur une “output” de transaction. Dans ce cas, cependant, l’opérateur RETURN crée une output non consommable qui ne doit pas être enregistrée dans le UTXO set. De cette façon, la chaîne de blocs peut stocker les données sans créer de fausses UTXO.

Vous vous demandez peut-être : que fais-je avec seulement 80 bytes de données ? Aucun document n’est si petit que je puisse traiter si peu d’informations. Mais c’est là que la magie des mathématiques et du cryptage entre en jeu. En fait, nous n’allons pas écrire les données correspondant au document, mais un “digest” de celui-ci, c’est-à-dire le résumé du document.

L’hash du document

Nous pouvons facilement calculer un hash sha256 du document (32 bytes) et sauvegarder cette information dans la transaction. Le hash du document est un nombre hexadécimal qui représente le “résumé” du document, il n’est pas inversible et n’est pas sujet à collision (on ne peut pas trouver deux données différentes avec le même hash – ou plutôt il y a une très faible probabilité que cela se produise). De plus, le hash est déterministe, dans le sens où chaque fois que je le calcule sur le même document, j’obtiens toujours le même résultat.

Ce nombre peut être utilisé pour vérifier l’intégrité d’un document, en fait il suffit de changer un byte du document numérique pour obtenir un digest complètement différent. Donc, si nous prenons un document numérique, calculons son hash et enregistrons ensuite ce hash dans une transaction de bitcoin, nous aurons certifié l’existence de ce document à ce moment précis, de manière sûre, immuable et irréfutable.

Pour cette opération, les 80 bytes sont suffisants et nous avons également la possibilité d’ajouter une autre petite quantité de données à l’hash du document qui est en fait de juste 256 bits.

tx return transaction

Ce type de certification nécessite une transaction. Dans cette transaction, il n’y a aucune dépense de bitcoin à l’exception des frais payés aux mineurs pour la vérification de la transaction elle-même. Comme d’habitude, après 6 confirmations, nous pouvons considérer que la transaction est complètement sécurisée et ancrée dans la blockchain, puis le document vérifié.

Comment pouvez-vous vérifier par la suite que le document existait à cette date ? il suffit de conserver l’identifiant de la transaction (dans notre cas, une sorte de reçu de certification). à ce stade, n’importe qui peut vérifier sur la blockchain cette transaction, visualiser le hash enregistré ci-dessous à l’opérateur RETURN pour confirmer que ce hash est présent.

Accélération des transactions bitcoin

Accélération des transactions bitcoin avec RBF et CPFP

Dans cet article technique, nous allons examiner comment nous pouvons accélérer une transaction qui a déjà été envoyée mais qui est restée en attente dans le mempool depuis longtemps. Dans ce cas, en fait, cela signifie qu’aucun mineur n’a encore saisi la transaction dans son bloc miné. Cela se produit généralement parce que vous définissez des frais trop bas pour la transaction ou parce que les frais augmentent soudainement immédiatement après l’arrivée de votre transaction dans le mempool (il est conseillé d’utiliser un explorateur pour voir le statut des frais et du mempool, par exemple avec le bot telegram @btcnode_bot).
Voyons maintenant comment nous pouvons résoudre efficacement la situation. Il est important de noter que tant que la transaction n’est pas écrite sur la blockchain, elle ne peut être considérée comme efficace et valable. Vous devez attendre la première confirmation, puis les suivantes.

btcnode_bot mempool fees

Double spend & RBF

Que signifie “double spend” ? Cela signifie produire deux transactions qui dépensent les mêmes UXTOs. Formellement rien ne vous empêche de faire cela. La question est la suivante: “Que fait un nœud s’il voit deux tx de double dépense ?
Vous ne savez pas, parce que vous ne contrôlez pas les nœuds des autres. Par défaut, ils doivent accepter le premier et rejeter les autres, mais ils n’ont aucun moyen de faire respecter ces règles. Avec RBF (replace by fee), vous pouvez aller remplacer une TX qui est déjà dans mempool. Comme les nœuds rejettent par défaut les doubles dépenses, le RBF a été inventé pour “dire” aux nœuds que vous envoyez une TX et que vous pourriez devoir augmenter les frais. En gros, les nœuds acceptent que vous augmentiez les frais.

Mais comme vous n’avez aucun contrôle sur les nœuds, vous ne savez pas quel TX entrera. Ce sont les nœuds des mineurs qui décident du TX à laisser entrer dans le bloc. Les nœuds qui acceptent le RBF admettent qu’une tx ultérieure avec des frais plus élevés remplacera celle qu’ils ont déjà reçue dans le mempool. RBF doit etre défi par l’expéditeur et ce dernier peut augmenter les frais avant que la transaction ne soit confirmée, par exemple via electrum (wallet)[¹] qui prend en charge cette fonction.

rbf electrum wallet

Utiliser la méthode CPFP

C’est un acronyme pour “child pays for parents“. Ce n’est pas une caractéristique, mais cela fait partie du système économique de bitcoin. Fondamentalement, lorsque les mineurs décident de la TX à inclure, ils agissent comme un tout. Ils incluront donc volontiers une transaction à frais élevés même si elle est le résultat d’une transaction à frais faibles[²]. Si la moyenne des frais est supérieure à la valeur actuelle des frais, ils accepteront d’inclure les deux transactions. Voyons comment les appliquer dans les deux situations où vous êtes soit l’expéditeur de la transaction, soit le destinataire de la transaction.

CPFP si vous êtes le bénéficiaire

Pour ce faire, si vous êtes le destinataire, vous pouvez créer une nouvelle transaction, en utilisant l’UTXO reçu (ou l’un de ceux reçus) pour construire une nouvelle transaction pour vous-même (à votre adresse) avec des frais tels que la moyenne avec les frais précédents est plus élevée que les frais actuels par transaction. De cette manière, les deux seront rapidement vérifiés.

CPFP Si vous êtes l’expéditeur de la transaction

Si vous êtes l’expéditeur, vous pouvez toujours utiliser cette méthode, voici comment. Dans la transaction que vous avez envoyée, il y a presque certainement un reste. Prenez alors l’UXTO lié au reste et utilisez-le pour vous constituer une nouvelle transaction à des frais très élevés.

Comme vous avez pu le voir dans cet article, il est donc possible et aussi très simple d’accélérer une transaction qui se trouve dans le mempool depuis longtemps. Nous avons vu comment il est possible de le faire avec les deux techniques les plus utilisées. J’espère vous avoir été utile et avoir apporté une valeur ajoutée. Je reste à votre disposition.

Notes:

[¹] electrum est un portefeuille bitcoin très efficace et utilisé

[²] une transaction ne peut être confirmée sans que le parent ne soit confirmé, car une transaction de fille n’existe pas si le parent n’existe pas.

Générer un portefeuille bitcoin en papier (paper-wallet)

Générer un portefeuille bitcoin en papier (paper-wallet)

Qu’est-ce qu’un portefeuille en papier Bitcoin à adresse unique ? Il ne s’agit que d’une paire de clés spécialement générée avec l’adresse de réception correspondante. En pratique, vous utilisez un script pour générer une clé privée en utilisant une entropie réelle et vous générez ensuite l’adresse de réception correspondante dans les formats autorisés par le protocole Bitcoin.

Aucun dispositif externe ne doit être impliqué dans la génération mais seulement un ordinateur sans connexion Internet (ceci est très important pour la sécurité). C’est pourquoi on utilise souvent une distribution live, comme pas example “tails“.

Ce type de portefeuille en papier n’est pas dérivé d’une clé “seed” ou d’un mnémonique de 24 mots. Il ne s’agit donc pas d’un portefeuille déterministe hiérarchique (HD), mais seulement d’une clé unique avec adresse associée. De cette façon, vous pouvez recevoir des bitcoins sans utiliser de dispositif matériel.

Pour générer un portefeuille en papier, il est essentiel d’utiliser une source d’entropie réelle capable de produire des clés véritablement aléatoires. Le scénario que je vous fournis à titre de référence utilise en fait le caractère aléatoire provenant du bruit de fond du microphone de l’ordinateur.

Un portefeuille en papier est-il en sécurité ?

La sécurité du portefeuille en papier est déterminée par la méthode par laquelle le portefeuille en papier est généré et les conditions entourant l’environnement dans lequel il est généré. La sécurité dépend en effet de la déconnexion totale de l’ordinateur de génération et de la présence de logiciels malveillants. Il est clair qu’en générant un portefeuille papier, nous déplaçons la confiance vers le système d’exploitation que nous utilisons. Les principaux avertissements sont les suivants :

  • Utilisez une distribution linux live comme “tails” et désactivez le support réseau, en déconnectant aussi physiquement le connecteur réseau;
  • Ne pas imprimer le portefeuille obtenu sur papier mais le transférer sur une clé usb après l’avoir formaté ou le transférer par le biais du scan du qrcode produit par le script; si vous voulez vraiment imprimer le portefeuille, assurez-vous de le faire sur une imprimante qui ne possède pas de mémoire interne afin que la clé privée n’y soit pas stockée.
  • S’assurer qu’il n’y a pas d’appareil électronique qui puisse reprendre les opérations (caméras, webcam ou même la webcam d’un téléphone portable);

Il est clair qu’il peut être compliqué d’obtenir des conditions optimales pour la génération du portefeuille et je ne recommande donc pas de garder de grosses sommes sur un portefeuille de ce type. Toutefois, c’est une excellente solution pour transférer les bitcoins au porteur (en livrant simplement un morceau de papier), ou pour les cartes de fidélité ou les cartes-cadeaux.

Le script que j’ai créé est réalisé en python en utilisant un nombre minimal de bibliothèques. Il est plutôt recommandé de ne pas utiliser de scripts en ligne et de ne pas utiliser de scripts qui utilisent un grand nombre de bibliothèques, encore plus si les bibliothèques utilisées ne sont pas standard.

Comment l’utiliser?

Les fonds déposés sur un portefeuille en papier peuvent être transférés dans votre portefeuille froid grâce à la fonction de “sweep” (par example dans le logiciel electrum). Dans un prochain article, nous pourrions voir comment faire.

Les fonds sur un portefeuille en papier peuvent être vérifiés à l’aide d’un explorer (bitcoin blockchain explorer) ou d’un nœud bitcoin. il suffit d’entrer l’adresse publique correspondante et de visualiser le solde rapporté par l’explorer.

Executer le script

Le script est évidemment gratuit, open source et sans garantie ni support. Vous pouvez le télécharger à partir du dépôt github à l’adresse url :

https://github.com/massmux/Papergen

le script doit être exécuté sur un ordinateur équipé d’un microphone en état de marche car il utilise l’entropie du bruit du microphone pour générer un nombre aléatoire de 256 bits pour la clé privée. En l’exécutant sur la testnet, voici le type de résultat que vous obtenez (n’envoyer pas aucune transaction a ces addresses)

massmux@augustus:~/Papergen$ ./papergen.py -n testnet
**WALLET**

network : bitcoin testnet
private : 27656071d377dcf3688d16a987329846175ba03bd3d6a95a06752293d8d6babc
public : 02265FBAFEE5AA97F6C229E744BAF3E8B60CB85EA9EEE44EC515437329B2FA6171
hash160 : 8012e50d4452e26ade1e2e9ce6051e36f4e60301
WIF : cNuHKz4SW968tCQcKCnJvdYYA5wSpVWM2t5mZzHJNpfkxxKEnzSK
p2pkh : msC9RSKks8wfNDU2WMyjeBLzn3T5tH3tZs      (legacy address)
p2wpkh-ps2h : 2Mwh3yqzhrBRVtrQQHHSkZVP3E4FzkjgMmJ   (segwit)
p2wpkh : tb1qsqfw2r2y2t3x4hs796wwwvpg7xm6wvqcp0pmx3v  (native segwit, bech32)

J’espère que je vous ai intrigué et aidé avec cet article. Bitcoin nous permet d’entrer dans la finance numérique de plusieurs façons et de développer de nombreuses technologies à coté. C’est pourquoi il s’agit d’une technologie révolutionnaire qui fait l’objet d’un consensus de plus en plus large dans le monde, même dans une période de crise comme celle-ci, où les banques et la finance traditionnelles s’effondrent.

secrets steganographie

La sauvegarde des mots d’un portefeuille bip39: par la stéganographie?

Lors de l’activation d’un portefeuille bitcoin, tant matériel que logiciel, il est important de sauvegarder les 24 mots bip39 pour le restaurer en cas de panne. C’est très important car cela te permet d’avoir à nouveau accès aux fonds en cas de perte ou de destruction de l’appareil ou de compromission des données locales.

La règle de base qui est toujours citée est de copier la sauvegarde des 24 mots bip39 sur papier avec un stylo et de la stocker ensuite en toute sécurité. ça est toujours une bonne règle. Le plus grand risque est de perdre le papier, de l’abîmer, de se le faire voler ou que quelqu’un ne puisse que le voir. En fait, il suffit que les mots soient lus rapidement pour que l’argent soit volé. La sécurité de la feuille de papier contenant les 24 mots est donc cruciale pour la sécurité de vos fonds.

Certains parlent même de mettre le papier dans une boîte de banque, ce qui est absurde car le bitcoin est en soi l’outil avec lequel on peut devenir indépendant des banques.

Il existe également des systèmes de sauvegarde basés sur des lettres d’acier qui sont intégrés dans des fentes spéciales pour le stockage le plus sûr de cette sauvegarde. Il s’agit certainement d’une méthode très efficace et aussi largement utilisée.

La sécurité de la sauvegarde des 24 mots d’un portefeuille bip39 est donc cruciale pour la sécurité de vos fonds

Beaucoup de gens craignent que leur sauvegarde soit volée ou que leur portefeuille soit fissuré, mais presque personne ne se soucie de perdre la sauvegarde et pourtant c’est la situation qui se produit le plus souvent, surtout lorsque l’utilisateur est inexpérimenté ou n’a pas un degré suffisant de préparation technique.

Soit la sauvegarde n’est plus accessible parce qu’elle a été protégée d’une manière trop complexe et non adaptée à sa propre connaissance.

Maintenant nous voyons une possibilité différente, ingénieuse, à toi de décider ensuite si tu veux la mettre en oeuvre et si elle est pour toi. Dans cette article je la décris et j’explique comment elle fonctionne. Cette technique peut également être utilisée pour cacher n’importe quelle autre information. Comme tu le sais je ne donne jamais d’informations sans expliquer pourquoi ce que je dis avec des données, des démonstrations et des explications concrètes.

C’est parce que je crois que tu dois comprendre ce que tu fais et je considère que le travail de ceux qui donnent des conseils est inutile sans fournir de preuves et d’explications sur ce que tu fais, que ce soit bien ou pas.

Qu’est-ce que la stéganographie

En utilisant la stéganographie, nous cachons un message dans une image à haute résolution, en nous assurant qu’il est caché imperceptiblement dans l’image.

La stéganographie est une technique mathématique qui permet de cacher des données numériques dans une image numérique à haute résolution.

Une technique très utilisée est la stéganographie des bits les moins significatifs (LSB). Si j’ai une image, je peux changer les bits les moins significatifs (pour chaque séquence de 8 bits) pour inclure mon message et de cette façon l’image change imperceptiblement surtout si l’image a une haute résolution et que le message à cacher n’est pas trop grand en termes de bytes.

Chaque octet est de 8 bits, on accroche les deux derniers (moin significatifs) et on met notre message. De cette façon, les données modifiées sont négligeables sur l’image et il est extrêmement difficile de voir un changement réel sur l’image elle-même. Donc tous les 8 bits, 6 sont l’image et les 2 autres sont notre message secret. Nous appliquons cette technique à toutes les données numériques de l’image source et obtenons une nouvelle image qui diffère très peu de l’image originale.

Notes importantes pour la stéganographie

  • ne pas utiliser une image du domaine public car dans ce cas il y a une référence et il est facile de comprendre qu’elle est différente quand on compare l’image originale avec l’image stéganographique;
  • utiliser une photo en haute résolution;
  • le message à cacher doit être crypté, par exemple avec gpg, sous forme de texte; vous ne devez jamais cacher un message en texte clair sans le crypter au départ;
  • l’image stéganographique doit se trouver stocké dans un groupe de nombreuses images du même type et du même format pour ne pas attirer l’attention;

Cacher les 24 mots (le secret)

Les 24 mots bip39 sauvegardés par un portefeuille bitcoin sont un exemple des quelques données que l’on peut effectivement cacher avec la stéganographie après les avoir cryptées. En fait, nous pouvons également utiliser la stéganographie pour cacher tout type de données confidentielles après les avoir cryptées. Cela garantit non seulement que les données ne sont pas lisibles, mais aussi qu’elles ne peuvent même pas être trouvées sur un support informatique.

Pour le cryptage, nous pouvons utiliser un cryptage asymétrique avec une paire de clés PGP (par exemple en utilisant gnu PG sous linux).  Au niveau de la stéganographie, il existe de nombreuses bibliothèques. J’utilise généralement stegolsb écrit en python.

J’espère avoir été utile, partager cet article, laisser un commentaire ou un commentaire pour soutenir mon travail de divulgation ouverte, très important pour la diffusion des connaissances technologiques, la vie privée et la liberté individuelle.

signature numerique

Comment fonctionne la signature numérique

La signature numérique permet d’ajouter à tout document ou message une preuve que le document provient réellement de l’expéditeur et n’a pas été altéré entre-temps. Cela peut être vérifié en utilisant la clé publique de l’expéditeur et si la vérification est bonne, alors il ne fait aucun doute que la signature a été créée en utilisant la clé privée appartenant uniquement à l’expéditeur.

Ainsi, la signature numérique peut

  • prouver que le message n’a pas été modifié (intégrité) ;
  • prouver la source du message (authentification) ;
  • s’assurer que la signature numérique n’est pas fausse e que le signataire ne peut pas la répudier (non répudiation) ;

La signature numérique est réalisée par la clé privée de l’expéditeur (ou du signataire) et :

  • le document n’a pas besoin d’être crypté ;
  • personne d’autre ne peut signer, car seul l’expéditeur possède la clé privée ;
  • toute modification du message (ou du document) invalidera la signature ;
  • pour vérifier la signature numérique, la clé publique correspondante est nécessaire ;

Comment l’expéditeur procède-t-il à la signature numérique ?

Voyons, étape par étape, comment se déroule la procédure de création d’une signature numérique à l’aide de la clé privée de l’expéditeur :

  • Alice veut envoyer un document simple à Bob et veut le signer de manière à ce que Bob soit sûr qu’il provient bien d’Alice et que personne ne l’ait altéré en venant le voir ;
  • Alice a créé le hash du document à l’aide d’une fonction de hashing (par example SHA256). Le résultat est également appelé “message/document digest” ;
  • Le digest du document est crypté avec la clé privée d’Alice. C’est ce qu’on appelle la “signature numérique” (digital signature) d’un tel document ;
  • Le document simple est envoyé à Bob avec la signature numérique ;

Comment le destinataire vérifie la signature numérique

Nous allons maintenant voir comment Bob peut recevoir le document et vérifier que la signature numérique appartient bien à Alice et que le document n’a pas été falsifié :

  • Bob reçoit à la fois la signature numérique et le document en clair;
  • Bob utilise la clé publique d’Alice pour décrypter la signature numérique et obtient ainsi le digest du document tel qu’envoyé par Alice ;
  • Bob prend le document ordinaire et calcule lui-même le digest du document en utilisant le même algorithme de hashing;
  • Enfin, Bob vérifie si le digest du document calculé indépendamment correspond au digest d’Alice (tel qu’il a été décrypté précédemment à l’aide de la clé publique d’Alice);
  • Si le digest correspond, il ne fait aucun doute que la signature est authentique et que seul le propriétaire de la clé privée correspondante a pu la créer : Alice.

 

Cette procédure est très importante aujourd’hui et utilisée dans de nombreuses procédures et technologies. La compréhension est donc une valeur clé pour tous. J’espère avoir été utile avec cet article technique à valeur ajoutée et si vous le souhaitez, vous pouvez me contacter sur les réseaux sociaux pour plus d’informations

frais transaction bitcoin

Les frais d’une transaction bitcoin

Quels sont les frais pour une transaction bitcoin ? Comme le bitcoin est décentralisé, il n’y a pas d’organisation ou d’entreprise qui gère ou demande ces frais. Alors, qu’est-ce que c’est ? Il s’agit d’une incitation économique qui fait partie du protocole bitcoin et qui sert à inciter le mineur qui vérifie le bloc de transaction, à ajouter la transaction dans son bloc après l’avoir validée. Lorsque cela se produit, la transaction reçoit une confirmation et est ensuite inscrite dans la blockchain

L’incitation économique est à la base du protocole bitcoin et c’est ce qui permet d’obtenir une très haute sécurité et une décentralisation en même temps. Le mineur en effet, outre les frais de transaction, obtient également la “reward”, c’est-à-dire un certain nombre de bitcoins (au moment de cet l’article 6.25) pour avoir validé le bloc ayant trouvé le hash correct selon les règles du protocole.

Quand les frais sont-ils payés ?

Les frais sont payés chaque fois que vous créez et envoyez une transaction bitcoin sur le réseau. Les frais sont payés lors de la transaction par la différence entre les inputs[1] et les outputs de la transaction. Presque tous les portefeuilles de bitcoin modernes effectuent ce calcul automatiquement et une valeur de frais est donc fixée directement à partir du portefeuille.

La fee est en fait une valeur qui évolue dans le temps et dépend du nombre de transactions dans le mempool[2] en attente de validation et des offres de redevance dans les autres transactions. Bien sûr, cela dépend aussi du temps que nous voulons attendre pour que notre transaction soit validée et ajoutée à la blockchain.

mempool

Il est conseillé de consulter le mempool pour connaître le nombre de transactions et déterminer le montant des frais à payer pour la transaction. De cette façon, vous payez toujours la valeur minimale possible.

Il y a des moments où l’utilisation de mempool est très faible et donc où le coût d’une transaction est très bas, alors que d’autres fois il y a une surcharge avec une augmentation conséquente des coûts.

Par exemple, la dernière “halving” a eu lieu en mai 2020. Immédiatement après la “halving”, nous avons constaté une forte augmentation du nombre de transactions dans le mempool, ce qui a entraîné une forte hausse des coûts (“cost increases”). En 2017 également, pendant la très forte croissance de la valeur du bitcoin, il y a eu une augmentation tout aussi forte des redevances avec des coûts pouvant aller jusqu’à quelques dizaines de dollars. Toutefois, à l’heure actuelle, la redevance est toujours très faible et est généralement de l’ordre de quelques centimes. Il est possible d’interroger un bot telegram (@btcnode_bot) afin d’établir le bon tarif du moment pour choisir le bon moment pour effectuer vos mouvements de bitcoin.
En fait, le montant dépend aussi de la rapidité avec laquelle nous voulons que notre transaction soit vérifiée.

btcnode_bot telegram bitcoin node

Comment sont exprimés les frais ?

Les frais sont exprimés en sat/b, ce qui signifie satoshi/byte. En pratique, il s’agit du nombre de satoshi à payer pour chaque byte de longueur d’une transaction. Par exemple, une transaction envoyée à plusieurs destinataires est plus longue qu’une transaction envoyée à un seul destinataire et qui dépense tout son “input”. Le Satoshi est la plus petite unité de bitcoin disponible, égale à 10^-8 bitcoins.

Définitions

[1] input/output: Une input est une référence à une output d’une transaction précédente. Les inputs multiples sont souvent énumérées dans une transaction. Une output contient des instructions pour l’envoi de bitcoins. La valeur est le nombre de Satoshi (1 BTC = 100.000.000 Satoshi) que cette output vaudra au moment de la demande.

[2] mempool: Le mempool est l’endroit où toutes les transactions valides attendent d’être confirmées par le réseau Bitcoin. Une taille élevée du mempool indique un trafic réseau plus important, ce qui se traduit par un temps de confirmation moyen plus long et des frais de priorité plus élevés. La taille du mempool est une bonne mesure pour estimer la durée de l’encombrement.

 

J’espère vous avoir fourni des informations et des considérations à valeur ajoutée avec cet article et je reste à votre disposition pour toute clarification et commentaire supplémentaires

malware airgapped

Ramsay, le malware créé pour attaquer les systèmes Air-gapped

De nouvelles frontières s’ouvrent en matière de cyberattaques sur les ordinateurs. Aujourd’hui, nous effectuons de multiples opérations avec des ordinateurs et nous contrôlons également notre argent et nos bitcoins, de sorte que la surface d’attaque est beaucoup plus importante qu’il y a quelques années. Cela signifie que les attaques sur les réseaux informatiques peuvent toujours rapporter plus d’argent aux pirates. Pensez au vol de données, au ransomware, à la fishing, à l’accès illégal, etc.

Ce type d’attaque est également très important pour tous ceux qui sont impliqués dans la sécurité de Bitcoin. En fait, vous disposez souvent d’ordinateurs dédiés à la gestion des portefeuilles Bitcoin, qui gèrent ensuite les clés ou affichent les soldes. Ces ordinateurs sont souvent offline, mais cela n’épargne pas toujours (comme nous le verrons dans l’article) l’ordinateur de certains types d’attaques informatiques.

Les chercheurs de l’ESET ont découvert un cadre de cyber-espionnage jusqu’alors non signalé que ont nommé Ramsay et qui est adapté à la collecte et à l’exfiltration de documents sensibles et est capable d’opérer au sein de réseaux aériens (airgapped systems). En fait aujourd’hui, on parle de Ramsay, une Toolkit d’espionnage informatique conçue pour attaquer les ordinateurs ou les réseaux qui sont “air-gapped”, c’est-à-dire isolés du réseau Internet.

Le malware Ramsay vise donc les ordinateurs ou les réseaux informatiques isolés d’Internet. Les auteurs du malware ont créé une technique qui lui permet d’atteindre les ordinateurs sans connexion et d’obtenir des données.

Mais qu’est-ce qu’un ordinateur hors ligne ou air-gapped?

Il s’agit d’un ordinateur qui est déconnecté du réseau afin d’être le mieux protégé contre les cyber-risques. Il s’agit d’une technique utilisée notamment pour les ordinateurs qui contiennent des informations sensibles, des données d’une importance particulière ou un accès à des biens.

Comme le système est hors ligne, cela réduit exponentiellement le risque qu’un pirate informatique compromette les machines en question en y accédant par l’internet.

Les pirates qui ont créé Ramsay ont cependant décidé d’essayer de surmonter cette forme de protection en équipant leurs logiciels malveillants d’une série d’outils qui leur permettent d’être efficaces même dans une situation où leurs cibles ont été complètement isolées du réseau.

Pour ce faire, le vecteur d’attaque choisi par les cybercriminels est l’utilisation de mémoires amovibles (clés USB et disques externes) que Ramsay utilise à la fois pour se propager d’une machine à l’autre et pour obtenir des données volées.

Comment ce malware se répand?

En ce qui concerne la diffusion, Ramsay exploite un schéma classique qui tire parti d’une vulnérabilité de Word (CVE-2017-11882) pour toucher la première cible au sein du réseau. Le logiciel malveillant injecte ensuite une copie de son code dans tous les fichiers exécutables portables (PE) qu’il peut atteindre dans les lecteurs de mémoire amovibles.

La stratégie utilisée par le malware, est basée sur le fait que tôt ou tard une des unités de mémoire sera connectée à l’ordinateur isolé lui permettant d’être infecté. Cela est probablement dû au fait que pour un ordinateur air-gapped, l’unité de mémoire externe est le seul moyen d’échanger des données à l’intérieur et à l’extérieur du système.

La même méthode est utilisée pour obtenir les données. Les informations considérées comme sensibles, qui ont généralement des formats tels que pdf, doc, excel ou tar ou des archives zip, sont stockées dans une section cachée du lecteur de mémoire, en attendant qu’un logiciel malveillant contenant les données volées soit transmis à un ordinateur ayant accès à Internet.

La raison d’être du malware n’est pas encore tout à fait claire, mais la description ci-dessus est l’hypothèse la plus crédible concernant son éventuel fonctionnement sur les systèmes Windows (analysé par eset).

Comment se protéger ?

Dans le contexte des cyber-attaques possibles avec les moyens techniques actuels, nous devons être encore plus prudents. Pour gérer nos portefeuilles Bitcoin, par exemple, il est préférable d’utiliser le système d’exploitation Linux et les portefeuilles hardware. Il est conseillé de faire des sauvegardes régulières et fréquentes de vos données sensibles et il est important de mettre en place des règles précises pour les procédures de sécurité informatique au sein de l’entreprise. Vous pourriez faire un résumé des règles de base à suivre :

  • l’utilisation d’un gestionnaire de mots de passe crypté pour le stockage de mots de passe;
  • la création de mots de passe complexes d’une longueur minimale de 12 caractères pour tous les services utilisés;
  • une sauvegarde quotidienne des données;
  • Systèmes anti-virus sur tous les ordinateurs à tenir à jour;
  • l’ouverture des fichiers uniquement lorsqu’ils sont scannés par un logiciel de contrôle et uniquement s’ils proviennent d’une source sûre;
  • l’utilisation du cryptage pour toutes les communications contenant des données importantes;

Cependant, les mesures de protection de votre système informatique ne sont jamais suffisantes et la prudence est la chose la plus importante à faire pour améliorer le degré de sécurité de vos données importantes. J’espère que cet article vous a été utile et je reste à votre disposition pour toute clarification, question ou contact.

séquences secrètes par le bruit du microphone

Génération de séquences secrètes par le bruit du microphone

Nous avons déjà vu que le moyen le plus sûr de conserver les bitcoin à long terme est d’utiliser un porte-monnaie électronique (hardware). Avec bitcoin, en fait, notre sécurité et notre privacy dépendent de nous, car nous n’avons plus besoin d’intermédiaire pour gérer nos biens et effectuer des transactions et nous avons donc les compétences nécessaires pour utiliser les bons outils pour gérer notre patrimoine.

Le porte-monnaie hardware est un dispositif électronique qui nous permet de gérer nos clés privées sans les exposer à l’extérieur. La majorité des dispositifs de ce type, de nos jours, sont de type déterministe hiérarchique (HD). Cela signifie que la clé privée principale est créée à partir d’une séquence ordonnée de 24 mots (mnémonique) qui constitue fondamentalement de manière déterministe ce qui nous permet à tout moment de reconstituer notre portefeuille et d’accéder à nos fonds (standard bip39).

Si nous perdons cette séquence ou si quelqu’un peut y accéder, alors nous perdons nos bitcoin. L’importance de cet élément est donc primordiale. Le hardware wallet nous permet de gérer ce secret cryptographique et de l’utiliser chaque fois que nous voulons effectuer une transaction ou consulter nos soldes.

Mais qui génère cette séquence secrète ?

En général, c’est notre propre dispositif matériel qui le génère pendant la phase d’initialisation (wallet initialization), la première fois que nous décidons de l’utiliser. Le dispositif va en effet générer cette séquence à partir du générateur d’aléas interne et il nous sera demandé d’en faire une copie de sauvegarde en l’écrivant sur un morceau de papier (la sequence des mots).

À ce moment-là, la séquence des 24 mots sera physiquement stockée dans un endroit sûr où personne ne pourra y accéder et dans le plus grand secret. Notre portefeuille gardera alors le secret cryptographique et l’utilisera pour signer les transactions sortantes.

Certains bitcoiners, parmi les plus compacts, sont convaincus qu’il est erroné d’attribuer toute la confiance au caractère aléatoire du dispositif matériel que nous utilisons. Ils disent que l’on ne peut pas faire confiance à la graine créée par l’appareil. En fait, l’esprit de bitcoin est toujours de “vérifier la confiance” (don’t trust, verify). Je suis d’accord avec ce principe.

Ainsi, on peut parfois décider de produire de manière autonome la séquence bip39 des 24 mots par le biais d’une source entropique souhaitée. Par exemple, certains le créent à partir de données, d’autres à l’aide de cartes, etc. Aujourd’hui, je veux vous montrer qu’elle peut également être obtenue à partir de l’entropie générée par le son d’un microphone. L’entropie générée par le bruit du microphone est de haute qualité et est bien meilleure que toute entropie informatique créée électroniquement.

Script de génération

J’ai réalisé un script qui, installé de préférence sur une distribution Linux offline, est capable d’enregistrer le bruissement du microphone de l’ordinateur (qui est totalement aléatoire), d’obtenir les données binaires de la numérisation de ce bruit, puis à partir de cela par la fonction de l’hash sha256 pour obtenir la représentation finale à 256bit de cette entropie.
Mon scénario, à la fin, utilise les 256 bits de cette entropie pour créer les 24 mots de la mnémonique selon la norme bip39. Ces 24 mots peuvent ensuite être utilisés pour initialiser notre appareil (quelle que soit la marque ou le modèle) et obtenir une graine (secret cryptographique) dont nous sommes sûrs du caractère aléatoire et dont nous sommes sûrs qu’aucune autre personne ne pourra jamais entrer en contact car elle est créée à partir d’un caractère aléatoire unique, généré par nous à cet instant. Il est évidemment très important que la séquence soit secrète depuis le moment où elle est générée jusqu’au moment où elle est insérée dans le dispositif matériel.

Le script a été créé en open-source et est disponible sur le dépôt public github: https://github.com/massmux/bip39gen

Le script a été créé pour ne pas utiliser de bibliothèque supplémentaire non standard, afin de pouvoir être utilisé sur la distribution “Tails”, par example. La distribution Tails est en fait idéale pour exécuter ce script, car elle contourne tout système d’exploitation sur l’ordinateur et fonctionne directement à partir du usbstick. Avant de lancer le script, il est cependant très important de désactiver le réseau pour éviter tout contact avec l’internet pendant la génération de la mnémonique.

J’espère que les informations que je vous ai données ici, et le script que j’ai créé, pourront vous aider à améliorer la connaissance du sujet et la sécurité de vos bitcoins lorsque vous irez les utiliser. Je reste à votre disposition et répondrai volontiers à vos demandes et commentaires.

bitcoin confidentialite financiere

Bitcoin et la confidentialité financière

Pourquoi devrais-je me soucier de la privacy ?

La privacy (nous l’écrivons en anglais parce que c’est un mot universel) est l’un des droits de l’homme. La protection de la privacy est importante pour le développement des industries et des entreprises car elle permet de faire respecter les idées et les projets. Elle est également importante pour le citoyen privé car elle lui permet de disposer d’une sphère privée dans laquelle il peut cultiver des idées et des informations confidentielles uniquement pour lui-même, sans l’influence d’autres personnes..

Tout cela devient encore plus important lorsqu’il s’agit d’informations financières où il y a des données concernent des transactions et des biens financiers. Voyons comment la privacy est gérée par Bitcoin et quels sont les scénarios qui s’ouvrent à tous les utilisateurs et propriétaires de bitcoins.

Bitcoin est pseudonyme

Bitcoin n’est pas anonyme, mais c’est un pseudonyme. Cela signifie que la blockchain est un système ouvert, où toutes les données sont présentes et ouvertes, mais où les transactions ne sont pas par défaut liées à votre identité. En pratique, la blockchain (c’est-à-dire le support sur lequel toutes les transactions Bitcoin sont écrites et validées) est un registre public distribué accessible à tous par n’importe quel dispositif. Toutefois, il n’existe pas de lien direct entre les adresses concernées par une transaction et l’identité des propriétaires de ces adresses.

Dans le whitepaper de bitcoin, Satoshi Nakamoto dit (traduit de l’anglais):

…le modèle bancaire traditionnel atteint un certain niveau de confidentialité en limitant l’accès à l’information aux parties concernées et aux tiers de confiance. la nécessité d’annoncer publiquement toutes les transactions exclut cette méthode, mais la confidentialité peut toujours être maintenue en interrompant le flux d’informations vers un autre lieu : garder les clés publiques anonymes…

Qu’est-ce que cela signifie ? Cela signifie que pour réaliser la décentralisation qui est l’élément clé du réseau Bitcoin, il est nécessaire d’annoncer toutes les transactions sur un registre public distribué. Ainsi, le modèle de confidentialité des banques traditionnelles, basé sur le partage d’informations sur un compte particulier, uniquement avec les personnes qui ont le droit de les avoir, n’est pas applicable.

Bitcoin crée ensuite le modèle de protection de la privacy en rendant “anonymes” les relations entre les adresses et les transactions et l’identité des personnes qui se trouvent derrière. Cet aspect est très important et constitue la pierre angulaire de toutes les réflexions qui ont été menées sur la protection de la privacy bitcoins au cours de la dernière décennie et qui ont abouti aux “coinjoin”, aux réseaux lightning network (LN) et aux formules de protection de la vie privée qui en découlent et qui sont aujourd’hui à l’étude.

Privacy et bitcoin ?

La privacy est une cible mouvante et elle se manifeste à plusieurs niveaux : lorsque vous achetez des bitcoin, lorsque vous transférez des bitcoin et les gérez avec un portefeuille, dans le réseau LN (lightning network), lorsque vous effectuez des transactions, lorsque vous vous connectez à Internet, etc. Cela signifie que la privacy est obtenue en réfléchissant à de nombreux aspects et que chacun d’entre eux peut changer de jour en jour car les lois, les technologies et les pratiques changent également.

La privacy est plus forte lorsque de nombreuses personnes s’en occupent ensemble. En fait, la privacy ne peut être atteinte que si d’autres personnes sont tout aussi intéressées à la préserver. Il n’y a pas privacy uniquement par soi-même. Il existe donc une culture de la privacy que nous devons développer encore davantage lorsque nous possédons des bitcoin ou lorsque nous effectuons des transactions bitcoin.

Nous devons donc apprendre à acheter des bitcoins en toute sécurité, à les stocker d’une manière qui ne permette pas facilement à des observateurs extérieurs de la blockchain (par exemple des sociétés d’analyse[1] de la blockchain) de déterminer avec qui je fais des transactions et le montant de mes actifs. Lorsque cela sera compris, nous pourrons disposer de nos actifs et les utiliser avec moins de risques de voir la confidentialité de nos actifs violée.

attack to the privacy

Situation de la privacy aujourd’hui au XXI siècle

Malheureusement, la privacy est aujourd’hui menacée. En partie parce que de nombreuses grandes entreprises ont trouvé un moyen d’obtenir et de stocker un très grand volume d’informations personnelles des utilisateurs et d’en tirer profit. En partie parce que le coût du stockage des “métadonnées” est de plus en plus faible. A cela s’ajoute le fait que les lois sur la privacy édictées par les Etats sont orientées vers l’utilisation des données après les avoir acquises et non, au contraire, à ne pas les acquérir.

Ainsi, aujourd’hui, chaque geste que nous faisons, nous utilisons un ordinateur, un smartphone, un ordinateur portable et chaque opération laisse des traces numériques qui sont capturées par les grandes entreprises, les gouvernements et les agences internationales de renseignement.

Bitcoin a, d’une certaine manière, introduit un niveau supplémentaire dans lequelle les informations sur la fortune doivent également être protégées. Par conséquent, notre privacy devient un élément très important de notre vie et doit être protégée car notre succès au travail, notre force financière et aussi notre vie familiale en dépendent.

Nous rédigerons d’autres articles pour traiter de privacy. La protection de la privacy dans les technologies de l’information est en fait un élément délicat et vaste qui doit être très approfondi pour comprendre les dangers et trouver des solutions pour minimiser le risque, en particulier lorsque nous utilisons une monnaie virtuelle.  La privacy de chacun d’entre nous est en grand danger et pour la préserver, nous devons être très prudents. Nous ne devons pas l’oublier

Definitions

[1] société d’analyse de la blockchain (chain analysis companies). L’analyse de la blockchain est le processus d’inspection, d’identification, de regroupement, de modélisation et de représentation visuelle des données, pour trouver des relations et découvrir des identités. L’objectif de l’analyse de la blockchain est de découvrir des informations utiles sur les différents acteurs qui ajoutent des blocs supplémentaires à la chaîne. L’analyse de la blockchain de Bitcoin est souvent effectuée par des sociétés privées au service des gouvernements et des banques.

Petit résumé vidéo

Pour rendre les concepts exprimés plus clairs, j’ai mis à disposition cette petite vidéo

 

Bases de la sécurité en ligne

Bases de la sécurité en ligne

Le point de départ pour assurer la sécurité de nos fonds et transactions bitcoin commence par une gestion adéquate de la sécurité en ligne. Nous devons maximiser notre sécurité et notre confidentialité en ligne, surtout lorsque nous utilisons également notre ordinateur pour gerer des bitcoins ou pour effectuer des transactions en cryptomonnaies.

Motifs

Une étude de la Clark School de l’Université du Maryland est l’une des premières à quantifier le taux presque constant de cyberattaques toutes les 39 secondes en moyenne. Cela est également dû à une négligence banale dans la définition de mots de passe non sécurisés ou dans l’utilisation du même mot de passe non sécurisé sur plusieurs sites.

Pour ne citer que quelques statistiques : 43 % des cyberattaques sont menées contre les petites entreprises qui sont les plus vulnérables. 64% des entreprises ont subi des attaques via le web (soit à partir de leur propre site ou de sites tiers). 62% ont subi des attaques de phishing et d’ingénierie sociale. 59 % des entreprises ont subi des attaques de logiciels malveillants et de botnets et 51 % ont subi des attaques par déni de service.

Aujourd’hui, tout le monde a une vie numérique sur le réseau. Il y a les réseaux sociaux, les e-mails, les portefeuilles bitcoin, les services bancaires sur Internet et une myriade d’autres applications en ligne que nous utilisons tous les jours et qui sont essentielles à notre travail et à notre vie privée. La gestion de ces données est cruciale et extrêmement importante, et toutes les informations doivent être stockées en toute sécurité pour éviter que notre vie privée ne soit violée ou que notre sécurité informatique ne soit compromise.

Une multitude de données personnelles et financières transitent sur nos ordinateurs et sur Internet et nous devons les protéger pour préserver la confidentialité et la sécurité. Il y a aussi de grandes entreprises comme google et facebook qui utilisent tous les moyens pour acquérir des données sur nous, même en plaçant des cookies sur notre ordinateur pendant la navigation normale. Nous devons être très prudents.

Règles de base

Pour cette raison, nous devons suivre une série de règles de conduite qui peuvent nous protéger lorsque nous utilisons le web et l’internet, au quotidien. Dans un article ultérieur, nous discuterons de la façon dont nous pouvons minimiser le suivi de nos données lorsque nous naviguons en ligne.
Dans cet article, nous examinons aujourd’hui le comportement de base minimum que nous devons adopter pour notre vie privée et notre sécurité.

  • utiliser un password manager ou gestionnaire de mots de passe (comme keepassxc par exemple, ci-dessous plus de détails) pour générer nos mots de passe[1] et les conserver;
  • ne jamais utiliser les mêmes mots de passe pour différents sites et services;
  • ne jamais utiliser de mots de passe mnémoniques simples (nous devons plutôt utiliser des mots de passe composés de 8 à 12 caractères alphanumériques avec des majuscules, des minuscules et des caractères spéciaux);
  • Faites attention à ce que vous installez sur votre ordinateur. Par exemple, il existe des programmes nuisibles (malware) qui peuvent copier tous les caractères que vous tapez sur votre ordinateur et les envoyer à une tierce personne. Cela compromet la sécurité car il transmet vos mots de passe en dehors de votre ordinateur. Ce type de risque est très élevé avec les ordinateurs qui utilisent le système d’exploitation Windows, par exemple. Le risque est encore plus élevé lorsque vous utilisez votre ordinateur pour gérer vos bitcoin ou vos transactions financières ;
  • bien sûr, utilisez un logiciel antivirus à jour sur votre ordinateur;
  • dans la mesure du possible, utiliser une authentification à deux facteurs[2]. Mais pas par SMS (dans ce cas, ce type d’authentification est très faible et le message SMS n’est pas considéré comme plus sûr de ce point de vue). Les meilleures méthodes sont via des applications (par exemple, l’authentificateur Google) ou via une clé matérielle (par exemple, Yubikey);

nous suggérons donc de suivre ces règles de base de comportement qui sont essentielles pour nous protéger. Dans un article ultérieur, nous verrons plus d’idées et aussi des méthodes valables pour préserver notre vie privée. En fait, nous avons maintenant parlé de sécurité, mais la vie privée est également menacée. De nombreuses entreprises peu scrupuleuses (les géants du web) acquièrent continuellement un flux de données à partir de nos appareils (flux de métadonnées) et le traitent et le vendent à profit. Nous devons nous protéger de cela aussi.

PLUS D’INFORMATIONS

[1] Gestionnaire de mots de passe

un gestionnaire de mots de passe, comme par example keepassXC, est un logiciel open source qui s’installe localement et vous permet de sauvegarder et d’organiser vos mots de passe sur un fichier crypté. Si nous sommes diligents dans son utilisation, c’est un outil qui nous permet d’obtenir une sécurité extrême et de retrouver facilement nos accès. Cet outil nous permet également de créer de nouveaux mots de passe uniques et très difficiles à définir pour chacun de nos comptes en ligne. Comme le système gère tous nos mots de passe et les organise de façon à ce qu’ils soient faciles à rechercher et à utiliser, nous pouvons utiliser un mot de passe différent pour chaque site et chaque service, ce qui minimise le risque.
Le programme nous permet également de sauvegarder les codes de sauvegarde de chaque 2FA (2 facteurs d’authentification) que nous voulons utiliser.

keepassxc

[2] Authentification à deux facteurs

L’authentification à deux facteurs signifie que pour se connecter à un site ou à un service, il faut non seulement un login et un mot de passe, mais aussi un code généré par un système externe (sms, application mobile ou clé matérielle). Cela rend l’accès non autorisé extrêmement difficile.
La méthode la plus sûre est l’utilisation d’une clé matérielle telle qu’une yubikey. Vous pouvez aussi utiliser une application sur votre mobile, comme google authenticator.

yubikey sécurité

N’hésitez pas à me contacter pour plus d’informations. Je suis un partisan de la philosophie de l’open-source et de l’open-knowledge et je mets donc à disposition mes connaissances et mon expérience afin d’obtenir un niveau de connaissance ouvert à tous, ainsi que le code source des logiciels développés.

Nous avons préparé un petit formulaire statistique avec lequel nous demandons aux utilisateurs quels types de ressources d’information peuvent les intéresser. C’est-à-dire les ressources dont ils ont besoin en tant qu’entrepreneurs, investisseurs ou pigistes. Nous avons besoin de ces données statistiques pour la préparation de ressources d’information telles que : cours, conférences, livres électroniques, vidéos, etc. Il s’agit d’une forme purement statistique et clairement gratuite. Si vous voulez nous aider à donner cet avis, nous vous remercions. Vous pouvez procéder en cliquant sur ce lien: Statistiques des besoins