Vous avez :
déployé sur wserver
un code python correspondant à un serveur Web
déployé sur pc1
un code client correspondant à un client http
analysé les tables de commutation du pont (switch
entre pc1
et wserver
)
sniffé puis visualisé les communications (paquets http échangés) entre wserver
et pc1
grace à wireshark
Aucune sécurité particulière pour protéger wserver, pc1, switch et se prémunir d’attaques
Vous avez :
Interconnecté plusieurs réseau dont le réseau 100.10.0.0/24 qui contenait pc1
et wserver
Configuré les tables de routages de r1
et r2
pour que ces derniers fassent suivre le trafic entre les différents réseaux
Aucune sécurité particulière pour protéger wserver
, pc1
, switch
, pc3
et se prémunir d’attaques
Si le réseau 100.10.0.0/24 était celui d'une entreprise et wserver son serveur Web, comment protégeriez-vous les équipements (PCs de l'entreprise, son serveur web) ?
Dans l’intranet de l’entreprise (réseau 100.10.0.0/25), vous allez déployer sur wserver
un serveur http (serveur open source Apache) et allez y déployer une page web
Vous allez configurer fw1
et fw2
qui sont deux routeurs
Vous allez par la suite tenter de protéger l’intranet de l’entreprise : pc1 et aussi et surtout le serveur apache wserver qui est une cible de choix
Dans le sous-réseau 100.10.0.128/25 de l’entreprise vous allez déployer un reverse proxy nginx qui :
Reçoit les requêtes des clients et les redirige vers le serveur Web (de wserver
), puis, retourne la réponse du serveur Web aux clients comme si elle provenait directement de lui-même
wserver
ne sera plus visible/directement accessible depuis l’internet où se trouve le client pc3
fw1
et fw2
sont deux routeurs jouant le rôle de firewall qui ne font pas suivre aveuglement des paquets mais les filtrent
Quel est l’intérêt d’avoir deux firewalls ?
Un seul firewall de niveau 3 applique des règles pour définir quelles sont les communications autorisées en se basant sur :
Avec une zone démilitarisée ou DMZ correspondant au réseau 100.10.0.128/25 est entourée par deux firewalls
La DMZ est destinée à héberger des serveurs et services accessibles depuis l’internet :
Exemple de serveurs : apache, DNS, reverse proxy, plus généralement service front…
Les serveurs de la DMZ « peu » critiques sont attaqués alors que les serveurs critiques en backend dans l’intranet sont épargnés
Un Virtual Local Area Networks (VLAN) segmente le réseau intranet au niveau 2 pour séparer deux groupes de machines
Séparation en VLAN avec une partie des flux acceptée par le firewall Firewall-int
Séparation en VLAN avec une partie des flux bloquée par le firewall Firewall-int
Vous configurez deux routeurs fw1 et fw2 jouant le rôle de firewall
fw2
en front effectue un préfiltrageproxy
joue le rôle de rebond vers le serveur web apache de l’intranetfw1
protège l’intranetQuelques dangers restants:
wserver
Utiliser un serveur apache https plutôt que http
Assurer la confidentialité : garder/ne pas divulger les informations privées (sensibles par ex.), en veillant à ce qu’elles ne soient accessibles qu’aux personnes/entités autorisées
Assurer l’intégrité en se prémunissant de modification, d’altération ou de destruction non autorisées tout au long du cycle de vie
Assurer l’authenticité des données/communications/ entités en vérifiant l’identité des entités afin de vérifier qu’elle est bien celui celles qu’elles prétendent être, d’éviter l’usurpation d’identité, et, aussi l’accès non autorisé
Le chiffrement est un processus de transformation des données (en clair) pour les rendre illisibles/indéchifrable à toute entité non autorisée
Il existe 2 grandes familles de chiffrement:
Le chiffrement symétrique utilise la même clé pour le chiffrement et le déchiffrement de la donnée ; elle est gardée secrète (connue uniquement par le propriétaire)
Chiffrement historique de César :
Clé secrète = un décalage de n caractères
Exemple : décalage de 2 caractères : A devient C, B devient D, C devient F, D devient G, …, O devient Q
Chiffrement (BONJOUR) = DQPLQWT et Déchiffrement (DQPLQWT) = BONJOUR
→ Avec une clé chiffrement = déplacement de 2 caractères sur la droite et une clé de déchiffrement = déplacement de 2 caractères sur la gauche
Chiffrement par masque jetable consiste à appliquer un XOR entre le texte en clair et une clé secrète
de même longueur que le texte, générée aléatoirement et utilisée une seule fois
Chiffrement : applique un XOR entre le texte en clair et la clé secrète
Texte en clair : 0 1 1 0 1 0 Clé secrète : 1 0 0 1 1 0 --------------------------- Texte chiffré : 1 1 1 1 0 0
Déchiffrement : applique un XOR entre le texte chiffré et la clé secrète
Texte chiffré : 1 1 1 1 0 0 Clé utilisée : 1 0 0 1 1 0 --------------------------- Texte en clair : 0 1 1 0 1 0
La cryptographie asymétrique utilise 2 clés :
Exemple de chiffrement asymétrique :
La cryptographie asymétrique est couramment utilisée pour :
La signature numérique est utile pour vérifier :
Elle garantit que la donnée n’a pas été modifiée et permet de vérifier l’identité de l’expéditeur/générateur de la donnée, qui ne peut pas la répudier
📄 Le document ou message est haché avec une fonction de hachage pour créer une empreinte (hash) de longueur fixe du document/message
🔐 Le hash est ensuite chiffré à l’aide de la clé privée de l’expéditeur, ce qui génère la signature numérique
La clé privée d’Alice est utilisée pour générer une signature.
La clé publique d’Alice est utilisée par Bob pour vérifier la signature.
💡 Question : Comment Alice peut-elle partager avec Bob sa clé publique de manière sécurisée ?