Gérer votre propre nœud Bitcoin

Gérer votre propre nœud Bitcoin

Nous entendons de plus en plus parler d’indépendance financière, de liberté économique et de vie privée. Le réseau Bitcoin et son design immaculé, nous donne les outils pour accéder à une nouvelle finance décentralisée, dont nous sommes les seuls gestionnaires et qui ne dépend pas de la confiance de tierces parties. Mais afin d’améliorer la protection de notre vie privée lors de l’utilisation de Bitcoin, nous devons cependant mettre en œuvre quelques éléments. L’une de ces étapes est certainement la configuration d’un nœud Bitcoin.

Nous le savions déjà, direz-vous. Oui, mais aujourd’hui je vais vous montrer comment vous pouvez devenir directement Bitcoin, en créant et en exploitant votre propre nœud de manière simple.

Qu’est-ce que cela signifie de faire fonctionner un nœud complet ?

Il s’agit d’acheter du matériel (hardware), d’assembler un petit ordinateur (généralement à l’aide de raspberry), puis d’y installer le système d’exploitation et tous les outils nécessaires. Il est ensuite connecté au réseau local de votre maison. C’est une expérience très instructive, mais surtout un objet qui présente de nombreux avantages. Examinons les principales d’entre elles :

  • Le nœud devient un élément du réseau Bitcoin et aide le réseau en termes de sécurité. Chaque nœud du réseau vérifie toutes les transactions Bitcoin, une par une, afin de s’assurer qu’elles sont conformes au protocole et d’accroître la fiabilité.
  • La blockchain complète est ensuitereconstruite et sauvegardée localement sur le nœud après la vérification de chaque transaction. Vous êtes alors assuré de disposer d’une copie authentique de l’historique complet des transactions. Les blocs ou les transactions non valides sont ensuite éliminés.
  • Nous pouvons connecter un ou plusieurs portefeuilles à notre nœud sans avoir à utiliser des services tiers. de cette façon, nous garantissons notre confidentialité, car aucun tiers ne recevra de données sur nos adresses et nos soldes.
  • La présence de la blockchain nous permet de vérifier nos soldes de manière indépendante
  • Avec notre portefeuille, connecté au nœud, nous pouvons diffuser nos transactions (broadcast), sans les envoyer à des tiers, et en veillant à ce qu’elles soient ensuite gérées par un mineur pour être vérifiées et ajoutées à une blockchain.
  • Nous pouvons connecter le nœud à TOR et de cette façon, il sera derrière le réseau Onion, ce qui nous permettra d’obtenir plus de confidentialité sur nos transactions Bitcoin.
  • Une fois que le nœud est connecté via TOR, nous pouvons également y accéder de l’extérieur en utilisant le réseau onion.

L’Hardware

raspberry pi4

Sur la photo, vous pouvez voir le matériel nécessaire. Ils sont tous facilement disponibles et le coût total est d’environ 300 CHF. Il s’agit du modèle raspberry pi4 avec 8 Go de RAM et un SSD externe avec connexion USB d’une capacité d’au moins 1 TB.

Les éléments ci-dessus vous permettront d’assembler un système fiable et assez rapide. Il convient également de considerer que la consommation d’énergie d’un nœud complet tel que celui-ci est totalement négligeable et peut être maintenu en fonctionnement continu sans aucun problème. De cette façon, vous faites partie intégrante du réseau Bitcoin.

Système d’exploitation et logiciels

umbrel bitcoin node

Parlons maintenant de la partie logiciels. Fondamentalement, il s’agit d’un système d’exploitation linux (de type debian) dans lequel nous devons placer divers logiciels. En faisant tout à la main, cette installation peut être compliquée, surtout si l’on veut équiper le nœud  avec le réseau onchain et le réseau lightning.

Mais il existe aussi une autre solution. Il existe en fait une distribution appelée Umbrel (il y en a aussi beaucoup d’autres), qui vous permet d’obtenir le système d’exploitation + tous les logiciels nécessaires immédiatement pré-installés et prêts à être utilisés.

Mais comment cela fonctionne-t-il ?

Nous téléchargeons le fichier image depuis le site Umbrel et ensuite nous faisons flash sur une SD card. La carte SD doit être insérée dans le raspberry pour le démarrer. Le système sera opérationnel en quelques minutes.

Les étapes suivantes consistent à effectuer la première initialisation, c’est-à-dire à définir les mots mnémoniques et à les sauvegarder. Vous pouvez accéder à votre nœud de deux manières différentes :

  • à travers le réseau local, avec l’adresse IP du raspberry sur le réseau local;
  • via TOR, depuis l’adresse onion attribuée à votre raspberry, immédiatement après l’installation;

La deuxième façon vous permet d’atteindre le nœud depuis l’extérieur de votre domicile, par exemple avec un Torbrowser.

Comme déjà mentionné, umbrel fournit une installation complète, gérée via Docker (un système de conteneurs très utile). L’utilisateur ne doit donc pas se soucier de configurer les logiciels individuellement, ni d’effectuer d’autres opérations complexes.

Une fois le système démarré, vous devez effectuer les opérations suivantes :

  • d’un mot d’accès
  • initialisation du mnémonique (séquence de 24 mots)

Quand cette opération est effectuée, le système commencera à valider la blockchain Bitcoin. Cela prendra quelques jours et environ 400 GB d’espace SSD pour le moment. Toutefois, il faut tenir compte du fait qu’une fois la synchronisation de la blockchain terminée, d’autres GB seront nécessaires pour l’adressage par le electrum server (qui est partie de la suite des logiciels).

Les principaux logiciels inclus sont:

  • Bitcoin core
  • LND (lightning implementation)
  • Electrum server
  • Ride the lightning
  • ….. beaucoup d’autres …..

    umbrel bitcoin node apps

Il existe de nombreux éléments supplémentaires qui peuvent être installés de manière modulaire en tant qu’APPS. certains ne sont pas liés au Bitcoin mais sont intéressants car ils peuvent fonctionner comme des ordinateurs personnels.

Une fois que la vérification de la blockchain est entièrement terminée, vous pouvez commencer à déposer des fonds onchain sur votre porte-monnaie local (faites attention à ce que ce soit un “hot wallet”) et ensuite vous avez la possibilité d’ouvrir un canal du réseau Lightning pour commencer à effectuer des paiements sur Lightning. Les prochaines étapes consisteront à apprendre à équilibrer un canal, à utiliser le RTL et à explorer les autres applications disponibles.

J’espère que je vous ai intriguée. L’installation de votre propre nœud est bénéfique pour votre vie privée et contribue à la sécurité et à la décentralisation du réseau. C’est définitivement une activité que je suggère à tous les amateurs de bitcoins.

relationship maps email

Relationship-maps, une menace pour la confidentialité e-mail ?

Le service e-mail est un protocole ouvert en “plain-text”, un moyen non sécurisé de transmettre des communications sur un support non sécurisé (Internet). De par sa nature, le courrier électronique n’est pas confidentiel. Un e-mail est généralement envoyé avec les informations suivantes :

  • L’adresse IP de l’expéditeur ;
  • Trace complète des serveurs impliqués ;
  • Adresse IP + adresses e-mail de la source et de la destination ;

Souvent, des fichiers contenant des informations très importantes et confidentielles sont joints, soit normalement sans aucune restriction, soit simplement en les zippant dans un fichier avec un mot de passe. Même si la pièce jointe est protégée par un mot de passe, ce n’est pas très sûr car le fichier joint peut être téléchargé hors ligne et peut donc être forcé (brute forced) dans de nombreux cas sans aucune limitation des tentatives. Il est évident que l’envoi de pièces jointes cryptées est une meilleure solution, mais uniquement du point de vue du contenu, et non des métadonnées, pour les raisons exposées ci-dessous.

Le contenu du message

Le fournisseur chez qui le courriel arrive finalement peut lire le corps du message et les pièces jointes s’ils ne sont pas cryptés par PGP. Même si le message est crypté, il peut toujours accéder à un certain nombre de métadonnées, qui ne sont pas protégés.

Vous pouvez donc crypter le message avec PGP(GPG) mais il y a deux inconvénients principaux :

  • l’expéditeur et le destinataire doivent avoir échangé les clés ;
  • l’en-tête n’est pas chiffré et contient des métadonnées pertinentes ;

D’autres inconvénients importants se présentent lorsque vous utilisez les services “gratuits” de tiers. Par exemple, si vous utilisez Gmail.

Les relationship-maps

Google, par example, collecte tous vos contacts sur le Web et sur votre téléphone portable, ce qui constitue une fuite de données très importante. En fait, de cette façon, il peut déduire une relationship-map sur toutes les personnes dans la liste de contacts en regardant qui est connecté à qui, les contacts les plus utilisés, des métadonnées supplémentaires et à partir de toutes ces informations, il peut également déduire des identités, par recoupement avec d’autres utilisateurs de gmail et des habitudes de correspondance.

De cette façon, les agences, les gouvernements et autres entités intéressées peuvent savoir 1) qui vous êtes, 2) avec qui vous êtes en contact, 3) comment vous les contactez, 4) à quelle fréquence et 5) quelles habitudes et quels intérêts sont impliqués dans ces communications.

À partir de la carte des relations, il est également possible de créer des sous-groupes de contacts qui peuvent être profilés en fonction de leurs intérêts, de leurs orientations politiques et sociales.

Si vous échangez des courriels avec un cercle de personnes, même si quelqu’un a crypté le trafic, votre identité peut être facilement dérivée par les techniques mentionnées ci-dessus. Cela peut être réalisé par des analyses basées sur la liste de contacts des personnes avec lesquelles vous échangez des messages ; les groupes de personnes se chevauchent et les habitudes de contact correspondent.

Protonmail, Tutanota, etc.

Que vous utilisiez protonmail ou tutanota, etc., il y a des considérations importantes à prendre en compte :

Si vous utilisez protonmail (ou similaire) pour éviter d’être espionné par google, mais que vous ne mettez pas en place un changement d’habitudes correspondant, vos emails finiront par aller aux mêmes contacts et de la même manière, reproduisant essentiellement la même carte de relations. Il sera donc facile de déterminer qu’il s’agit de vous. Google peut continuer à espionner vos métadonnées, à les collecter et même, dans certains cas, à avoir accès au contenu de vos courriels.

Les mêmes personnes ont une liste de contacts et ont une référence croisée de votre nouvel e-mail dans leurs listes de contacts. Il est donc facile de déterminer qui vous êtes. Des références croisées peuvent également être faites à partir de l’adresse IP.

Pour ces raisons, l’utilisation de protonmail n’est utile que si vous l’utilisez avec d’autres utilisateurs du même service, en mode crypté et en protégeant votre ip avec TOR ou un vpn auquel vous faites confiance.

L’email est la pire méthode de communication. Ne l’utilisez jamais pour envoyer des documents et des données importantes. J’espère que mon article vous intéressera et qu’il vous incitera à élaborer une stratégie de communication qui tienne davantage compte du caractère privé de votre correspondance.

anonymat en ligne tails

Anonymat et confidentialité en ligne avec TAILS

On est de plus en plus concerné par la sécurité et la confidentialité de notre ordinateur et de nos données lors des transactions en ligne. De plus en plus de personnes se rendent compte que chaque fois que nous nous connectons à l’internet (et nous le faisons pour tout de nos jours), nous mettons notre vie privée en danger et nous devons partager certaines de nos données personnelles avec des sites et des services en ligne.

amnesieC’est pour ces raisons que des solutions technologiques de plus en plus raffinées ont été introduites pour nous aider à nous protéger. L’une d’entre elles est sans aucun doute tails. Il s’agit d’une distribution Linux, live, dérivée de debian, qui s’installe facilement sur une clé usb et qui est lancée au-dessus de l’ordinateur, sans laisser aucune trace sur celui-ci ; elle fonctionne à travers la RAM. Ainsi, même si quelqu’un avait un accès physique à votre ordinateur après l’avoir utilisé, il ne pourrait trouver aucune information sur celui-ci, car il “disparaît” complètement une fois déconnecté de l’ordinateur.

Il est conçu pour préserver votre vie privée et votre anonymat. Il est également livré avec toutes les applications nécessaires, telles qu’un navigateur web (torbrowser), un client de messagerie, une suite libreoffice, un client de courrier électronique, etc.

Logiciel disponible

au sein du système d’exploitation, nous trouvons préinstallés une série de logiciels très utiles pour notre vie privée et notre sécurité. en voici quelques-uns (mais il y en a beaucoup d’autres)

  • GPG la suite de cryptage linux;
  • le client de messagerie Thunderbird, avec l’option déjà configurée d’utiliser GPG pour envoyer des messages chiffrés;
  • Electrum, l’un des portefeuilles de bitcoins les plus sophistiqués et les plus utilisés;
  • HTTPS Everywhere permet d’établir de manière transparente des connexions cryptées par SSL avec un grand nombre de sites web importants;
  • NoScript pour un contrôle encore plus poussé de JavaScript;
  • uBlock Origin pour supprimer les publicités;
  • keepassxc un gestionnaire de mots de passe puissant et complet avec une base de données cryptée;
  • il est également possible utiliser des volumes chiffrés créés avec veracrypt;

pas traceEn plus, tails est conçu pour empêcher les attaques par “cold-boot” et de nombreuses formes d’analyse de la mémoire. En fait, il efface toute la mémoire pendant l’arrêt lorsque la clé usb est physiquement retirée.

Comment le préparer ?

La préparation est assez simple. Il suffit d’aller sur le site web du fabricant, de télécharger l’image et de flasher l’image sur la clé usb. Le flashage peut être fait avec un programme spécial, par exemple “balena etcher” ou depuis linux avec la commande système dd. À la fin, vous obtenez une clé USB prête à l’emploi qui peut être insérée dans un ordinateur pour démarrer directement à partir de celui-ci. Avant de procéder au flashage, il est extrêmement important que l’image téléchargée sur le site soit vérifiée, c’est-à-dire que les signatures soient contrôlées. Il s’agit de s’assurer que l’image provient bien du fabricant et n’a pas été modifiée. S’il était altéré, nous utiliserions un système compromis, ce qui entraînerait de graves risques pour la sécurité et la vie privée.

 

Tor à l’intérieur

L’une des caractéristiques les plus importantes est la présence de TOR par défaut et le fait que tout le trafic généré sur le système, est transmis sur internet à travers tor. Sur le système, nous pouvons également trouver, déjà installé et prêt à l’emploi le torbrowser qui, comme nous le savons, nous permet de naviguer sur des sites web, sur lesquels nous n’avons pas à nous authentifier, d’une manière complètement anonyme, grâce au réseau tor. Pour naviguer efficacement avec le torbrowser, il est important de se rappeler les points suivants :

  • nous devons utiliser uniquement des connexions cryptées (donc des sites https);
  • nous devons utiliser uniquement les paramètres par défaut du navigateur (pas de plugins d’extension ou de paramètres particuliers) car tout add-on constitue une perte de confidentialité;
  • nous n’avons pas besoin de nous connecter sur aucune ressource, car cela créerait évidemment un lien entre votre session actuelle et votre identité et ferait savoir que vous utilisez tor;

Stockage permanent (persistent storage)

stockage persistentIl est également possible d’activer le “persistent storage” qui est une partition cryptée créée sur le dispositif où sauvegarder les éléments qui sont utilisés de façon récurrente dans la distribution. Ceci est utile pour les logiciels ou les données que vous utilisez souvent. Mais comment fonctionne la partition persistante ?

Si vous utilisez des queues avec une clé USB, vous pouvez créer un stockage persistant dans l’espace libre restant sur la clé usb. De cette façon, vous pouvez placer des fichiers de données et des instructions pour l’installation de paquets supplémentaires, par example. Ces données sont mises à disposition pour des sessions de travail ultérieures et restent sur l’appareil sous forme cryptée. La passphrase de déchiffrement est donc d’une importance primordiale pour pouvoir accéder à cet contenu.

Qu’est-ce qui peut être stocké sur le persistant ? Voici quelques exemples :

  • Fichiers de données;
  • Réglages ou paramètres:
  • Logiciel supplémentaire;
  • Clés de cryptage;

dans tous les cas, vous pouvez choisir librement d’accéder à persistent chaque fois que vous accédez à tails. Si vous le faites, vous devez disposer de la phrase de passe pour le décrypter.

En bref, il s’agit d’une distribution très complète et facile à utiliser, orientée vers la confidentialité et la sécurité, que vous devriez savoir essayer, savoir utiliser et avoir à disposition pour toute opération sensible que vous avez l’intention de faire en ligne.

Il s’agit d’une évaluation indépendante de tails basée sur mon expérience personnelle et professionnelle. Les images font partie du matériel de tails rendu public dans le but de promouvoir cet logiciel. Pour toute question, je suis disponible dans les commentaires ou sur linkedin.

puissance du bitcoin proof of work massimo musumeci

Proof of Work (POW). Pourquoi cela fait-il la puissance du réseau Bitcoin ?

Les gens sont souvent confus à propos de la “proof of work” dans le réseau Bitcoin et pourtant, il s’agit de l’une des caractéristiques de sécurité les plus importantes du protocole et donne donc à Bitcoin ses caractéristiques de valeur enviable que tout le monde lui attribue. De nos jours, Bitcoin fait également l’objet d’une grande couverture médiatique grâce à une augmentation de l’adoption, même par les acteurs institutionnels, et de nombreuses entreprises se lancent dans le minage.

POW

La proof of work consiste en un élément d’information extrêmement coûteux à obtenir mais très facile à vérifier, que le mineur doit produire pour valider son bloc candidat et que chaque nœud du réseau peut vérifier facilement et rapidement.

La procédure de preuve du travail est effectuée sur un bloc candidat qui rassemble toutes les transactions que le nœud a dans son propre mempool qu’il décide d’ajouter. Ces transactions sont vérifiées indépendamment par chaque nœud, mais ne sont pas confirmées, c’est-à-dire qu’elles ne font pas encore partie de la blockchain, car elles n’ont pas encore été insérées dans un bloc valide.

Lorsque le mineur calcule l’hash du blockheader, il considère en fait toutes les transactions présentes dans le bloc, car le merkleroot du bloc candidat résume toutes les transactions qui ont été insérées dans le bloc, parce que c’est la valeur “digest” de l’arbre de merkle.

L’arbre de merkle (merkle tree) n’est rien d’autre qu’une structure de hashs de transactions qui résume progressivement toutes les transactions qu’il a examinées, jusqu’à ce qu’il atteigne le sommet, qui est un seul hash global qui est l'”empreinte” de toutes les transactions.

La procédure de validation

Le POW est donc obtenu par une procédure par laquelle le mineur crée le hash du blockheader, de manière répétée, jusqu’à ce qu’il puisse trouver une valeur de ce hash qui soit inférieure à une valeur fixée par le protocole (target) qui peut varier grâce à un auto-ajustement tous les 2016 blocs. Dans ce cas, on parle d’une procédure de “réglage de la difficulté” qui réagit automatiquement au hashrate disponible dans le réseau en calibrant la difficulté et en s’assurant que le réseau Bitcoin produit 1 bloc toutes les 10 minutes, ni plus ni moins.

proof of work bitcoin minage
la valeur target de la difficulté actuelle

Pour pouvoir satisfaire cette valeur, le mineur, fait de nombreuses tentatives en changeant certains paramètres de l’en-tête, y compris le nonce et le extra nonce.

La récompense au mineur

Parmi les transactions présentes dans le bloc, la première est la transaction coinbase. Cette transaction permet au mineur de s’octroyer la récompense pour avoir exploité le bloc selon la valeur établie par les règles du protocole.

Les frais des transactions insérées font également partie de la récompense du mineur. C’est pourquoi le mineur est incité à ajouter autant de transactions que possible, en commençant par celles dont les frais sont les plus élevés. Toutefois, les règles du protocole autorisent encore des blocs comportant très peu de transactions.

Une fois cela fait, le bloc est propagé au réseau et tous les autres nœuds vérifient le respect du protocole, puis vérifient le bloc. Si le bloc est vérifié, il devient le TIP, c’est-à-dire le bloc le plus élevé.

Si le bloc avait une récompense différente, qui n’est pas compatible avec la valeur actuelle autorisée par le protocole, il serait ici rejeté par les autres nœuds et le mineur n’aurait aucune récompense. Cet événement s’inscrit dans le cadre du mécanisme d’avantage/punition du système d’incitation économique de Bitcoin.

J’espère avoir été utile pour comprendre le fonctionnement du mécanisme de validation des transactions du réseau Bitcoin. Si vous avez des questions, vous pouvez poster un commentaire et me contacter, je resterai disponible. Je suis également heureux si vous souhaitez me joindre sur mon site web ou sur mon linkedin.

jami systeme messagerie decentralise massimo musumeci

Un système de messagerie décentralisé ?

Aujourd’hui, je veux parler d’un système de messagerie à source ouverte qui est vraiment différent des autres alternatives disponibles telles que whatsapp, telegram, signal et tous les dérivés de signal. On en parle beaucoup ces derniers temps à cause du changement de politique de whatsapp et beaucoup de gens sont allés ailleurs, notamment vers le telegram et signal. Mais en réalité, ces applications alternatives à whatsapp constituent une amélioration de votre vie privée ?

Signal?

Par exemple, si l’on considère signal, il est opensource et le dépôt est sur github. Cela semble être une excellente alternative à whatsapp, mais …. Si vous allez examiner les exigences à l’url https://github.com/aqnouch/Signal-Setup-Guide vous verrez la liste suivante (au moment où j’écris cet article) des systèmes et logiciels nécessaires à l’installation d’un serveur. Je parle du serveur parce que c’est le serveur qui détermine la gestion des comptes et des métadonnées et qui est responsable gérer les données:

Requirements (signal)

  • Twilio (pour les SMS OTP)
  • Amazon S3 (pour Avatar et pièces jointes, peut être sous-titré avec MinIO)
  • Amazon SQS (pour la file d’attente CDS, peut être remplacée par LocalStack)
  • Firebase (pour les notifications “push”)

Comme vous pouvez le voir, signal utilise des services externes pour fonctionner, dont amazon. Ces exigences sont en fait des conditions préalables nécessaires à remplir, au niveau de l’installation du serveur, pour qu’il fonctionne correctement. C’est-à-dire ce qui doit être mis en place pour rendre l’installation possible et fonctionner. Donc, pour ne pas utiliser whatsapp à cause de l’attaque contre la vie privée, nous sommes confrontés à une alternative qui, bien qu’étant open source, dépend d’autres services de grandes entreprises et nous sommes alors revenus à la case départ. Si notre communication passe par des outils qui appartiennent ou sont gérés par d’autres entreprises, nous aurons en quelque sorte une interférence de ces entreprises sur nos données.

Telegram?

Que peut-on dire sur telegram ? Pouvons-nous voir le code des serveurs de telegram (j’ai mentionné le serveur, qui est l’unité qui gère les connexions et trie les communications) ? Est-il dans le domaine public ? Non. Pourquoi pas ? On ne le sait pas. Le fait que nous ne puissions pas connaître le code source du serveur, ni la structure avec laquelle il est constitué, les librairies qu’il utilise et la façon dont il gère les données, est un problème important pour notre vie privée.

La chose que on sait sur telegram est d’envoyer vos messages cryptés à quelque truc. Comme vous n’avez pas le code source, vous ne savez pas exactement ce qui est fait sur ce serveur avec vos données. Il n’est donc pas très logique de recommander telegram comme solution pour améliorer la confidentialité de vos communications textuelles. En fin de compte, nous sommes toujours dans un domaine invérifiable et non transparent.

Jami!

Il nous faut donc une alternative qui soit réellement décentralisée et qui n’ait pas d’impact sur notre vie privée. Une véritable alternative est jami. Un logiciel que j’ai pu essayer et analyser pendant quelques semaine de test et j’ai pu voir à quel point il est vraiment bon de protéger notre vie privée et de ne pas laisser nos métadonnées sur des serveurs tiers.

jami est un logiciel open source, décentralisé et peer2peer. Qu’est-ce que cela signifie ? c’est-à-dire qu’il n’utilise pas de serveur central et que la communication se fait en fait entre les deux pairs avec un cryptage de bout en bout. il n’utilise pas non plus de serveur central qui peut ensuite surveiller les métadonnées.

Nos métadonnées

Qu’est-ce que les métadonnées ? Les métadonnées sont toutes les informations entourant une communication, telles que 1) la date à laquelle la communication a eu lieu, 2) l’identité des parties connectées à la communication, 3) la durée de la communication, etc. Des informations extrêmement importantes que les services centralisés utiliseront tôt ou tard pour gagner de l’argent grâce à votre vie privée. Ces métadonnées fournissent un profil précis de votre situation, de vos comportements et même de vos connaissances. Ils sont donc très utiles pour construire votre alter-ego numérique.

Avec jami, nous allons résoudre le problème à la source, en empêchant la collecte et le stockage des métadonnées, grâce à la décentralisation que le système permet. En fait, nous n’avons que deux terminaux qui communiquent et toutes les données (métadonnées) de communication sont stockées localement.

Les clés cryptographiques

Rien ne réside sur un serveur ou un tiers. Nous sommes seuls responsables de la communication et de nos données et toute communication est cryptée avec des clés qui n’appartiennent qu’à nous. Comme toujours, lorsque nous sommes les propriétaires exclusifs des clés cryptographiques, nous sommes propriétaires du contenu que nous échangeons avec l’autre partie. La décentralisation permet également d’éviter les points intermédiaires où les métadonnées peuvent être surveillées.

jami n’a pas besoin d’un serveur central et votre compte n’est donc stocké que localement. lorsque vous voulez utiliser votre compte, vous n’avez pas besoin de vous connecter à un service et vous ne devez fournir aucune donnée ou numéro de téléphone à qui que ce soit, ni même un courriel. Jami n’a donc pas besoin de s’enregistrer et n’a pas besoin de numéros de référence pour fonctionner.

Le mot de passe que vous indiquez au démarrage de Jami est utilisé uniquement pour crypter les données localement sur votre appareil. Les messages sont cryptés avec une clé RSA.

jami est disponible pour windows, linux, android, ios et est facile à installer. Le logiciel est disponible à l’adresse https://jami.net/ où vous pouvez également trouver des informations sur l’installation qui, comme mentionné, est très simple. Vous trouverez également un accès au dépôt de code source qui est ouvert.

J’espère avoir fourni des informations et des ressources à forte valeur ajoutée et avoir été utile. Si vous le souhaitez, vous pouvez me contacter pour toute question ou précision concernant mon profil sur linkedin ou vous pouvez me contacter et me suivre et soutenir sur patreon  avec des conseils et du contenu exclusif.

massimo musumeci Créer paire clés cryptographiques signer document

Créer une paire de clés cryptographiques pour signer un document

La cryptographie moderne nous permet d’avoir des avantages considérables et peut être appliquée à plusieurs domaines très intéressants. Il devient de plus en plus important, en fait, de numériser de nombreuses opérations, y compris les opérations bureaucratiques.

Pour beaucoup de ces objectifs, la cryptographie asymétrique (ou à clé publique) est utilisée. Ce type de cryptographie, comme nous l’avons déjà vu dans d’autres articles, nous permet de générer deux clés qui sont liées l’une à l’autre par une relation mathématique. L’une s’appelle clé privée, l’autre clé publique. Grâce à ce système, nous pouvons envoyer un document crypté à quelqu’un en échangeant la clé publique et cela résout le problème de l’échange du secret cryptographique que l’on rencontre avec la cryptographie à clé symétrique (par exemple AES). Voir par exemple DH (Diffie-Hellmann key exchange).

Notre clé privée nous permet également de signer un document de manière à ce que chacun puisse vérifier que ce document a bien été signé par nous, grâce à la clé publique correspondante. Pour ce faire, nous devons donc :

  • créer une paire de clés (par exemple RSA), par exemple RSA 3072 bits;
  • télécharger notre clé publique sur un serveur à clé publique, par exemple : https://keys.openpgp.org ;
  • publier l’empreinte digitale de notre clé sur notre profil officiel, sur un document d’identification ou toute autre source officielle afin que chacun puisse vérifier que cette clé publique nous appartient bien;

Vérifier la présence d’une clé publique

Si je cherche ma clé publique sur le serveur de clés openpgp, depuis le web, je vois immédiatement que ma clé publique officielle est présente, comme vous pouvez le voir dans l’image ci-dessous. La recherche peut être effectuée à partir de la dernière partie de l’empreinte digitale. Dans mon cas : 917B BC89 F010 13EC . Il doit être publié sur tous les profils publics les plus importants afin que votre interlocuteur puisse être sûr qu’il vous appartient réellement.

 

massimo_musumeci_openpgp

Ma fingerprint (de ma clé) est publié sur mon linkedin par example, comme on peut voir ici:

 

massimo_musumeci_openpgp_linkedin

Créer une paire de clés

Le processus de création de la paire de clés semble compliqué, mais il est en fait assez simple et peut être effectué par n’importe qui avec un ordinateur normal. Voyons comment faire cette procédure. Sous Linux, nous utilisons la suite de cryptage GPG (gnuPG). Nous générons d’abord la paire de clés. Et donc nous avons

 

key_generation

puis nous vérifions l’insertion et détectons l’empreinte digitale de la clé. Nous le publierons plus tard. Pour ce faire, nous allons dans la liste des clés de notre porte-clés local. Et nous obtenons alors ce qui suit (cela c’est juste une clé de test)

fingerprint

nous téléchargeons maintenant la clé sur le serveur de clés

keyserver_upload

la clé publique est maintenant disponible sur le serveur de clés et peut être téléchargée par n’importe qui directement à partir du serveur, simplement en connaissant l’empreinte digitale.

La signature et la vérification de la signature

La signature d’un document peut maintenant se faire de manière très simple en utilisant la clé privée qui se trouve dans notre porte-clés (keyring) local. Utilisons la commande suivante pour signer un document d’exemple “examplefile.txt” avec la clé privée qui vient d’être créée

gpg --detach-sig --armor -u AD5270C4D204FABEF1E8ACDE57F1E808020B9B5A --sign examplefile.txt

Si aucun résultat n’est fourni, cela signifie que la signature a été réussie. Et en fait nous trouverons un fichier examplefile.txt.asc contenant la signature effectuée. Maintenant je peux verifier ainsi la signature:

[email protected]:~$ gpg --verify examplefile.txt.asc  
gpg: assuming signed data in 'examplefile.txt'
gpg: Signature made Fri 01 Jan 2021 11:30:53 AM CET
gpg:                using RSA key AD5270C4D204FABEF1E8ACDE57F1E808020B9B5A
gpg: Good signature from "Massimo Musumeci <[email protected]>" [ultimate]

 

et donc on voit que ça marche. Nous avons donc vu que nous pouvons très facilement créer notre clé d’identité numérique avec des outils “open source”, publier la partie publique et apposer des signatures sur tout document que tout le monde peut vérifier de manière indépendante. La publication de l’empreinte de notre clé sur un document officiel nous permet de relier cette empreinte à la clé publique qui nous appartient réellement.

Le réseau de téléphonie mobile et la vie privée

Le réseau de téléphonie mobile et la vie privée

Tout le monde aujourd’hui a un téléphone portable ou plutôt un smartphone. Nous portons cet appareil avec nous toute la journée et il contient des informations très privées et sensibles à notre sujet. Mais en outre, il reste toujours connecté au réseau mobile et à l’internet. Quelles informations nous concernant sont collectées par le réseau mobile pendant la journée et comment ?

Répondons à cette question.

Lorsque notre téléphone est posé sur la table, l’écran est éteint, nous pensons qu’il ne fait rien, qu’il est inactif. En réalité, il est actif et envoie constamment des messages aux cellules des opérateurs téléphoniques, portant deux très importants identifiants universels qui le caractérisent: IMEI et IMSI

Codes d’identification uniques

IMEI (International Mobile Equipment Identity) est un numéro d’identification unique utilisé pour identifier les téléphones mobiles et certains téléphones satellites. Il est généralement imprimé à l’intérieur du compartiment de la batterie du téléphone, mais il peut également être affiché à l’écran sur la plupart des téléphones en entrant le code *#06# comme numéro d’appel.

Officiellement, les réseaux GSM utilisent le numéro IMEI pour identifier les appareils valides. Grâce à ce numéro, vous pouvez empêcher un téléphone volé d’accéder au réseau, par exemple. En d’autres termes, si un téléphone portable est volé, son propriétaire peut demander à son opérateur de réseau d’utiliser le numéro IMEI pour bloquer le téléphone. Dans ce cas, le dispositif physique est verrouillé, quelle que soit la carte sim qui y a été insérée.

IMSI est l’identité internationale de l’abonné à la téléphonie mobile. Il s’agit d’un numéro qui identifie de manière unique chaque utilisateur d’un réseau cellulaire et qui est associé à l’identité  de la personne. Il est stocké sous la forme d’un champ de 64 bits et est envoyé de l’appareil mobile au réseau.

Ces identifiants sont donc uniques au monde et identifient le dispositif physique (matériel) + son utilisateur grâce à la carte sim qui a été enregistrée à son nom. Si on peux suivre ces deux données à un moment précis et dans une certaine zone de l’espace, on peut du coup déterminer tous les mouvements de la personne, partout dans le monde.

cellule mobile phone

Le téléphone, inactif, posé sur la table, envoie des signaux qui sont captés par les cellules téléphoniques à proximité. Chaque cellule téléphonique est à l’écoute des signaux des téléphones voisins. Supposons donc qu’une tour de téléphonie mobile A reçoive des signaux des téléphones d’Alice, Bob, Marc et Emma.

La détermination de la position

En comparant la puissance des signaux reçus des téléphones des différents utilisateurs, l’opérateur téléphonique détermine la cellule la plus proche du téléphone de l’utilisateur (disons Alice) et connaît ensuite celle qui sert le mieux ce téléphone.

Cette cellule peut alors créer un enregistrement de données contenant l’identifiant de l’appareil, l’identifiant de la carte SIM et donc l’identité de la personne, la date et l’heure et donc la position qui est suivie par la cellule elle-même.

Si quelqu’un appelle Alice, le réseau comparera les relevés de téléphone portable pour trouver la cellule la plus proche d’Alice dans le monde. Le cellule la plus proche du téléphone notamment dira “hey je suis le plus proche d’après mes relevés téléphoniques et la puissance actuelle du signal” et enverra ensuite un signal au téléphone de l’utilisateur qui s’allumera et commencera à sonner.

Bulk data collection

Il y a donc beaucoup d’informations. Ces données doivent être supprimées immédiatement lorsque le téléphone quitte une cellule particulière ou que le besoin technique cesse. Il n’y a aucune raison de conserver les données. Cependant, les compagnies de téléphone savent que ces données sont précieuses et les conservent (bulk data collection), les stockent et les recoupent en connaissant à tout moment l’emplacement du téléphone et l’identité de son propriétaire. Il s’agit de données importantes et pour certaines personnes, cette collecte constitue une grave violation de la vie privée.

Qu’est-ce que cela signifie ? Cela signifie qu’à chaque fois que vous êtes en déplacement avec votre téléphone, des enregistrements avec votre présence et des données d’identification sont créés et sauvegardés de façon permanente par la compagnie de téléphone.

Nous n’avons parlé que du réseau de téléphonie mobile, mais pas des apps. Si l’on considère les apps, elles contactent le réseau encore plus fréquemment et peuvent fournir des données gps,  des informations sur les réseaux wifi auxquels vous êtes connecté ou à proximité e beaucoup d’autres informations.

Le citoyen achète l’appareil, paie un abonnement téléphonique mais possède de moins en moins. Toutes vos informations sont détenues par des tiers externes qui peuvent les gérer, les stocker et les utiliser à notre insu.

Bitcoin: Fongibilité, Coinjoin et Lightning network

Bitcoin: Fongibilité, Coinjoin et Lightning network

L’un des problèmes les plus importants et les plus significatifs du bitcoin, surtout à mesure qu’il se répand et qu’il est utilisé comme moyen de paiement, est sa fongibilité. Cet aspect joue un rôle extrêmement important en ce qui concerne la vie privée des utilisateurs et la confidentialité de leurs patrimoines.

Essayons de comprendre ce que nous voulons dire.

Commençons par le concept d’UTXO. Une UTXO définit une output d’une transaction qui n’a pas encore été dépensée, c’est-à-dire qui n’a pas été utilisée comme input pour une nouvelle transaction. Cette définition est très importante.

Les UTXO

Les outputs sont des super-ensembles UTXO. Chaque UTXO doit être considéré comme une monnaie identifiable ayant un historique de transactions publiques. Pour donner un exemple : Si Alice envoie à Bob une certaine coin, BOB ne recevra aucune pièce mais spécifiquement cet UTXO particulier qu’Alice lui a envoyé. En regardant la blockchain, nous pouvons voir le passage dans la transaction, ainsi que toutes les transactions antérieures à celle d’Alice à Bob. Lorsque Bob utilise cette UTXO pour créer une nouvelle transaction, en envoyant cette pièce à une autre personne, il peut vérifier l’historique des transactions précédentes en regardant la blockchain.

Il est évident que tout ce que nous venons de dire concerne la blockchain et les transactions traditionnelles de bitcoins, alors que sur le réseau Lightning (le réseau construit sur la chaîne de blocs de bitcoins), les choses sont différentes. Dans la prochaine image il y a une transaction onchain standard. Nous pouvons voir ici sa structure en termes de inputs et outputs.

transaction basic
Revenons au discours d’Alice et Bob. Un observateur de la chaîne, par exemple une société d’analyse de chaîne ou même un utilisateur intéressé par des informations sur Alice ou Bob, peut alors faire l’aller-retour dans la chaîne et obtenir de nombreuses informations sur ses homologues et ses transactions précédentes. Le fait que seuls les adresses et les codes soient contenus dans la chaîne de blocage rend le système pseudonyme. Mais il suffit de relier l’identité d’une personne à une adresse, pour pouvoir toujours suivre le chemin que ce capital a pris dans l’histoire de ses transactions.

La fongibilité est une propriété essentielle de l’argent, c’est-à-dire que c’est la propriété qui permet de remplacer un billet de banque par un autre de même valeur. Confidentialité et fongibilité vont de pair. Cela est tout aussi important pour le bitcoin, car son utilisation est de plus en plus importante dans l’économie actuelle.

Ici entrent en jeu deux aspects de plus en plus utilisés pour augmenter la fongibilité des bitcoins et donner la confidentialité qui nous attend d’un moyen de paiement traditionnel.

Coinjoin

Le premier s’appelle Coinjoin. Il s’agit d’une technique, devenue une pratique exemplaire, qui permet de créer des transactions particulières dans lesquelles différentes inputs (appartenant à différentes personnes) sont combinées en une seule transaction et des outputs sont générés en faveur des mêmes contreparties. Le nombre d’interlocuteurs et la technologie utilisée garantissent ainsi que chaque participant à la transaction obtient un nouvel UTXO dans lequel le lien avec les transactions précédentes est rompu ou du moins brouillé. En d’autres termes, de nouveaux UTXO sont créés, qui sont plus fongibles que leurs prédécesseurs.

Cette technique est en train de devenir une pratique courante pour tous les utilisateurs de bitcoins à long terme afin de garantir la confidentialité et la sécurité. Dans la prochaine image il y a un example de transaction simple de Coinjoin.

coinjoin

Lightning Network

La seconde est de passer au lightning network. En fait, lorsque les bitcoins passent à lightning network, seules les transactions d’ouverture et de fermeture de canaux sont enregistrées, tandis que toutes les autres transactions n’apparaissent jamais sur la blokchain. Cela augmente considérablement la fongibilité des satoshi (petites fractions de bitcoin) qui sont transmis sur le lightning network car la blockchain analisys n’est plus applicable. Il est clair que les aspects de la transmission d’informations sur le réseau liés à la vie privée demeurent, mais c’est une autre question.

ouvrir canal lightning

J’espère que cet article a intéressé mes lecteurs et je reste volontiers à leur disposition pour toute question ou remarque, tant ici dans les commentaires que dans mes contacts sur linkedin, sur mon blog ou par telegram.

Paiements électroniques rapides sans intermédiaire

Paiements électroniques rapides sans intermédiaire ?

Les paiements électroniques ont toujours été l’apanage des géants des cartes de crédit, quelques très grandes entreprises qui se partagent le marché international des paiements en ligne. Autour de ces sociétés gravitent d’autres entreprises plus petites qui s’occupent de divers niveaux de services à valeur ajoutée tels que :   l’interface avec les boutiques en ligne, de la gestion des autorisations ou de la réalisation d’opérations comptables, etc. En bref, l’ensemble de ce marché est d’une importance considérable dans l’économie actuelle qui est de plus en plus numérisée.

Carte de crédit

Pour les paiements en ligne, c’est clair que la rapidité et la fiabilité sont très importantes. Toutefois, l’utilisation des cartes de crédit comporte les points suivants :

  • l’accès au marché financier traditionel et donc au système bancaire;
  • l’acceptation du modèle de protection de la vie privée imposé par les grandes sociétés de paiement;
  • la nécessité de disposer souvent de comptes courants;
  • acceptation du modèle de prépaiement (dans la plupart des cas);

Cela pose aujourd’hui des problèmes et certains utilisateurs veulent utiliser des systèmes ouverts qui ne dépendent pas d’intermédiaires et qui respectent davantage notre vie privée. Aussi parce que nous savons maintenant qu’il existe des solutions alternatives à l’ère des crypto-monnaies. En fait, nous savons que les paiements en bitcoin sont possibles et que le bitcoin représente “l’or numérique”, la préservation de la valeur et une barrière contre l’inflation. Mais qu’en est-il du bitcoin utilisé comme instrument de paiement ? Est-il aussi efficace ? Examinons deux cas typiques, c’est à dire l’envoi de paiements de gros montants et ceux de faible valeur, pour voir comment bitcoin peut nous aider.

Bitcoin onchain

Les paiements onchain[1] avec bitcoin présentent les caractéristiques suivantes

  • très sécurisé et efficace pour les gros montants. En fait, sur les gros montants, les frais de transaction ont très peu d’impact et par contre, la sécurité obtenu  par la blockchain des bitcoin est extrêmement élevée;
  • relativement rapide pour les gros montants, car attendre un heure pour transférer de gros montants peut ne pas poser de problème;
  • permettre le transfert électronique et international de fonds entre des personnes qui ne se connaissent pas, sans qu’il soit nécessaire de faire appel à un intermédiaire de confiance;

mais il est clair que pour les petits paiements, le bitcoin avec des transactions onchain n’est pas le choix le plus efficace. En fait, pensez par exemple à payer une facture de 5 ou 10 euros, cela n’aurait pas beaucoup de sens d’attendre une demi heure ou de payer 1-2 euro de frais de transaction. La comparaison avec les cartes de crédit ne tient donc pas, par rapport à ces dernières.

Bitcoin Lightning network

Mais c’est là qu’intervient le réseau Lightning Network, c’est-à-dire le réseau créé au-dessus des bitcoins, le “layer 2”, qui utilise la blockchain de bitcoin pour placer un système de transfert très efficace et rapide de petites sommes d’argent par-dessus.

Ce système permet de transférer des fractions de bitcoin (généralement exprimées en milliers de satoshis[2]) entre utilisateurs de manière très rapide, c’est-à-dire comparable aux cartes de crédit. Les frais de transaction sont négligeables et très faibles, ce système est donc parfait pour payer rapidement de petites sommes d’argent simplement avec votre smartphone par exemple et sans attendre les confirmations typiques de la blockhain.

Le système est basé sur un réseau de canaux établis entre différents pairs du réseau, sur lequel notre paiement est acheminé. Elle est très efficace pour les petits paiements, alors que, contrairement aux paiements on-chain, elle est plus inefficace pour les gros paiements en raison du “problème d’équilibrage des canaux”.

Cette technologie en est encore à ses débuts et en développement continu, mais elle fonctionne déjà assez bien et certains portefeuilles sophistiqués ont déjà été produits qui vous permettent d’utiliser ce système sans avoir à vous soucier de rien, car tout est géré en arrière-plan par le logiciel sous-jacent.

Ci-dessous quelques écrans du portefeuille lightning phoenix, qui vous permet de payer et de recevoir des paiements via votre smartphone grâce à une interface très simple et intuitive. Les paiements sont envoyés et reçus en quelques secondes et sans que l’utilisateur n’ait besoin de connaissances particulières.

 

Nous pouvons donc faire des micro achats en ligne ou payer personnellement, avec le smartphone utilisant le réseau lightning de manière extrêmement simple et sans dépendre de personne.

Notes:

[1] Onchain: Cela signifie que la transaction est une transaction bitcoin qui se déroule sur la blochain, c’est-à-dire une transaction bitcoin traditionnelle qui nécessite une vérification et des confirmations. A opposer aux transactions de réseau lightning network qui ne sont pas écrites sur la blockchain et constituent ce qu’on appelle le layer 2.

[2] Satoshi: Le satoshi est actuellement la plus petite unité de bitcoin enregistrée sur la blochckain. Il s’agit d’un cent millionième d’un seul bitcoin (0,00000001 BTC). Cette unité a été nommée en hommage au créateur original du bitcoin, Satoshi Nakamoto.

 

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.