Aller au contenu principal

1.5. Étendre Kerberos sans rompre l'interopérabilité

Vue d'ensemble

À mesure que la base déployée d'implémentations Kerberos s'élargit, l'extension de Kerberos prend plus d'importance. Cette section donne des lignes directrices pour permettre aux implémentations futures de conserver l'interopérabilité.

Mécanisme d'extension

Kerberos prévoit un mécanisme général d'extensibilité du protocole :

  • les messages de protocole contiennent des emplacements typés (typed holes)
  • les sous-messages contiennent une chaîne d'octets avec un entier définissant l'interprétation
  • les types entiers sont enregistrés centralement
  • il peut servir aux extensions du fournisseur et aux normalisations de l'IETF

Définition : dans le présent document, « extension » désigne la définition d'un nouveau type à insérer dans un emplacement typé existant, et non l'ajout de nouveaux champs aux types ASN.1 (sauf indication contraire explicite).

1.5.1. Compatibilité avec RFC 1510

Limites

Les formats de messages Kerberos existants ne peuvent pas aisément être étendus en ajoutant des champs aux types ASN.1 :

  • l'envoi de champs supplémentaires entraîne souvent l'abandon du message tout entier
  • aucune indication d'erreur n'est fournie

Exigences à l'égard des implémentations

Toute implémentation nouvelle ou modifiée qui reçoit une extension de message inconnue :

  • DEVRAIT : conserver l'encodage de l'extension
  • DEVRAIT : ignorer sa présence
  • NE DOIT PAS : refuser une demande uniquement parce qu'une extension est présente

Exception : données d'autorisation

Si un type d'élément de données d'autorisation inconnu est reçu par un serveur (autre que le service d'octroi de tickets) :

  • soit dans un AP-REQ
  • soit dans un ticket contenu dans un AP-REQ

alors l'authentification DOIT échouer.

Justification : les données d'autorisation restreignent l'utilisation du ticket. Si le service ne peut pas déterminer si une restriction s'applique, une faiblesse de sécurité peut en résulter.

Bonne pratique : les éléments d'autorisation facultatifs DEVRAIENT être placés dans un élément AD-IF-RELEVANT.

Comportement du service d'octroi de tickets

Le TGS (Ticket-Granting Service, service d'octroi de tickets) :

  • DOIT ignorer mais propager vers les tickets dérivés tout type de données d'autorisation inconnu
  • Exception : si les types de données sont embarqués dans l'élément MANDATORY-FOR-KDC, la demande sera rejetée

1.5.2. Envoi de messages extensibles

Principe directeur

Il faut veiller à ce que les anciennes implémentations puissent comprendre les messages qui leur sont envoyés, même si elles ne comprennent pas une extension utilisée.

Règle : tant que l'émetteur ne sait pas qu'une extension est prise en charge, l'extension ne peut pas modifier la sémantique du message central ni celle des extensions déjà définies.

Exemple de scénario

Une extension incluant des informations de clé nécessaires pour déchiffrer la partie chiffrée d'un KDC-REP :

  • ne peut être utilisée que lorsque le destinataire est connu pour prendre en charge l'extension
  • le client peut signaler son support via un élément padata dans la séquence AS-REQ
  • le KDC ne devrait utiliser l'extension que si l'élément padata est présent

Bonne pratique : si la politique exige l'extension, renvoyer une erreur indiquant que l'extension est requise plutôt que de l'utiliser lorsque le destinataire pourrait ne pas la prendre en charge. Cela facilite le diagnostic.

Référence

Pour les détails techniques complets, voir RFC 4120, section 1.5.