chore(release): v0.6.0

This commit is contained in:
tuxgyver
2026-09-01 15:09:38 +02:00
parent 1f555eafc7
commit 6251a3ea8e
7 changed files with 46 additions and 8 deletions
+38
View File
@@ -6,6 +6,44 @@ Ce projet suit le [Versionnage Sémantique](https://semver.org/lang/fr/).
--- ---
## [0.6.0] — 2026-09-01
### Ajouté
- **Test de handshake réel, sans monter le tunnel.** Le diagnostic s'arrêtait au constat « le port
UDP ne rejette rien », qui est le maximum qu'une sonde aveugle puisse dire : un serveur WireGuard
ignore silencieusement tout paquet non authentifié, si bien qu'un port non redirigé, une clé
inconnue du serveur et un serveur en parfaite santé produisent exactement la même absence de
réponse. Le tunnel n'étant pas monté, les étapes suivantes étaient sautées et le rapport
concluait « chaîne validée » sur une configuration qui n'avait aucune chance de négocier.
WGSecure construit désormais un vrai message d'initiation et interprète la réponse : il distingue
un handshake complet, une clé pré-partagée attendue, en trop ou différente, un cookie anti-déni
de service, un port fermé et un silence complet — sans ouvrir de tunnel ni demander de privilèges.
- **Détection du filtrage sur port source.** Quand le serveur reste muet, une seconde tentative
part depuis le port du serveur. S'il répond alors, c'est qu'un équipement en chemin n'accepte le
trafic que si le port source égale le port de destination — une règle courante sur FortiGate,
dont l'objet Service porte un `udp-portrange 51820:51820`. Un client WireGuard émettant depuis un
port aléatoire ne peut jamais la satisfaire, et rien dans les journaux ne le disait.
### Modifié
- **Fenêtre d'administration ramenée à 720 × 600** (minimum 640 × 520) : le découpage en
sous-onglets a supprimé l'empilement qui imposait une grande fenêtre.
- **Encarts d'introduction retirés au-dessus des sous-onglets**, où ils répétaient ce que les
sous-onglets annoncent déjà. Ceux placés dans chaque sous-onglet sont conservés.
### Corrigé
- **Verdict trompeur quand le tunnel est inactif.** « Chaîne validée jusqu'au tunnel » laissait
croire que tout avait été vérifié, alors que les étapes sautées sont précisément celles qui
échouent quand un tunnel refuse de négocier. Le rapport annonce maintenant « rien de bloquant
détecté, mais le tunnel est inactif » et nomme les étapes non évaluées.
- **Causes du handshake manquant** : le port UDP du serveur figure désormais parmi les pistes
citées, un port erroné ne produisant aucune erreur visible.
### Technique
- Nouveau module `app/core/wg_handshake.py` : implémentation de la poignée de main
Noise_IKpsk2_25519_ChaChaPoly_BLAKE2s du protocole WireGuard v1. Aucun état n'est conservé, la
session négociée est jetée aussitôt et le serveur traite l'initiation comme celle d'un pair qui
se reconnecte.
## [0.5.0] — 2026-09-01 ## [0.5.0] — 2026-09-01
### Ajouté ### Ajouté
+1 -1
View File
@@ -4,7 +4,7 @@
## ────────────────────────────────────────────── ## ──────────────────────────────────────────────
APP := wgsecure APP := wgsecure
VERSION := 0.5.0 VERSION := 0.6.0
VENV := .venv VENV := .venv
PYTHON := $(VENV)/bin/python3 PYTHON := $(VENV)/bin/python3
PIP := $(VENV)/bin/pip PIP := $(VENV)/bin/pip
+2 -2
View File
@@ -1,6 +1,6 @@
# 🛡️ WGSecure (WGS) # 🛡️ WGSecure (WGS)
🚀 v0.5.0 · 🐍 · 🪟🐧 · 🔐 MFA TOTP · 🛡️ WireGuard 🚀 v0.6.0 · 🐍 · 🪟🐧 · 🔐 MFA TOTP · 🛡️ WireGuard
**WGSecure** est une interface graphique multiplateforme (Windows & Linux) pour gérer une connexion WireGuard avec une surcouche MFA (authentification à deux facteurs TOTP). **WGSecure** est une interface graphique multiplateforme (Windows & Linux) pour gérer une connexion WireGuard avec une surcouche MFA (authentification à deux facteurs TOTP).
@@ -188,4 +188,4 @@ WGSecure/
## 👤 Auteur ## 👤 Auteur
Développé par **Johnny** — [JT-Tools](https://github.com/JT-Tools) Développé par **Johnny** — [JT-Tools](https://github.com/JT-Tools)
Version : ![v0.5.0](https://img.shields.io/badge/v0.5.0-septembre%202026-2980b9?style=flat-square) — Septembre 2026 Version : ![v0.6.0](https://img.shields.io/badge/v0.6.0-septembre%202026-2980b9?style=flat-square) — Septembre 2026
+1 -1
View File
@@ -1,3 +1,3 @@
__version__ = "0.5.0" __version__ = "0.6.0"
APP_NAME = "WGSecure" APP_NAME = "WGSecure"
APP_SHORT = "WGS" APP_SHORT = "WGS"
+1 -1
View File
@@ -36,7 +36,7 @@ _WG_DEFAULT: dict[str, Any] = {
} }
_DEFAULT: dict[str, Any] = { _DEFAULT: dict[str, Any] = {
"version": "0.5.0", "version": "0.6.0",
"admin_password_hash": "", "admin_password_hash": "",
"admin_salt": "", "admin_salt": "",
"mfa_enabled": False, "mfa_enabled": False,
+2 -2
View File
@@ -1,7 +1,7 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
""" """
WGSecure (WGS) — Interface graphique WireGuard avec MFA WGSecure (WGS) — Interface graphique WireGuard avec MFA
Version 0.5.0 Version 0.6.0
""" """
import sys import sys
import argparse import argparse
@@ -92,7 +92,7 @@ def main():
) )
app = QApplication(sys.argv) app = QApplication(sys.argv)
app.setApplicationName("WGSecure") app.setApplicationName("WGSecure")
app.setApplicationVersion("0.5.0") app.setApplicationVersion("0.6.0")
app.setOrganizationName("WGS") app.setOrganizationName("WGS")
# Icône globale multi-tailles — barre des tâches + alt-tab # Icône globale multi-tailles — barre des tâches + alt-tab
app_icon = icons.icon_app() app_icon = icons.icon_app()
+1 -1
View File
@@ -4,7 +4,7 @@
; ────────────────────────────────────────────── ; ──────────────────────────────────────────────
#define MyAppName "WGSecure" #define MyAppName "WGSecure"
#define MyAppVersion "0.5.0" #define MyAppVersion "0.6.0"
#define MyAppPublisher "WGSecure" #define MyAppPublisher "WGSecure"
#define MyAppExeName "wgsecure.exe" #define MyAppExeName "wgsecure.exe"