Pourquoi c'est Important
La distinction entre authentification et autorisation est le concept le plus important en securite des API. La majorite des vulnerabilites API critiques proviennent de la confusion entre ces deux concepts ou de la defaillance de l'un tandis que l'autre fonctionne correctement.
Considerons l'analogie d'un immeuble : l'authentification est le gardien de securite qui verifie votre badge d'identite a l'entree. L'autorisation est le systeme de carte d'acces qui determine a quels etages et quelles salles vous pouvez acceder. Un immeuble qui verifie les identites a la porte mais donne a tout le monde acces a chaque salle a une authentification sans autorisation appropriee. C'est exactement ce qui se passe dans la plupart des vulnerabilites BOLA/IDOR.
Dans le OWASP API Security Top 10, trois des cinq premieres categories (API1, API3, API5) sont fondamentalement des defaillances d'autorisation, tandis que API2 couvre les defaillances d'authentification. Comprendre cette distinction est la cle pour trouver les bugs API les plus courants et les plus impactants.
L'Authentification en Pratique
Comment Fonctionne l'Authentification
L'authentification verifie l'identite a travers un ou plusieurs facteurs :
- Quelque chose que vous savez : mots de passe, codes PIN, questions de securite
- Quelque chose que vous possedez : jetons, cartes a puce, appareils mobiles (utilises dans l'authentification a deux facteurs)
- Quelque chose que vous etes : empreintes digitales, reconnaissance faciale, biometrie
Dans les API, l'authentification produit generalement un jeton (JWT, cookie de session ou cle API) que le client envoie avec les requetes suivantes. Le serveur valide ce jeton a chaque requete pour confirmer l'identite de l'utilisateur.
Defaillances Courantes d'Authentification
- Jetons qui n'expirent jamais, permettant un acces permanent a partir d'un jeton vole
- Flux de reinitialisation de mot de passe avec des jetons previsibles ou reutilisables
- Deconnexion qui efface le jeton uniquement cote client sans l'invalider cote serveur
- Absence de limitation de debit sur les points de terminaison de connexion ou OTP, permettant les attaques par force brute
- Generation faible de jetons permettant la prediction ou le rejeu
L'Autorisation en Pratique
Comment Fonctionne l'Autorisation
Apres que l'authentification confirme l'identite, l'autorisation determine les permissions. Les modeles d'autorisation incluent :
- Controle d'acces base sur les roles (RBAC) : permissions attribuees aux roles (admin, utilisateur, editeur) ; les utilisateurs heritent des permissions du role
- Controle d'acces base sur les attributs (ABAC) : permissions basees sur les attributs utilisateur, les attributs de ressource et les conditions environnementales
- Autorisation au niveau objet : verification que l'utilisateur authentifie possede ou a acces a l'objet specifique demande
Defaillances Courantes d'Autorisation
- Verifications manquantes au niveau objet (BOLA/IDOR) : l'API verifie la connexion mais pas la propriete de la ressource
- Verifications manquantes au niveau fonction : des utilisateurs standards qui appellent des points de terminaison d'administration
- Affectation en masse : l'API accepte des modifications de role ou de permissions depuis l'entree utilisateur
- Escalade de privileges : des utilisateurs elevant leurs propres permissions par manipulation de l'API
Test de l'Authentification et de l'Autorisation
Lors du test des API, les professionnels de la securite evaluent les deux couches independamment :
Tests d'authentification : Les jetons peuvent-ils etre reutilises apres la deconnexion ? Expirent-ils ? Les jetons de reinitialisation de mot de passe peuvent-ils etre predits ? Y a-t-il une limitation de debit sur la connexion ? Les anciennes sessions sont-elles invalidees apres un changement de mot de passe ?
Tests d'autorisation : L'Utilisateur A peut-il acceder aux donnees de l'Utilisateur B en changeant un ID ? Un utilisateur standard peut-il appeler des points de terminaison d'administration ? L'utilisateur peut-il ajouter des champs privilegies dans le corps des requetes ? L'API retourne-t-elle plus de donnees que ce que le role de l'utilisateur devrait voir ?
Les bugs les plus impactants se produisent a l'intersection : une API qui authentifie correctement les utilisateurs mais echoue a autoriser leur acces a des objets ou des fonctions specifiques.
Comment nous enseignons Authentification vs Autorisation
Dans notre programme de cybersécurité, vous n'apprendrez pas seulement Authentification vs Autorisation en théorie, vous pratiquerez avec de vrais outils dans des travaux pratiques, guidé par des professionnels du secteur qui utilisent ces concepts quotidiennement.
Couvert dans :
Module 1: Fondamentaux de la Cybersécurité
360+ heures de formation experte • CompTIA Security+ inclus