Le terme vient du bâtiment : un mur coupe-feu est une paroi destinée à empêcher un incendie de se propager d'une partie d'un édifice à une autre. L'image est juste, à une nuance près qui a son importance. Un mur coupe-feu est passif, il se contente d'exister. Un pare-feu informatique, lui, examine en continu ce qui le traverse, et sa valeur dépend entièrement de la qualité de ses règles et de la fraîcheur de ses mises à jour.
Comment il décide, concrètement
Chaque paquet qui se présente est confronté à une liste de règles, lues dans l'ordre, jusqu'à la première qui correspond. Une règle s'exprime à partir de cinq informations :
- D'où ça vient : adresse ou plage d'adresses source.
- Où ça va : adresse de destination.
- Quel service : le port et le protocole, par exemple le port 443 en TCP pour un site web sécurisé.
- Dans quel sens : entrant ou sortant.
- Quoi faire : autoriser, bloquer silencieusement, ou refuser en prévenant l'émetteur.
La dernière règle de toute configuration saine est un refus général. Tout ce qui n'a pas trouvé de règle d'autorisation avant d'arriver là est jeté. C'est ce qui fait qu'un pare-feu correctement configuré bloque aussi les attaques que personne n'avait anticipées : il n'a pas besoin de les connaître, il suffit qu'elles n'aient pas été autorisées.
L'apport décisif : le suivi des connexions
Les premiers pare-feu examinaient chaque paquet isolément, ce qui était facile à tromper. Tous les pare-feu actuels sont à états : ils mémorisent les connexions en cours. Quand votre navigateur demande une page, le pare-feu note la demande sortante et autorise automatiquement la réponse qui correspond, sans qu'il faille écrire une règle pour l'entrant.
Cette mémoire change tout. Elle permet de n'autoriser aucune connexion entrante non sollicitée tout en laissant les utilisateurs naviguer normalement, et elle fait qu'un paquet entrant qui ne correspond à aucune conversation en cours est rejeté sans discussion.