Sécurité TCP/IP

Brouillon
Cette page n'est pas terminée.

TCP/IP est très largement utilisé afin de transmettre les communications sur le réseau. Les communications TCP/IP se composent de quatre couches qui fonctionnent ensemble. Lorsqu'un utilisateur souhaite transférer des données sur un/des réseau(x), les données sont passées de la couche la plus haute à la couche la plus basse et chaque couche ajouter des informations. À chaque niveau, l'unité logique qui est manipulée est généralement composées d'un en-tête et d'une charge utile. La charge utile correspond à l'information passée depuis la couche précédente. L'en-tête contient des informations spécifiques à la couche courante (telles que les adresses utilisées). Au niveau de la couche applicative, la charge utile correspond aux données transmises. La couche la plus basse envoie les différentes données via le réseau physique. Une fois arrivée à destination, les données repassent vers les couches les plus hautes. En résumé, les données produites par une couche sont encapsulées dans un conteneur plus grand dans la couche inférieure. Les quatres couches qui permettent à TCP/IP de fonctionner sont présentées ci-après, de la plus haute à la plus basse :

  • La couche applicative. Cette couche envoie et reçoit des données pour des applications spécifiques telles que le Domain Name System (DNS), HyperText Transfer Protocol (HTTP), et Simple Mail Transfer Protocol (SMTP).
  • La couche de transport. Cette couche fournit des services pour transporter les données entre les réseaux (en utilisant ou non des services avec connexions). Cette couche peut éventuellement assurer la fiabilité des communications. Transmission Control Protocol (TCP) (pour protocole de contrôle des transmissions) et User Datagram Protocol (UDP) (pour protocole de datagramme utilisateur) sont les protocoles de transports les plus communément utilisés.
  • La couche réseau. Cette couche s'occupe de router les paquets entre les différents réseaux. L'Internet Protocol (IP) est le protocole réseau fondamental pour la mise en oeuvre de TCP/IP. D'autres protocoles utilisés à ce niveau sont Internet Control Message Protocol (ICMP) (pour protocole de contrôle des message Internet) et Internet Group Management Protocol (IGMP) (pour protocole de gestion des groupes Internet).
  • La couche physique. Cette couche gère les communications sur les composants physiques. Le protocole le plus connu pour cette couche est Ethernet.

Des contrôles de sécurité existent pour chaque couche du modèle TCP/IP. Comme vu précédemment, les données sont passées de la couche la plus haute vers la couche la plus basse, chaque couche ajoutant des informations. C'est pour cela que les contrôles de sécurité effectués par une couche ne bénéficient pas aux couches inférieures car celles-ci effectuent des opérations dont les couches supérieures ne sont pas conscientes. Voici quelques contrôles de sécurité mis en œuvre par chaque couche :

  • La couche applicative. Des contrôles distincts doivent être mis en place pour chaque application. Si, par exemple, une application doit envoyer des données sensibles sur les réseaux, l'application devra être adaptée pour mettre en place ces contrôles.  Bien que cette solution offre un certain contrôle et une certaine flexibilité, cela peut demander des efforts importants. Concevoir et implémenter une application sûre sur le plan cryptographique est très complexe et il faut également veiller à ne pas ajouter de vulnérabilités. Bien que ces sécurités puissent protéger le contenu lié aux applications, elles ne pourront pas protéger d'autres données comme les adresses IP qui sont utilisées sur d'autres couches inférieures. Le plus possible, les contrôles effectués à cette couche devraient être basés sur des standards définis depuis quelques temps. Par exemple Secure Multipurpose Internet Mail Extensions (S/MIME), est communément utilisé pour chiffrer les messages électroniques.
  • La couche de transport. Les contrôles présents à cette couche peuvent être utilisés pour protéger les données d'une session donnée entre deux hôtes. Les informations liées aux adresses IP sont ajoutées avec la couche réseau, la couche de transport ne peut donc pas protéger ces données. L'exemple le plus connu pour une sécurisation effectuée à ce niveau est celle du trafic HTTP par TLS (Transport Layer Security ou sécurité de la couche de transport) (TLS correspond à la version 3 du standard SSL, TLS est notamment décrit dans la RFC 4346). À la différence des contrôles applicatifs qui nécessitent de modifier l'application, les contrôles effectués au niveau de la couche de transport (tels que TLS) sont moins intrusifs car ils n'ont pas besoin de connaître le fonctionnement ou les caractéristiques d'une application. TLS est un protocole testé et robuste qui possède plusieurs implémentations qui ont été ajoutées à différentes applications. Il s'agit donc d'une option intéressante comparée à l'application de contrôles au niveau applicatif.
  • La couche réseau. Les contrôles appliqués sur cette couche portent sur l'ensemble des applications. Toutes les communications effectuées sur le réseau entre deux hôtes ou deux réseaux peuvent être protégées à cette couche sans modifier les applications côté client ou côté serveur. Dans certains environnements, les contrôles de la couche réseau (par exemple Internet Protocol Security (IPsec)) représentent une meilleure solution que des contrôles aux niveaux supérieurs qui nécessiteraient de modifier les applications. Les contrôles effectués à ce niveau permettent également aux administrateurs réseaux de s'assurer du respect de certaines règles de sécurité. Un avantage intrinsèque aux contrôles effectués à ce niveau est qu'ils peuvent protéger les informations IP (telles que les adresses). Cependant, les contrôles de la couche réseau sont moins flexibles que ceux des couches supérieures. Les tunnels VPN SSL permettent de sécuriser les communications TCP et UDP (que ce soit entre un client et un serveur ou autre), comme tels, ils sont considérés comme des VPN de couche réseau.
  • La couche physique. Les contrôles effectués sur la couche physique concernent toutes les communications qui transitent sur un lien physique donné. Cela peut être un circuit dédié entre deux bâtiments ou une connexion entre un modem et un fournisseur d'accès. Les contrôles de la couche réseau sont souvent apportés par des composants matériels spécifiques. Cette couche étant plus basse que la couche réseau, les contrôles effectués sur la couche physique protègent les données ainsi que les informations IP. Par rapport aux contrôles évoqués précedemment, les contrôles effectués sur cette couche sont plutôt simples à implémenter. Ils permettent également supporter d'autres protocoles réseaux. Ces contrôles s'appliquent sur un lien physique donné, ils ne peuvent donc protéger des communications qui emprunteraient plusieurs liens (par extension, ils ne peuvent donc pas créer un VPN au niveau d'Internet). Une connexion Internet emprunte généralement plusieurs liens physiques, la protection d'une telle connexion au niveau physique nécessiterait donc de contrôler les différents liens, ce qui est rarement faisablee. Ces contrôles existent depuis de nombreuses années afin de rajouter un niveau de protection sur des liens physiques douteux.

Vu qu'ils permettent de protéger les données des applications sans qu'il soit nécessaire de les modifier, les contrôles de la couche réseau sont les plus utilisés pour sécuriser les communications entre différents réseaux partagés tels qu'Internet. Les contrôles de la couche réseau fournissent une solution qui couvre les données des différentes applications et les informations IP. Cependant, dans de nombreux cas, des contrôles à d'autres niveaux seront plus pertinents. Ainsi, si une seule application doit être protégée, des contrôles au niveau du réseau pourraient être excessifs. Les protocoles de contrôle de la couche de transport comme SSL/TLS sont communément utilisés pour sécuriser les communications d'applications basées sur HTTP (bien que ces protocoles permettent également de sécuriser des communications SMTP, POP, IMAP, FTP, etc.). Les principaux navigateurs web supportent tous TLS et il n'est donc pas nécessaire d'installer un logiciel client ou de configurer quoi que ce soit pour utiliser ce protolce. Pour chaque niveau, les contrôles offrent des avantages et des fonctionnalités qu'il est impossible de retrouver aux autres niveaux.

SSL/TLS est le contrôle de sécurité le plus utilisé au niveau de la couche de transport. Selon l'implémentation et la configuration de SSL/TLS, ce dernier peut fournir les protections suivantes :

  • Confidentialité. SSL/TLS permet de s'assurer que les données ne peuvent pas être lues par des tiers non autorisés. Pour cela, les données sont chiffrées grâce à un algorithme de chiffrement et grâce à une clé secrète, connue uniquement des deux interlocuteurs qui souhaitent échanger des données. Les données ne peuvent être déchiffrées que si l'on dispose de la clé secrète.
  • Intégrité. SSL/TLS permet de déterminer si les données ont été modifiées (intentionnellement ou non) pendant le transfert. L'intégrité des données est vérifiée grâce à une valeur « MAC » (pour code d'authentification des message) qui est une somme de vérification cryptographique des données. Si les données ont été modifiées, la MAC calculée initialement et la MAC calculée à la suite du transfert seront différentes.
  • Authentification entre pairs. Chaque point d'échange SSL/TLS peut confirmer l'identité d'un autre point d'échange SSL/TLS avec lequel il souhaiterait communiquer afin de s'assurer que les données sont bien envoyées à l'hôte voulu. Cette authentification SSL/TLS est généralement unilatérale : le client authentifie le serveur. Cela dit, l'authentification peut être effectuée symétriquement.
  • Protection contre le rejeu. Les mêmes données ne peuvent pas être transmises plusieurs fois et les données ne peuvent pas être transmises dans le désordre.

Étiquettes et contributeurs liés au document

 Contributeurs à cette page : SphinxKnight
 Dernière mise à jour par : SphinxKnight,