Access Control Lists : définition, fonctionnement et utilisation
Les Access Control Lists (ACL) ou listes de contrôle d’accès permettent de réglementer l’accès des processus et des utilisateurs à certains objets de l’ordinateur, tels que les fichiers ou les registres. Avec elles, seuls les utilisateurs autorisés peuvent donc accéder à certaines ressources.
Qu’est-ce qu’une Access Control List ?
Les Access Control Lists constituent une forme de contrôle d’accès et fonctionnent exactement comme le Mandatory Access Control ou le Role Based Access Control. Fondamentalement, les ACL constituent des cadres réglementaires. Ils sont par exemple utilisés par des systèmes d’exploitation ou des programmes d’application, qui s’en servent pour gérer les accès à certaines parties de leur programme ou à certaines ressources. L’utilisation d’ACL s’apparente donc à une mesure de gestion des droits sur les fichiers ou d’autres ressources d’un ordinateur.
Ces Access Control Lists peuvent être représentées comme une sorte de table qui indique, pour chaque ressource, les utilisateurs ayant accès à celle-ci ainsi que le type d’accès dont ils bénéficient. Vous trouverez ci-dessous les droits d’accès les plus courants :
- le droit de lire un fichier (« read »)
- le droit d’écrire un fichier (« write »)
- le droit d’exécuter un fichier (« execute »)
Au sein d’une ACL, ces éléments sont également appelés « entrées de contrôle d’accès » (« Access Control Entries » ou « ACE » en anglais).
Le principe de fonctionnement des Access Control Lists est très simple : dès qu’un utilisateur donné souhaite accéder à une ressource en particulier, l’ACL correspondante vérifie si cet accès est bien autorisé (pour le dire autrement, elle vérifie s’il existe une ACE pour l’utilisateur). Si c’est le cas, elle lui autorise cet accès ; à l’inverse, elle peut le refuser.
Différents types d’ACL et d’utilisations
Il existe différents types d’ACL. Les possibilités d’utilisation des listes de contrôle d’accès sont donc elles aussi très vastes. Pour l’essentiel, il existe surtout deux grands types d’ACL : les ACL réseau et de système de fichiers.
ACL réseau
Les ACL réseau sont des listes de contrôle d’accès qui se présentent sous forme de tables. Vous pouvez les utiliser comme une sorte de pare-feu pour votre trafic de données entrant, sur des routeurs par exemple. Les ACL réseau déterminent les paquets qui peuvent ou non pénétrer dans le réseau. Ainsi, ces ACL permettent donc de contrôler l’accès au réseau.
Dans le domaine des ACL réseau, il est essentiel de distinguer les listes de contrôle d’accès normales des listes de contrôle d’accès étendues : traditionnellement, les ACL prennent uniquement en compte l’adresse IP source, sans faire de distinction entre les différents protocoles réseau tels que TCP, UDP ou HTTP. Ces listes permettent d’autoriser ou de refuser l’accès à l’ensemble du réseau. En revanche, les ACL étendues tiennent aussi compte de l’adresse IP de destination. Elles filtrent les paquets de manière nettement plus différenciée, en se fondant par exemple sur le protocole réseau ou sur les ports source et cible d’un paquet.
ACL de système de fichiers
Les ACL de système de fichiers, quant à elles, contrôlent l’accès aux fichiers et aux ressources au sein d’un système d’exploitation. Ces listes peuvent notamment y être utilisées pour réguler et gérer l’accès de certains utilisateurs à des fichiers en particulier.
Structure des Access Control Lists
Chaque liste de contrôle d’accès est principalement constituée de plusieurs entrées de contrôle d’accès (« Access Control Entries » ou « ACE » en anglais). Ces entrées correspondent à l’ensemble des règles de l’Access Control List et se composent elles aussi de différents éléments, dont la nature exacte dépend avant tout du type d’ACL utilisé. Si toutes les ACE comportent un identifiant et des informations sur les droits d’accès, des différences considérables peuvent parfois les opposer. Ainsi, en plus des adresses IP, les ACL réseau contiennent donc des indications sur le protocole ou les numéros de port, là où les ACL de système de fichiers enregistrent encore des informations relatives aux groupes d’utilisateurs.
Implémentation d’ACL
L’implémentation des listes de contrôle d’accès diffère également en fonction de votre choix entre une ACL réseau ou une ACL système de fichiers. La seconde se configure facilement et directement à l’aide de commandes de terminal, tandis que l’ACL réseau s’implémente dans des composants réseau tels que les routeurs.
L’implémentation concrète d’une ACL dépend du type d’ACL choisi (réseau ou système de fichiers), mais aussi de votre système d’exploitation et du cas d’application pratique auquel vous la destinez.
Avantages
Les ACL offrent plusieurs avantages. Les ACL de système de fichiers sont particulièrement intéressantes, car elles permettent aux utilisateurs de configurer leur ordinateur de manière à autoriser l’accès à certaines ressources à certains utilisateurs uniquement. Dans ce contexte, les listes de contrôle d’accès peuvent notamment venir compléter la gestion des droits intégrée dans Linux en détaillant davantage la protection des accès, ce qui permet ainsi d’améliorer la sécurité du système.
Les ACL réseau ne sont pas en reste, les listes de contrôle d’accès offrant une alternative relativement simple à d’autres implémentations de pare-feu. Elles vous permettent aussi de contrôler le trafic entre les réseaux, et donc d’améliorer la sécurité de votre réseau, mais aussi ses performances.