Securiser vos wallets
-
@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
-
@anubis901 tu te souviens de ma longue phrase quelques posts plus haut ? ->
“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.”
Ton petit défi m’a titillé, alors je suis allé voir le code de ton appli. En gros tu coches toutes les cases. Ton implémentation d’AES n’est pas sûre. Tu as négligé des paramètres, tu n’as pas compris comment utiliser correctement AES. Bref, voilà, la sécurité de ton application est sous-optimale. Ça ne veut pas dire qu’il suffit de claquer des doigts pour casser ton mot de passe, mais tu donnes toutes les cartes à l’attaquant pour lui faciliter la tâche.
Tu ne devrais pas utiliser le mot de passe fourni par l’utilisateur comme clé privée, tu devrais passer par une fonction de dérivation avant, type PBKDF2. Sans cela, ta clé de chiffrement est bien trop faible et “devinable”.
Ton code utilise un initialisation vector nul : 16 fois le chiffre 0, alors que l’IV devrait être aléatoire et changer à chaque utilisation. Là ton IV ne sert à rien, tu perds une protection importante.
-
Quel silence assourdissant
On aurait pu croire que quelqu’un d’aussi intéressé par la sécurisation de ses clés privées aurait quelque chose à répondre aux défauts d’implémentation de son code… Dommage.
On en revient aux prémices initiales : un bon gestionnaire de mot de passe à la sécurité éprouvée fera le travail avec de meilleures garanties.
-
@patpro
Le gestionnaire de mots de passe où l’utilisation de dés.
Y’a que ça de vrai !!
Mais c’est un peu plus chiant avec les dés !!
🤟 -
@Herc je vois ce que tu veux dire mais pour le coup c’est hors sujet : tu ne peux pas stocker tes clés privées (de crypto-actifs ou autre) en utilisant des dés
Dans le contexte de ce fil de discussion, le gestionnaire de mot de passe te permet de stocker de manière sûre une clé privée de la même manière qu’elle le fait habituellement pour un mot de passe. -
Pareil, j’utilise des générateurs de mots de passe et c’est hyper simple
-
@patpro les dés servent juste à créer le password. J’étais sur le côté entropie.
Pour le stockage c’est une autre histoire ! -
@Herc oh je sais parfaitement tout ça, mais c’est bien du stockage dont il est question ici (l’appli dont l’OP fait la promotion), même si avec @Raniva on s’est aventuré du côté de l’aléa dans les mots de passe.
Les dés pour générer des mots de passe c’est gentil, ça apprend le concept, mais sincèrement c’est pas trop praticable pour obtenir des mots de passe vraiment très variés car en général l’utilisateur va se baser sur une liste de mots trop courtes (ie. gérable avec quelques dés).
En dessous d’un dictionnaire de 200000 ou 300000 mots c’est compliqué d’avoir une “phrase de passe” pas trop longue ET en même temps appartenant à un “keyspace” très large.
Pour résumer, plus ton dictionnaire de départ est court, plus ta phrase de passe doit être longue et les dés ne permettent pas facilement d’adresser un dictionnaire très long. -
rahhh ptain
https://github.com/Anubis901/SafeCrypto/commit/ff0eb465782fa8a28ecbbf0d4a886fc244d26ceb
Il aurait été bien inspiré de passer par ici avant de faire semblant de corriger son code. La modif dans la gestion du mot de passe n’apporte rien.
Et cette modif fait perdre la compatibilité avec les vaults créées sur l’ancienne version, si bien qu’elles ne sont plus lisibles avec la nouvelle version de l’appli.
Aussi, c’est length, pas lenght. Bref. -
Pareil, j’utilise des générateurs de mots de passe et c’est hyper simple