Ce projet explore la création d’un VPN minimaliste, développé en trois niveaux progressifs.L’objectif est d’apprendre, démontrer et documenter la construction d’un tunnel chiffré, puis d’un protocole réseau complet, jusqu’à une version avancée avec API et interface.
Chaque niveau est :
- développé dans une branche Git dédiée
- documenté
- démontré en vidéo
- intégré dans le portfolio
- comparé au niveau précédent
Ce projet met en valeur mes compétences en réseau bas niveau, cryptographie appliquée, architecture logicielle, documentation technique, et pédagogie.
- v1-mini-vpn → Niveau 1 : tunnel chiffré minimaliste
- v2-protocol-vpn → Niveau 2 : protocole + TUN/TAP
- v3-advanced-vpn → Niveau 3 : version avancée (API + UI)
- main → version stable affichée sur le site
Chaque branche contient :
- code source
- documentation
- schémas
- vidéos de démonstration
- notes d’évolution
Créer un tunnel chiffré simple entre un client et un serveur, sans interface réseau virtuelle.
- Serveur UDP minimal
- Client UDP minimal
- Chiffrement AES ou ChaCha20
- Clé partagée statique
- Encapsulation/décapsulation de messages
- Logs simples
- Démo en ligne de commande
- Architecture du niveau 1
- Explication du chiffrement
- Explication du tunnel logique
- Limites du niveau 1
- Comparaison avec un VPN réel
- Lancement du serveur
- Lancement du client
- Envoi d’un message chiffré
- Déchiffrement côté serveur
- Retour d’un message chiffré
- Sockets UDP
- Chiffrement symétrique appliqué
- Encapsulation de données
- Structure d’un tunnel réseau
- Documentation technique claire
Passer d’un tunnel logique à un tunnel réseau réel transportant des paquets IP.
- Interface TUN/TAP
- Encapsulation de paquets IP
- Handshake maison (clé publique ↔ clé publique)
- Rotation de clés simple
- Cookies anti‑DoS
- Routage minimal
- Multi‑clients basique
- Architecture du protocole
- Schéma du handshake
- Explication du routage
- Comparaison avec le niveau 1
- Limites du niveau 2
- Ping via le tunnel
- Curl via le tunnel
- Logs handshake
- Rotation de clé
- Interfaces réseau virtuelles
- Handshake cryptographique
- Gestion de clés publiques
- Routage interne
- Sécurité protocolaire
Créer un protocole complet, avec API d’administration et interface utilisateur.
- Protocole complet
- Gestion des sessions
- ACL simples
- API Flask d’administration
- Interface React (dashboard)
- Monitoring minimal
- Tests réseau
- Comparaison avec WireGuard
- Architecture complète
- Analyse de sécurité
- Analyse des limites
- Roadmap future
- Dashboard
- Connexion d’un client
- Monitoring
- ACL
- Logs
- Architecture réseau avancée
- API REST
- UI/UX technique
- Monitoring réseau
- Comparaison protocolaire
Le site React interroge une API Flask qui renvoie :
- le README.md du projet
- les images
- les vidéos
- les schémas
- les catégories
- les liens GitHub
- Menu de catégories (boutons bascule)
- Menu de sélection du niveau (1, 2, 3)
- Affichage dynamique du contenu
- Intégration vidéo
- Code extrait commenté
- Schémas SVG
Ce projet démontre :
- ma capacité à concevoir un protocole réseau
- ma compréhension de la cryptographie appliquée
- ma maîtrise du bas niveau
- ma capacité à documenter et transmettre
- ma progression versionnée et démontrée