Le protocole HTTP n'est pas chiffré
Impossible d'accéder à la ressource audio ou vidéo à l'adresse :
La ressource n'est plus disponible ou vous n'êtes pas autorisé à y accéder. Veuillez vérifier votre accès puis recharger la vidéo.
Objectifs
Connaître le protocole HTTP ;
Connaître les problèmes de sécurité du protocole HTTP.
Mise en situation
Le protocole HTTP permet de naviguer sur le Web mais il n'a recours à aucune mesure cryptographique. Il n'offre aucune assurance quant à la confidentialité et à l'intégrité des communications.
Toutes les informations communiquées via HTTP peuvent être consultées ou travesties par des tiers.
Ainsi, si on se limite à l'usage d'HTTP, un mot de passe ou un numéro de carte bleue communiqués via un formulaire web sont lisibles par tous les ordinateurs qui se chargent de la communication, ainsi que par tout attaquant qui souhaite espionner les échanges.
Le protocole HTTPS a permis de pallier cette limitation.
Rappel : Installation d'un serveur web
Pour expérimenter les requêtes HTTP, il est fortement conseillé d'avoir un serveur web installé sur un VPS, comme Apache ou Nginx.
Dans les commandes qui suivent, il faudra simplement remplacer les URL par l'IP du VPS.
Voici comment installer très rapidement un serveur Nginx sous Debian ou Ubuntu:
# Installe Nginx
apt install nginx
# Nginx démarre automatiquement.
# Si ce n'est pas le cas :
systemctl start nginx
Pour un serveur Apache :
# Installe Apache
apt install apache2
# Nginx démarre automatiquement.
# Si ce n'est pas le cas :
systemctl start apache2
Rappel : Le protocole HTTP
Le protocole HTTP (Hypertext Transfer Protocol) est un protocole client-serveur standardisé par le W3C permettant d'accéder à des sites web. Les navigateurs sont les clients HTTP les plus connus. Plus généralement, ce protocole rend possible le transfert de données structurées du serveur vers le client ou du client vers le serveur.
Rappel : Faire une requête HTTP
La commande curl
permet de lancer une requête HTTP. En ajoutant l'option -v
, la requête et le retour du serveur seront affichés.
curl [URL ou IP du serveur]
Fondamental : Absence de confidentialité
Le protocole HTTP fonctionne sans aucun chiffrement.
Les requêtes sont envoyées en clair sur le réseau. Tous les tiers observant les paquets peuvent connaître le contenu des communications. Ces tiers voient la requête et la réponse du serveur.
Attention : Man in the middle
Un modèle classique d'attaque est le man in the middle. Il s'agit d'une attaque où l'attaquant se place au milieu d'un canal de communication et observe ou modifie les communications. Avec le protocole HTTP, il est très simple de réaliser ce type d'attaque compte-tenu de la non-confidentialité des communications.
Cette situation est dangereuse dans la mesure où les requêtes HTTP peuvent transporter des identifiants.
Méthode : Comment le flux HTTP peut-être observé par un tiers ?
Les tiers pouvant observer les communications HTTP sont :
soit les ordinateurs par lesquels passe la requête (routeurs, FAI, etc.),
soit des attaquants.
Exemple :
Voici deux solutions techniques permettant d'intercepter et analyser les paquets :
Wireshark : enregistre le trafic réseau. Par exemple, il est possible d'observer toutes les communications Wi-Fi. Cet outil peut être utilisé pour attaquer des personnes utilisant un réseau Wi-Fi public sans précautions.
Suricata : un système de détection d'intrusion qui réalise une introspection des paquets. Cette outil est utilisé par certains fournisseurs d'accès internet ou entreprises pour détecter des attaques. Cet outil peut extraire les informations de toutes les communications HTTP.
À retenir
HTTP est un protocole de base pour communiquer sur Internet.
HTTP n'offre aucune garantie de confidentialité.
Impossible d'accéder à la ressource audio ou vidéo à l'adresse :
La ressource n'est plus disponible ou vous n'êtes pas autorisé à y accéder. Veuillez vérifier votre accès puis recharger la vidéo.