Fix: Critical security hardening#56
Conversation
- Replace password padding (!) with Argon2id key derivation - Set vault file permissions to 0600 (owner-only) - Enable Content Security Policy (was null) - Replace all .unwrap() chains with proper error handling
- Use cfg(unix) for file permissions (Windows compat) - Zeroize password in encrypt/decrypt after key derivation - Remove dead code in vault create
- Try legacy decrypt first (fast, no KDF) on login - If legacy succeeds, re-encrypt with Argon2id automatically - Only one Argon2id derivation per login regardless of format - No manual re-creation needed for existing users
|
Salut, Merci beaucoup pour ton temps et ton analyse détaillée, ce sont d'excellents points. Pour ma défense, je ne suis pas à l'origine de ces commits. Le contributeur en question m'avait demandé de l'enlever des commits authors pour des raison de confidentialité. Mais il est vrai que j'ai clairement failli lors de ma code review en laissant passer cette fausse "cryptographie" et ces unwrap(). J'en prends l'entière responsabilité. Concernant tes propositions de correctifs, ton plan est parfait. Passer sur Argon2id avec un mécanisme de migration automatique pour les anciens coffres, restreindre les permissions du fichier à 0600, mettre en place une CSP stricte au lieu de null et utiliser une vraie gestion d'erreur avec des Result pour éviter les panics... C'est exactement ce qu'il faut faire pour durcir correctement l'application. Mais pour ce qui est du "ratio" disons que j'ai était un peu taquins, même si je change pas ma position sur le fait que tu aurais du faire un fork ;) Merci encore pour l'audit et de m'avoir remonté tout ça ! |
|
Je check ca ce soir et je merge ❤️ |
|
i'm so sorry |
|
Salut, tu as des réseaux sociaux ou une adresse mail que tu voudrais que je mentionne dans la release ? |
|
Salut, tout est sur mon profil GitHub : https://github.com/Chocapikk - sinon Twitter c'est @Chocapikk_ |
|
Ça marche 👌 |

Fix: Critical security hardening
@SystemVll yo, it's been a while!
Was bored, looked at TAuth. Bro.
The "encryption"
The master password gets padded with
!to 32 bytes and slapped raw as the AES key. That's it. That's the KDF.15 lines of Python and rockyou is all it takes:
Output:
0.28 seconds. Full dump.
Also the vault file is 0644 (world-readable), CSP is literally
null, and every handler.unwrap()s on user input so I crashed the app 3 times before I even got to the crypto part.Fixes
"!".repeat(24)is supposed to beLegacy vaults are auto-migrated to Argon2id on next login. No re-creation needed.