Securiser vos wallets
-
Hello la communaute !
Ça fait un moment que je suis sur le forum en “touriste”.
Je vois pas mal de news de vol de wallet en general.
Je suis dev et j’ai codé une app pour sécuriser mes wallets.
Voilà comment ça fonctionne.
L’app permet de crée un coffre fort, et de stocker des wallets.
Un coffre fort c’est un fichier chiffré (aes-256-cbc) protegé par un mot de passe.
Une fois le coffre fort crée, on est libre de le sauvegarder ou l’on veut. Clé usb, cloud, disque dur externe etc …
L’app fonctionne hors ligne. Il n’y a pas de system de synchronisation.
C’est à vous de choisir ou vous sauvegardez votre coffre.
Perso, j’ai une copie sur une cle usb attaché a mon trousseau de clé, une copie sur mon disque dur externe chez moi et une copie sur google drive.
Si quelqu’un d’autre réussit à récupérer votre coffre fort, il doit connaître le mot de passe pour avoir accès au contenu.
Comme n’importe quel système d’authentification, vous êtes responsable de votre mot de passe.
Avantage :
- Sécurisé
- wallets centralisé
- Portabilité
- Un seul mot de passe
- Offline
Lien du projet : https://github.com/Anubis901/SafeCrypto
-
@anubis901 a dit dans Securiser vos wallets :
google drive
Aie…
Pas confiance de mettre ce genre de fichier chez Google
Perso , un fichier odt protégé par mot de passe relativement long.
Concernant le stockage de mon fichier, tous hors ligne bien sur, deux copies à domicile et une copie hors domicile.(risque incendie / inondation etc) -
Aucun risque de stocker un fichier chiffré en ligne.
AES est trés solide.
Si un jour quelqu’un ou une organisation reussit à casser AES, c’est toutes les blockchains qui s’effondre.
C’est sur que tout offline c’est beaucoup plus safe. C’est pourquoi mon app fonctione hors ligne :).
-
@anubis901 a dit dans Securiser vos wallets :
Aucun risque de stocker un fichier chiffré en ligne.
Quand on voit le peu de sérieux de certaines entreprises, le cloud tres peu pour moi .
@anubis901
https://www.solutions-numeriques.com/lalgorithme-aes-casse/
Des attaques existent sur des versions simplifiées d’AES. Niels Ferguson et son équipe ont proposé en 2000 une attaque sur une version à 7 tours de l’AES 128 bits. Une attaque similaire casse un AES de 192 ou 256 bits contenant 8 tours. Un AES de 256 bits peut être cassé s’il est réduit à 9 tours avec une contrainte supplémentaire. En effet, cette dernière attaque repose sur le principe des « related-keys » (clés apparentées). Dans une telle attaque, la clé demeure secrète mais l’attaquant peut spécifier des transformations sur la clé et chiffrer des textes à sa guise. Il peut donc légèrement modifier la clé et regarder comment la sortie de l’AES se comporte.
Source Wikipédia
-
Si j’ai bien compris, ton appli propose un stockage chiffré des clés privées associées à différentes cryptomonnaies. Tu peux déjà faire ça dans un gestionnaire de mot de passe (il en existe des hors-ligne, comme Keypass par exemple).
-
@patpro
Yes tu peux utiliser un autre gestionnaire de mot de passe comme keepass/x/xc etc
La c’est juste une app qui fait une chose et qui le fait bienBeaucoup plus user friendly qu’un gestionnaire de mot de passe.
-
@Raniva
L’article en question c’est de la théorie.
Oui si on a la puissance de calcul, on peut casser n’importe quel chiffrement. -
@anubis901 L’article à 10 ans, et je pense qu’on arrive à une puissance assez phénoménal sur les premiers PC quantique.
Mais apres je peux comprendre le choix de chacun, c’est comme un logiciel de gestion de mot de passe…aucune confiance également -
@Raniva
Pour le moment, les ordinateurs quantiques ont du mal à faire des opérations arithmétiques simple.
Mais bon le jour où on casse le chiffrement type AES, RSA etc, ce sont les blockchains actuelles qui tombent. On pourra trouver ta clé privée depuis ta clé publique.D’ici là, j’imagine qu’on aura des blockchains qui utilisent du chiffrement quantique.
-
Alors j’ai du mal à voir le lien entre AES et les blockchain au sens large.
AES est un mécanisme de chiffrement (ie. c’est réversible) alors que les blockchains utilisent autant que je sache, des mécanismes de hachage (ie. c’est non réversible).Mais pour revenir à nos moutons, AES reste quelque chose de robuste et même si des voies d’attaque existent sur le plan théorique / conceptuel, elles ne sont pas praticables. AES256 est largement suffisant pour protéger votre argent ou vos cryptomonnaies.
Par contre, le diable est dans les détails : il n’est pas rare qu’un développeur se plante dans l’implémentation qu’il fait d’un mécanisme de cryptographie (néglige un paramètre, se trompe sur son usage, fait l’impasse sur une partie de la documentation, etc.) aboutissant alors à une application qui utilise une très bonne fonction cryptographique mais avec des paramètres mal choisis qui en annulent tout ou partie du bénéfice.
N’oublions pas non plus l’utilisateur : si il choisi un mot de passe de mauvaise qualité, AES ne pourra rien pour lui. En fait, pour être tout à fait clair : si l’utilisateur choisi son mot de passe, alors le mot de passe est mauvais. Game over. -
En effet c’est different mais un hash aussi est cassable (MD5, SHA1).
“si l’utilisateur choisi son mot de passe, alors le mot de passe est mauvais. Game over.”
Tout depend de la complexité.
La difference entre un mot de passe faible et un mot de passe fort, c’est le temps qu’il faut pour le casser.
Tout les mots de passe sont cassable sans exception. On considere un mot de passe fiable si le temps pour le casse ce compte en milliard d’annee.
-
@anubis901 a dit dans Securiser vos wallets :
En effet c’est different mais un hash aussi est cassable (MD5, SHA1).
ça n’a pourtant rien à voir. Si tu casses une clé de chiffrement, alors tu peux déchiffrer tout ce qui a été ou sera chiffré par elle. Si tu casses un hash tu ne fais que retrouver ce qui est hashé dans le meilleur des cas, et dans le pire des cas tu vas tomber sur une collision qui te donne donc un résultat moins utile (mais en effet pouvant mettre un gros foutoir dans une blockchain).
“si l’utilisateur choisi son mot de passe, alors le mot de passe est mauvais. Game over.”
Tout depend de la complexité.
non, ça ne dépend pas
si tu choisis ton mot de passe toi-même, alors ton mot de passe est dicté ou influencé par le facteur humain. Et donc ton mot de passe est mauvais. Il ne faut pas choisir son mot de passe, il faut laisser un générateur aléatoire s’en charger pour soi.La différence entre un mot de passe faible et un mot de passe fort, c’est le temps qu’il faut pour le casser.
Tout les mots de passe sont cassable sans exception. On considere un mot de passe fiable si le temps pour le casse ce compte en milliard d’annee.
C’est faux, à plusieurs niveau. La résistance à la casse pour un mot de passe est majoritairement due à la manière dont le mot de passe est stocké. Un stockage de faible qualité (md5, ou sha1 pour reprendre ceux que tu cites plus haut) va mal protéger les mots de passe et l’attaquant pourra tester des millions ou des milliards de candidats par secondes. Dans ce cas de figure même des mots de passe qui semblent bons vont être cassés. Moi même en attaquant les mots de passe d’un active directory j’en casse régulièrement au delà de 40 caractères de long.
À l’inverse un mot de passe qui serait stocké dans un format robuste comme PBKDF2 avec 100K itérations ou plus, Argon2, bcrypt, etc. pourrait faire 10 caractères de long, je serais incapable de le casser si il est purement aléatoire. Si c’est un mot du dictionnaire ça pourrait se faire moyennant une puissance de calcul importante.
Donc tu pourrais avoir un mot de passe d’une qualité absolument ridicule mais très bien protégé qui serait plus compliqué à casser qu’un bon mot de passe stocké dans un format moisi.
Pour finir il est absolument impossible d’estimer correctement le temps nécessaire pour casser un mot de passe car cela dépend du matériel, de la manière dont est stocké le mot de passe, du savoir faire de l’attaquant et de comment a été généré le mot de passe. Donc cette métrique dont tu penses qu’elle est au centre de tout, n’existe tout simplement pas. -
@patpro a dit dans Securiser vos wallets :
“si l’utilisateur choisi son mot de passe, alors le mot de passe est mauvais. Game over.”
Tout depend de la complexité.non, ça ne dépend pas
si tu choisis ton mot de passe toi-même, alors ton mot de passe est dicté ou influencé par le facteur humain.?? ca depend
Une grande partie de mes mdp crypto ressemble à :
f6556Rzn,bv::ERETdfsGFD5(-7_$$f8d"é’hgsè-(s/.RDonc du hazard…en gros je tape un paquet de caractére au pif, ce que fais un générateur de Mdp non ?!
Je ne les trouve pas influencé par mon facteur humain non ?!
L’enfer c’est quand tu dois taper ca sur un smartphone…
-
Ce message a été supprimé !
-
Mes doigts qui parcours le clavier sans un rythme précis. de l’aléatoire,
Je me repositionne ensuite dessus et rajoute en plusieurs endroits d’autres caractère au pif (Maj/min ou symbole) -
Dans ce cas :
-
@Raniva a dit dans Securiser vos wallets :
Une grande partie de mes mdp crypto ressemble à :
f6556Rzn,bv::ERETdfsGFD5(-7_$$f8d"é’hgsè-(s/.RDonc du hazard…en gros je tape un paquet de caractére au pif, ce que fais un générateur de Mdp non ?!
Nop. Tu n’as pas de vrai aléa là dedans, la probabilité de chaque caractère est dictée par tes habitudes (comme la position de tes mains sur le clavier, le nombre de doigts que tu utilises spontanément pour taper, etc.) et la structure de ton clavier (connue et totalement fixe).
Alors je te l’accorde, il est particulièrement long et une attaque en force brute exhaustive est probablement vouée à l’échec.Maintenant, prends un paquet de tes mots de passe générés de la même manière, et examine-les bien : tu vas retrouver des blocs communs, des enchaînements de 2 ou 3 caractères qui peuvent se répéter plus souvent que ce que tu obtiendrais dans une génération aléatoire.
Rien que dans ton exemple :f6556Rzn,bv::ERETdfsGFD5(-7_$$f8d"é’hgsè-(s/.R
6556 : pattern de type “keyboard walk”
ERET : idem
n,bv : grosse proximité
dfs : idem
GFD : keyboard walk
5(-7_ : idemT’es un peu sauvé par le dernier tiers du mdp, mais voilà, tu as pigé l’idée je pense.
Ces patterns sont soient connues et déjà intégrées dans les logiciels de casse de mots de passe, soient absentes mais analysables avec des outils comme les chaînes de Markov ou mieux la PCFG (programmatic context-free grammar). Dans ce type d’outils tu vas mettre en entrée des exemples de chaînes de caractères à titre d’exemple, et ils vont te sortir un paquet de chaînes de caractères qui reprennent les caractéristiques des exemples tout en étant différentes. C’est à dire qu’ils vont te permettre de créer des milliers ou millions de variations crédibles basées sur le modèle statistique déduit des exemples que tu as fournis en entrée.
C’est pour ça que les seuls mots de passe valables sont ceux qu’on ne choisi pas et qui sont fabriqués aléatoirement par des machines : si l’aléa est de bonne qualité (au sens mathématique) alors il est impossible d’en tirer un modèle statistique et la seule attaque possible reste la force brute, c’est à dire l’énumération de chaque possibilité, ce qui est globalement ingérable au delà d’une longueur assez courte. -
C’est bien pour ca que je replace ensuite mon curseur à différents endroits dans le premier jet du mot de passe pour ensuite rajouter des bouts par ci par la.
J’ai justement pris l’habitude de regarder un peu mes mots de passe afin d’éviter un placement de doigts en particulier , je me force à changer , en général j’essaye de mettre un petite trentaine de caractères, donc oui je suis conscient des patterns récurrente (lettre proche , c’est pour ca que je me replace dans le Mdp pour en rajouter)
-
Tu te fais du mal
Utilise un générateur de mots de passe (souvent intégré aux gestionnaires de mots de passe notamment) pour te fabriquer des vrais MDP aléatoires. Ils seront de meilleure qualité tout en étant plus courts si tu le souhaites : tu gagnes sur les deux tableaux. -
Tu sais quoi, voila le vault cree avec mon app.
qJNWqCTFdy71G24j+yy/2T8y6fIWwrYMjQb8TSVgv3fXYLP2TtrhZc15OBU/wiXr+U6lncX7Z7a+uZQNAX1RIRCIzTyUxJblcpR3Yj0QAz+TN+9lBl9H3LFR4m65/ZSA7RzSZHw4WZlMmKvcua4vY2Hx1ang7aDLfH8nA+aiVq8sWD4rXriX6Oh0NAEyXu6vrAr04WBL2iVIvFRhDgsz/w==
C’est la string en base64. chiffrement comme dit au dessus : aes-256-cbc
Casse le et tu as acces a mon wallet.
La cle publique c’est celle sur le screenshot :
0x5b89A6822D0C8a17c4A6F90375C31fE76Ca87954
Ya quelques euros a ce faire :
https://bscscan.com/address/0x5b89A6822D0C8a17c4A6F90375C31fE76Ca87954Si tu y arrive, je veux que tu m’explique comment tu as fait )
J’ai hate de me reveiller un matin et de voir que mon wallet vide hahahahahaha