🔐 Comment Time2Crack calcule le temps de fissuration
Guide complet sur le fonctionnement scientifique et technique
Vue d'ensemble
Time2Crack répond à une question simple : « Combien de temps faudrait-il pour craquer ce mot de passe ? »
La réponse implique trois étapes :
Point crucial : Time2Crack ne teste pas réellement le mot de passe. Il estime mathématiquement combien de tentatives seraient nécessaires avec différentes attaques.
Flux de calcul principal
Architecture à deux couches
L'innovation clé de Time2Crack est la séparation stricte entre :
« Combien de tentatives ? » — N'ont aucune notion de temps ou vitesse GPU. Modules : core/rank/*.js
« Combien de temps ? » — Convertissent tentatives en secondes. Module : core/time.js
Avantage : Modifier l'algorithme d'une attaque ne touche jamais à la logique de temps. Changer la vitesse GPU ne touche jamais aux attaques.
Étape 1 : Analyse du mot de passe
Qu'est-ce qu'on analyse ?
Avant de calculer le temps de fissuration, Time2Crack disséque le mot de passe pour détecter :
analyzePatterns(password) retourne {
// CHARSET & ENTROPIE
charset: { hasLower, hasUpper, hasDigit, hasSymbol },
entropy: 52.3, // bits
// DÉTECTIONS
patterns: {
dictionaryWord: true, // mot dans dictionnaire
commonPassword: false, // dans HIBP
keyboardPattern: false, // qwerty, asdfgh
sequencePattern: false, // abc, 123
datePattern: false, // 2024, 12/25
repeatingPattern: false, // aaaa, 1111
maskLike: true, // structure prévisible
looksPassphrase: true, // plusieurs mots
}
}
Les 8 types de détections
1️⃣ Mot du dictionnaire
Teste le mot de passe contre 50k-200k mots courants et leurs variantes (mutations simples).
2️⃣ Mot de passe commun (HIBP)
Teste contre les 1 000 mots de passe les plus fuités en utilisant la k-anonymité (seulement 5 premiers caractères SHA-1 envoyés).
Vérifier si votre mot de passe a été piraté →
3️⃣ Pattern clavier
Détecte : qwerty, asdfgh, qazwsx, etc.
4️⃣ Séquence
Détecte : abc, 123, xyz, etc.
5️⃣ Date
Détecte : 2024, 12/25, 25-12-2024, etc.
6️⃣ Répétition
Détecte : aaaa, 1111, !!!, etc.
7️⃣ Structuré
Détecte structures prévisibles : Name2024!, Passw0rd!
8️⃣ Phrase
Détecte plusieurs mots concaténés : correcthorsebatterystaple → [correct] + [horse] + [battery] + [staple]
Étape 2 : Estimation du rang (nombre de tentatives)
Concept fondamental
Le rang est : « Combien de mots de passe une attaque doit-elle tester avant de le trouver ? »
Exemple
- Brute force pour
abc: 26³ = 17 576 tentatives - Dictionnaire pour
password: ~1 tentative - PCFG pour
Password123: ~10¹¹ tentatives
Comment choisir l'attaque gagnante ?
Time2Crack lance les 7 attaques en parallèle et prend le meilleur résultat :
const results = {
brute: { rank: 1e30 },
dictionary: { rank: 1e6 }, // GAGNANT
hybrid: { rank: 1e7 },
mask: { rank: 1e8 },
markov: { rank: 1e9 },
pcfg: { rank: 1e11 },
combinator: { rank: 1e12 },
};
const best = Math.min(...Object.values(results).map(r => r.rank));
// → 1e6 (Dictionary attack est la plus rapide)
Étape 3 : Conversion en temps
Le concept
Maintenant qu'on sait qu'il faut rang tentatives, on convertit en secondes :
Formule : temps (secondes) = log₁₀(rang) / log₁₀(taux_hachage)
Les vitesses de hachage (GPU)
Time2Crack utilise vraies vitesses Hashcat pour 12× RTX 4090 :
| Algorithme | Vitesse | Salification |
|---|---|---|
| MD5 | 2.03 TH/s | Non |
| SHA-1 | 610 GH/s | Non |
| SHA-256 | 272 GH/s | Non |
| NTLM | 3.46 TH/s | Non |
| bcrypt | 2.2 MH/s | Oui |
| Argon2id | 800 H/s | Oui |
Exemple de conversion
Mot de passe : "password" (Rang : 1 million = 10⁶)
Pour MD5 (2 trillion/sec):
Temps = 10⁶ / (2×10¹²) = 0.5 microsecondes
Pour SHA-256 (272 GH/s):
Temps = 10⁶ / (2.72×10¹¹) = 3.7 microsecondes
Pour bcrypt (2.2 MH/s):
Temps = 10⁶ / (2.2×10⁶) = 0.45 secondes
Pour Argon2id (800 H/s):
Temps = 10⁶ / 800 = 1 250 secondes = 21 minutes
Les 7 attaques implémentées
1️⃣ Brute Force
Concept : Tester toutes les combinaisons possibles
Formule : rang = charset_size ^ length
Exemple : abc → 26³ = 17 576 tentatives
Très efficace pour : mots de passe courts et aléatoires
En savoir plus sur Brute Force →
2️⃣ Dictionary Attack
Concept : Tester chaque mot du dictionnaire
Formule : rang = taille_dictionnaire
Très efficace pour : mots humains
En savoir plus sur Dictionary Attack →
3️⃣ Hybrid Attack
Concept : Mot du dictionnaire + mutations simples
Formule : rang = taille_dictionnaire × nombre_mutations (~1000)
Très efficace pour : mots dictionnaire + petites modifications
En savoir plus sur Hybrid Attack →
4️⃣ Mask Attack
Concept : Tester les structures prévisibles
Très efficace pour : structures humaines (Name2024, Password!)
En savoir plus sur Mask Attack →
5️⃣ Markov Model
Concept : Approche statistique basée sur fréquences de n-grammes
Très efficace pour : mots humains — réduit espace de ~99%
En savoir plus sur Markov Model →
6️⃣ PCFG
Concept : Modèle grammatical qui apprend les structures
Exemple réel
Password123 :
- Brute force : 94¹¹ = 475 trillion tentatives
- PCFG : ~100 billion tentatives (4 700× plus rapide!)
7️⃣ Combinator Attack
Concept : Concaténation de 2+ mots du dictionnaire
Très efficace pour : passphrases (4+ mots)
Les 6 algorithmes de hachage
Pourquoi 6 ?
Différents algorithmes offrent différents niveaux de sécurité. Time2Crack montre les temps de fissuration pour les 6 pour montrer l'impact du choix d'algorithme.
🔴 MD5 (DÉPRÉCIÉ)
- Vitesse : 2 TH/s (très rapide)
- Salification : Non
- Statut : ❌ Ne plus utiliser
🔴 SHA-1 (DÉPRÉCIÉ)
- Vitesse : 610 GH/s
- Salification : Non
- Statut : ❌ Collisions trouvées (2017)
🟡 SHA-256 (ACCEPTABLE)
- Vitesse : 272 GH/s
- Salification : Généralement oui
- Statut : ✅ Acceptable si avec SALT + itération
🟠 NTLM (LEGACY)
- Vitesse : 3.46 TH/s
- Statut : ⚠️ Utilisé dans Windows legacy
🟢 bcrypt (RECOMMANDÉ)
- Vitesse : 2.2 MH/s (intentionnellement lent)
- Salification : OUI
- Statut : ✅ Excellent pour production
🟢 Argon2id (MEILLEUR)
- Vitesse : 800 H/s (très lent = très sûr)
- Type : Hybrid (temps + mémoire)
- Statut : ✅ Meilleur choix moderne (NIST 2021)
Les profils d'attaquant
Concept
Différents attaquants ont différentes ressources. Time2Crack modélise 4 profils :
| Profil | GPUs | NTLM | Cas d'usage |
|---|---|---|---|
| Amateur | 1 | 288 GH/s | Hackers hobbyistes |
| Experienced | 12 | 3.46 TH/s | Crackers sérieux (DÉFAUT) |
| Professional | ~100 | 28.8 TH/s | Entreprises, AWS clusters |
| Nation-State | ~10k | 2.88 PH/s | Gouvernements |
Impact concret
Mot de passe : "P@ssw0rd" (10 chars, rang : 1 billion)
- Amateur : 44 secondes
- Experienced : 3.7 secondes
- Professional : 0.43 secondes
- Nation-State : 4.4 millisecondes
Enseignement : Même un mot de passe "fort" peut être craqué en millisecondes par un état-nation!
Exemple concret : Tr0ub4dor&3
C'est le mot de passe du film "Correct Horse Battery Staple" (xkcd). Voyons ce que Time2Crack fait :
Étape 1 : Analyse
• length : 11 caractères • charset : 94 caractères • entropy : ~64 bits • dictionaryWord : FALSE • commonPassword : FALSE • maskLike : TRUE • looksPassphrase : FALSE
Étape 2 : Estimation du rang
Brute Force : 94^11 ≈ 475 trillion Dictionary : ∞ (pas dans dictionnaire) Mask : ≈ 1.4 trillion Markov : ≈ 10 trillion PCFG : ≈ 50 billion (GAGNANT) Combinator : ∞
Étape 3 : Conversion en temps
Résultats pour 50 milliards tentatives
- MD5 : 0.025 secondes
- SHA-256 : 0.18 secondes
- bcrypt : 6.3 heures
- Argon2id : 2 ans
Conclusion
- ✅ Sûr contre bcrypt/Argon2id (heures → années)
- ❌ Craquable en millisecondes contre MD5/SHA-256 sans salt
- 📊 Excellent exemple de comment le choix d'algorithme change tout
Questions fréquentes
Q: Time2Crack teste-t-il réellement le mot de passe ?
Non. Time2Crack n'envoie jamais votre mot de passe à un serveur.
- Tous les calculs se font localement dans le navigateur
- Seul appel réseau : HIBP check utilisant k-anonymité
- Pas de transmission du mot de passe complet
En savoir plus sur notre politique de confidentialité →
Q: D'où viennent les chiffres de vitesse GPU ?
Hashcat benchmarks officiels (v6.2.6) sur RTX 4090 :
- Mesurés en laboratoire
- Public domain
- Alignés avec Hive Systems 2025
Q: Pourquoi Argon2id est-il si lent ?
C'est intentionnel. Argon2id est conçu pour être lent, memory-hard, et difficile à paralléliser. Cela force les attaquants à utiliser énormément de ressources.
Q: Peut-on améliorer un mot de passe 100% "sûr" ?
Non. Même le meilleur mot de passe peut être volé ou deviné. Stratégie défensive :
- ✅ Bon mot de passe (15+ caractères aléatoires)
- ✅ Authentification multi-facteur
- ✅ Gestionnaire de mots de passe
- ✅ Vérification brèches (Have I Been Pwned)
Q: Comment améliorer mon mot de passe ?
Règles simples :
- Longueur : 15+ caractères (bien plus important que complexité)
- Aléatoire : Utiliser gestionnaire de mots de passe
- Uniques : Mot de passe différent par site
- MFA : Activer authentification 2FA si possible
Conclusion
Time2Crack fonctionne en 3 étapes immuables :
1. ANALYSE → Détecte patterns (dictionnaire, keyboard, etc.) 2. RANG → Estime tentatives nécessaires (7 attaques) 3. TEMPS → Convertit tentatives en secondes (GPU speeds)
Innovation clé : Séparation rigoureuse entre rang (attaque) et temps (GPU), permettant :
- Mise à jour facile des vitesses GPU
- Ajout facile de nouvelles attaques
- Architecture modulaire et testable
Résultat : Estimation précise, hors ligne, multilingue du temps de fissuration d'un mot de passe.
↑ Retour au sommet