Article de reference

Interface de programmation d'applications de services de sécurité génériques

L' interface de programmation d'applications de service de sécurité générique ( GSSAPI , également GSS-API ) est une interface de programmation d'applications permettant aux pro...

L' interface de programmation d'applications de service de sécurité générique ( GSSAPI , également GSS-API ) est une interface de programmation d'applications permettant aux programmes d'accéder aux services de sécurité .

GSSAPI est une norme IETF qui vise à résoudre le problème de la multitude de services de sécurité similaires mais incompatibles utilisés bibliothèques installées avec leurs logiciels de sécurité. Ces bibliothèques offrent une interface compatible GSSAPI aux développeurs d'applications, qui peuvent ainsi concevoir leur application pour qu'elle utilise uniquement l'interface GSSAPI indépendante du fournisseur . Si l'implémentation de sécurité doit être remplacée, l'application n'a pas besoin d'être réécrite.

La caractéristique principale des applications GSSAPI est l'échange de messages opaques ( jetons ) qui masquent les détails d'implémentation à l'application de niveau supérieur . Les parties client et serveur de l'application sont conçues pour transmettre les jetons qui leur sont fournis par leurs implémentations GSSAPI respectives. Les jetons GSSAPI peuvent généralement transiter sur un réseau non sécurisé, car les mécanismes assurent une sécurité intrinsèque des messages. Après l'échange d'un certain nombre de jetons, les implémentations GSSAPI aux deux extrémités informent leur application locale qu'un contexte de sécurité est établi.

Une fois le contexte de sécurité établi, les messages sensibles de l'application peuvent être chiffrés par GSSAPI pour une communication sécurisée entre le client et le serveur. Les protections typiques garanties par le chiffrement GSSAPI incluent la confidentialité et l'intégrité [ GSSAPI peut également fournir des garanties locales concernant l'identité de l'utilisateur ou de l'hôte distant.

L'API GSSAPI décrit environ 45 appels de procédure. Parmi les plus importants, on peut citer :

GSS_Acquire_cred
Obtient la preuve d'identité de l'utilisateur, souvent une clé cryptographique secrète.
Nom d'importation GSS
Convertit un nom d'utilisateur ou un nom d'hôte en un format permettant d'identifier une entité de sécurité.
GSS_Init_sec_context
Génère un jeton client à envoyer au serveur, généralement un défi
GSS_Accept_sec_context
Traite un jeton provenant de GSS_Init_sec_context et peut générer un jeton de réponse à renvoyer.
GSS_Wrap
Convertit les données de l'application en un jeton de message sécurisé (généralement chiffré).
GSS_Déballer
Convertit un jeton de message sécurisé en données d'application

L'interface GSSAPI est normalisée pour le langage C (RFC 2744). Java implémente l'interface GSSAPI sous le nom de JGSS, l'interface de programmation d'applications Java Generic Security Services.

Voici quelques limitations de GSSAPI :

  1. normaliser uniquement l'authentification , et non l'autorisation ;
  2. en supposant une architecture client-serveur .

Anticipant de nouveaux mécanismes de sécurité, le GSSAPI inclut un pseudo-mécanisme de négociation , SPNEGO , capable de découvrir et d'utiliser de nouveaux mécanismes qui n'étaient pas présents lors de la création de l'application d'origine.

Disponibilité

Plusieurs langages implémentent l'API GSSAPI. Java fournit ces fonctionnalités dans son package de bibliothèque standardorg.ietf.jgss.* .

Lien avec Kerberos

L'implémentation dominante du mécanisme GSSAPI est Kerberos . Contrairement à GSSAPI, l'API Kerberos n'est pas normalisée et diverses implémentations existantes utilisent des API incompatibles. GSSAPI permet aux implémentations Kerberos d'être compatibles au niveau de l'API.

Technologies connexes