feat(security): retire le MFA local, le code d'accès est celui du serveur (v0.8.1)
La v0.8.0 laissait cohabiter deux vérifications du code à 6 chiffres : la fenêtre MFA locale, qui contrôlait un code contre un secret détenu par le poste lui-même — et ne verrouillait donc que sa propre interface — puis la validation par le serveur, seule à décider de l'accès réseau. L'ancienne disparaît, avec le secret TOTP qu'elle stockait en clair dans config.json (effacé au premier lancement) et l'onglet MFA du panneau Administrateur. La saisie passe par une fenêtre dédiée qui relaie le refus exact du serveur et laisse réessayer, la requête partant dans un thread pour qu'un serveur muet ne fige pas l'application. Une ligne « Accès distant » distingue désormais l'état de l'autorisation de celui du tunnel : monté sans code validé, celui-ci ne mène nulle part. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -6,6 +6,20 @@ Ce projet suit le [Versionnage Sémantique](https://semver.org/lang/fr/).
|
||||
|
||||
---
|
||||
|
||||
## [0.8.1] — 2026-09-06
|
||||
|
||||
### Sécurité
|
||||
- **Le secret TOTP ne réside plus sur le poste client.** Il y était stocké en clair dans `config.json`, alors que l'application n'en a plus l'usage depuis que le serveur valide les codes : un secret d'authentification sans emploi, exposé pour rien. Il est effacé du fichier au premier lancement de cette version, avec le réglage qui l'accompagnait.
|
||||
|
||||
### Modifié
|
||||
- **Une seule saisie de code, et elle compte.** La v0.8.0 laissait cohabiter deux vérifications : la fenêtre MFA locale — qui contrôlait un code contre un secret que le poste détenait lui-même, et ne verrouillait donc que l'interface — puis la validation par le serveur. L'ancienne disparaît ; reste celle qui décide réellement de l'accès au réseau.
|
||||
- La fenêtre de saisie remplace la boîte de dialogue sommaire de la v0.8.0 : elle affiche le refus exact renvoyé par le serveur (code invalide, compte verrouillé, expiré) et laisse réessayer sans reconnecter le tunnel. La requête part dans un thread — un serveur qui ne répond pas ne fige plus l'application.
|
||||
- **Nouvelle ligne « Accès distant » dans le panneau de détails**, distincte de l'état du tunnel : *Ouvert*, *Quarantaine (code requis)*, ou *Non géré par le serveur*. Un tunnel monté sans code validé ne mène nulle part — sans cette ligne, l'application affichait « Connecté » devant un réseau muet.
|
||||
- L'auto-reconnexion n'est plus suspendue par le MFA : elle remonte le tunnel, et l'application signale simplement qu'un code reste à saisir.
|
||||
- Onglet **MFA** retiré du panneau Administrateur, avec la génération de secret et le QR code : c'est désormais le serveur qui les délivre. L'export QR de la configuration WireGuard, lui, reste en place.
|
||||
|
||||
---
|
||||
|
||||
## [0.8.0] — 2026-09-06
|
||||
|
||||
### Sécurité
|
||||
|
||||
Reference in New Issue
Block a user