Provided by: manpages-fr_4.27.0-1_all bug

NOM

       keyrings – Gestion interne au noyau de clés et mémorisation

DESCRIPTION

       La  fonction  de  gestion de clés de Linux est principalement un moyen pour divers composants du noyau de
       mémoriser ou de mettre en cache des données  de  sécurité,  des  clés  d’authentification,  des  clés  de
       chiffrement et d’autres données dans le noyau.

       Les  interfaces  d’appel  système  sont  fournies  de façon à ce que les programmes en espace utilisateur
       puissent gérer ces objets, et aussi en utiliser la fonctionnalité pour leurs propres  besoins.  Consultez
       add_key(2), request_key(2) et keyctl(2).

       Une  bibliothèque  et  quelques  utilitaires  en espace utilisateur sont fournis pour autoriser l’accès à
       cette fonctionnalité. Consultez keyctl(1), keyctl(3) et keyutils(7) pour davantage d’informations.

   Clés
       Une clé possède les attributs suivants :

       Numéro de série (ID)
              IL s’agit d’un entier unique par lequel une clé est référencée dans des appels système. Le  numéro
              de  série  est  parfois  appelé  de  manière  synonyme l’identifiant de clé. En programmation, les
              numéros de série sont représentés en utilisant le type key_serial_t.

       Type   Le type de clé précise quelle sorte de données sera gérée par la clé, de quelle manière le contenu
              présenté par la clé sera analysé et comment la charge utile sera utilisée.

              Un certain nombre de types génériques sont disponibles en plus de types  spécialisés  définis  par
              des composants particuliers du noyau.

       Description (nom)
              La description de la clé est une chaîne affichable qui est utilisée comme terme de recherche de la
              clé (conjointement avec le type de la clé) ainsi que comme nom à afficher. Lors des recherches, la
              description peut correspondre partiellement ou totalement.

       Charge utile (données)
              La  charge  utile  est  le contenu réel de la clé. Elle est habituellement définie au moment de la
              création de la clé, mais il est possible qu’un appel  montant  (upcall)  du  noyau  dans  l’espace
              utilisateur finisse l’instanciation de la clé si celle-ci n’était pas connue du noyau quand elle a
              été demandée. Pour plus de détails, consultez request_key(2).

              Une  charge  utile  de  clé  peut  être  lue  et  mise  à jour si le type de clé le gère et si les
              permissions adéquates sont données à l’appelant.

       Droits d’accès
              De la même manière que pour les fichiers, chaque clé possède un ID utilisateur, un ID de groupe et
              une étiquette de sécurité. Chaque clé possède aussi un ensemble de permissions, mais il en  existe
              plus  que pour un fichier UNIX normal, et il existe une catégorie supplémentaire – possesseur — en
              plus des utilisateur, groupe et autres. Consultez Possession, ci-dessous).

              Il est à remarquer que les clés sont sujettes à un quota puisqu’elles nécessitent de la mémoire du
              noyau non « swappable ». L’ID de l’utilisateur propriétaire indique quel quota doit être débité.

       Heure d’expiration
              Chaque clé peut avoir une heure d’expiration définie. Quand ce moment  est  atteint,  la  clé  est
              marquée  comme  périmée  et  une demande d’accès à celle-ci échouera avec l’erreur EKEYEXPIRED. Si
              elle n’est pas supprimée, mise à jour ou remplacée, alors après un certain  temps,  la  clé  ayant
              expirée  est automatiquement supprimée (collectée par le ramasse-miettes) avec tous les liens vers
              elle, et toute tentative d'accès à cette clé échouera avec l’erreur ENOKEY.

       Comptage de références
              Chaque clé possède un comptage de références. Les clés sont  référencées  par  des  trousseaux  de
              clés,  par  les utilisateurs actuellement actifs, et par les identifiants d'un processus. Quand le
              comptage de références atteint zéro, la clé est programmée pour le ramasse-miettes.

   Types de clé
       Le noyau fournit plusieurs types basiques de clé :

       "keyring"
              Les trousseaux de clés sont des clés spéciales qui stockent un ensemble  de  liens  vers  d’autres
              clés  (incluant  d’autres  trousseaux  de clés), de manière analogue à un répertoire contenant des
              liens vers des fichiers. L’objectif principal d’un trousseau de clés est d’empêcher d’autres  clés
              d’être collectées par le ramasse-miettes parce qu’elles ne servent de références à rien.

              Les  trousseaux  de clés avec des descriptions (noms) commençant par un point (.) sont réservées à
              l’implémentation.

       "user" Il s’agit d’un type de clé générique. La clé est entièrement conservée dans la mémoire  du  noyau.
              La charge utile peut être lue et mise à jour par des applications de l’espace utilisateur.

              La  charge  utile  des  clés de ce type est un objet binaire (blob) de données arbitraires pouvant
              contenir 32 767 octets.

              La description peut être n’importe quelle chaîne autorisée, bien  qu’il  soit  préférable  qu’elle
              commence  par  un  préfixe  délimité  par un deux-points représentant le service auquel la clé est
              destinée (par exemple, « afs:mykey »).

       "logon" (depuis Linux 3.3)
              Ce type de clé est fondamentalement  identique  à  «  user  »,  mais  ne  permet  pas  la  lecture
              (c’est-à-dire  l’opération  KEYCTL_READ de keyctl(2)), signifiant que la charge utile n’est jamais
              visible  à  partir  de  l’espace  utilisateur.  Cela  est  adapté  au  stockage  de   paires   nom
              d’utilisateur/mot de passe qui ne doivent pas être lisibles à partir de l’espace utilisateur.

              La  description  de  la  clé  «  logon  »  doit  débuter  par  un préfixe non vide délimité par un
              deux-points dont le but est d’identifier le service auquel la clé appartient. Il est  à  remarquer
              que  cela  diffère  du type de clé « user » où l’incorporation du préfixe est recommandée mais pas
              obligée.

       "big_key" (depuis Linux 3.13)
              Ce type de clé est semblable au type « user » de clé, mais il peut contenir une  charge  utile  de
              taille 1 MiB. Ce type de clé est utile pour, par exemple, contenir des caches de ticket Kerberos.

              Les données de la charge utile peuvent être stockées dans un système de fichiers tmpfs, plutôt que
              dans  la mémoire du noyau si la taille des données excède la surcharge due au stockage des données
              dans le système de fichiers. Stocker les données dans un système de  fichiers  nécessite  que  des
              structures  de  système  de  fichiers  soient  allouées dans le noyau. La taille de ces structures
              détermine le seuil au-dessus duquel la méthode tmpfs de stockage est utilisée. Depuis  Linux  4.8,
              les  données  de la charge utile sont chiffrées lorsqu’elles sont stockées en tmpfs, empêchant par
              conséquentqu’elles soient écrites dans l’espace d’échange sans être chiffrées.

       Il existe aussi d’autres types de clé spécialisés, mais ils ne sont pas évoqués ici, car ils ne sont  pas
       destinés à une utilisation normale en espace utilisateur.

       Les noms de type de clé qui commencent par un point (.) sont réservés à l’implémentation.

   Trousseaux de clés
       Comme  indiqué  précédemment,  les  trousseaux de clés sont un type spécial de clé qui contient des liens
       vers d’autres clés (pouvant inclure d’autres trousseaux de clés). Les clés peuvent être liées à plusieurs
       trousseaux de clés. Les trousseaux de clés peuvent être considérés comme analogues à des répertoires UNIX
       où chaque répertoire contient un ensemble de liens physiques vers des fichiers.

       Différentes opérations (appels système) ne peuvent être appliquées qu’aux trousseaux de clés :

       Ajout  Une clé peut être ajoutée dans un trousseau de clés par les appels système ayant  créé  les  clés.
              Cela  évite  que  la  nouvelle  clé  soit  détruite  immédiatement quand l'appel système libère la
              dernière référence à la clé.

       Liaison
              Un lien peut être ajouté à un trousseau de clés pointant vers une clé déjà connue, si cela ne crée
              pas de cycle d’auto-référencement.

       Déliaison
              Un lien peut être supprimé d’un trousseau de  clés.  Quand  le  dernier  lien  vers  une  clé  est
              supprimé, cette clé sera programmée pour être collectée par le ramasse-miettes.

       Effacement
              Tous les liens peuvent être supprimés d’un trousseau de clés.

       Recherche
              Un  trousseau  de  clés  peut  être  considéré  comme la racine d’un arbre ou d’un sous-arbre dans
              lesquels les trousseaux de clés forment les branches et le reste les feuilles. Cet arbre peut être
              parcouru pour rechercher une clé d’une description ou d’un type particulier.

       Consultez  keyctl_clear(3),  keyctl_link(3),  keyctl_search(3)   et   keyctl_unlink(3)   pour   davantage
       d’informations.

   Clés d’ancrage
       Pour  empêcher  une clé d’être collectée par le ramasse-miettes, elle doit être ancrée pour conserver son
       comptage de références en cours lorsqu’elle n’est pas utilisée activement par le noyau.

       Les trousseaux de clés sont utilisés pour ancrer d’autres clés. Chaque lien est une référence à une  clé.
       Il  est  à  remarquer  que  les trousseaux de clés sont eux-mêmes des clés et sont aussi sujets à la même
       nécessité d’ancrage pour empêcher qu’ils soient collectés par le ramasse-miettes.

       Le noyau propose un certain nombre de trousseaux de clés d’ancrage. Il est à remarquer  que  certains  de
       ces trousseaux de clés seront créés seulement lors de leur première accession.

       Trousseaux de clés de processus
              Les  identifiants  de  processus eux-mêmes référencent les trousseaux de clés avec des sémantiques
              spécifiques. Ces trousseaux de clés sont attachés aussi longtemps que l’ensemble des  identifiants
              existe, ce qui veut dire habituellement aussi longtemps que le processus existe.

              Il  existe  trois  trousseaux  de  clés  avec  des  règles  d’héritage et de partage différentes :
              session-keyring(7) (héritage  et  partage  par  tous  les  processus  enfant),  process-keyring(7)
              (partage  par  tous  les  threads  dans un processus) et thread-keyring(7) (spécifique à un thread
              particulier).

              Comme alternative à l’utilisation des identifiants réels de trousseau de clés dans  les  appels  à
              add_key(2),   keyctl(2)   et   request_key(2),   les   valeurs  spéciales  de  trousseau  de  clés
              KEY_SPEC_SESSION_KEYRING,  KEY_SPEC_PROCESS_KEYRING  et   KEY_SPEC_THREAD_KEYRING   peuvent   être
              utilisées comme références aux propres instances de l’appelant de ces trousseaux de clés.

       Trousseau de clés utilisateur
              Chaque  UID  connu  du  noyau  possède  un  enregistrement  qui contient deux trousseaux de clés :
              user-keyring(7) et user-session-keyring(7). Ceux-ci existent aussi longtemps que  l’enregistrement
              de l’UID existe dans le noyau.

              Comme  alternative  à l’utilisation des identifiants réels de trousseau de clés, dans les appels à
              add_key(2),  keyctl(2)  et  request_key(2),  les  valeurs   spéciales   de   trousseau   de   clés
              KEY_SPEC_USER_KEYRING et KEY_SPEC_USER_SESSION_KEYRING peuvent être utilisées comme références aux
              propres instances de l’appelant de ces trousseaux de clés.

              Un  lien  vers  le  trousseau  de  clés utilisateur est placé dans le nouveau trousseau de clés de
              session par pam_keyinit(8) quand une nouvelle session de connexion est initiée.

       Trousseaux de clés persistants
              Il existe un persistent-keyring(7) disponible pour chaque UID connu du système. Il peut  persister
              au-delà  de la durée de l’enregistrement de l'UID précédemment mentionné, mais possède un ensemble
              de délais d’expiration de telle façon qu’il soit automatiquement nettoyé après  un  temps  défini.
              Les  trousseaux  de  clés  persistants permettent, par exemple, aux scripts cron(8) d’utiliser les
              identifiants laissés dans le trousseau de clés persistant après la déconnexion de l’utilisateur.

              Il est à remarquer que le délai d’expiration du trousseau de clés persistant  est  réinitialisé  à
              chaque requête du trousseau de clés persistant.

       Trousseaux de clés spéciaux
              Il  existe  des trousseaux de clés spéciaux possédés par le noyau qui peuvent ancrer des clés pour
              des buts spéciaux. Un exemple de cela est le trousseau de clés système utilisé pour  contenir  les
              clés de chiffrement pour la vérification de signature des modèles.

              Ces  trousseaux  de clés spéciaux sont habituellement fermés à une altération directe par l’espace
              utilisateur.

       Un « trousseau de clés groupe », originellement prévu pour stocker des clés  associées  avec  chaque  GID
       connu  du  noyau,  n’est  pas  encore  implémenté  et  vraisemblablement ne le sera jamais. Néanmoins, la
       constante KEY_SPEC_GROUP_KEYRING a été définie pour ce type de trousseau de clés.

   Possession
       Le concept de possession est important pour comprendre le modèle de sécurité des trousseaux de  clés.  La
       possession par un thread d’une clé est déterminée par les règles suivantes :

       (1)  Toute  clé  ou  tout  trousseau qui n’accorde pas la permission de recherche à l’appelant est ignoré
            dans toutes les règles qui suivent.

       (2)  Un thread possède ses session-keyring(7), process-keyring(7) et thread-keyring(7)  directement,  car
            ces trousseaux de clés sont référencés par ses identifiants.

       (3)  Si un trousseau de clés est possédé, alors toute clé liée est aussi possédée

       (4)  Si  une  clé  reliée  à  un trousseau de clés est elle-même un trousseau de clés, alors la règle (3)
            s’applique de manière récursive.

       (5)  Si le noyau fait un appel montant de processus pour instancier une clé  (consultez  request_key(2)),
            alors  il possède aussi les trousseaux de clés du requérant comme dans la règle (1) comme s’il était
            le requérant.

       La possession n’est pas une propriété fondamentale de la clé, mais doit plutôt  être  calculée  à  chaque
       besoin de la clé.

       La possession est conçue pour permettre l’exécution de programmes set-user-ID à partir, par exemple, d’un
       interpréteur de commandes d’utilisateur pour accéder aux clés de l’utilisateur. Accorder la permission au
       possesseur de la clé tout en la refusant au propriétaire et au groupe de la clé permet d’empêcher l’accès
       à la clé sur la base de correspondance D’UID ou GID.

       Lorsqu’il  crée  un trousseau de clés de session, pam_keyinit(8) ajoute un lien à user-keyring(7), ce qui
       entraîne que le trousseau de clés d’utilisateur et tout ce qu’il contient sont possédés par défaut.

   Droits d’accès
       Chaque clé possède les attributs relatifs à la sécurité suivants :

       -  l’ID de l’utilisateur propriétaire ;

       -  l’ID du groupe autorisé à accéder à la clé ;

       -  une étiquette de sécurité ;

       -  un masque de permissions.

       Le masque de permissions  contient  quatre  ensembles  de  droits.  Les  trois  premiers  ensembles  sont
       mutuellement  exclusifs.  Un  et  seulement  un ensemble sera effectif pour une vérification particulière
       d’accès. Dans l’ordre décroissant de priorité, ces trois ensembles sont :

       user   Cet ensemble indique les droits accordés si l’ID utilisateur de clé correspond à l’ID  utilisateur
              de système de fichiers de l’appelant.

       group  Cet  ensemble indique les droits accordés si l’ID utilisateur ne correspond pas et que l’ID groupe
              de clé correspond au GID du  système  de  fichiers  de  l’appelant  ou  à  un  de  ses  ID  groupe
              supplémentaires.

       other  Cet  ensemble  indique  les  droits  accordés  si  ni l’ID utilisateur ni l’Id groupe de la clé ne
              correspondent.

       Le quatrième ensemble de droits est :

       possessor
              Cet ensemble indique les droits accordés s’il est établi que l’appelant possède la clé.

       L’ensemble complet des droits pour une clé est l’union de tout ce qui est applicable des  trois  premiers
       ensembles et du quatrième ensemble si la clé est possédée.

       L’ensemble des droits qui peuvent être accordés dans chacun des quatre masques est comme suit :

       view   Les  attributs  de  la  clé  peuvent être lus. Cela comprend le type, la description et les droits
              d’accès (à l’exclusion de l’étiquette de sécurité).

       read   Pour une clé, sa charge utile peut être lue, pour un trousseau de clés, la liste  des  numéros  de
              série (clés) auxquels le trousseau de clés est lié peut être lue.

       write  La charge utile de la clé peut être mise à jour et la clé peut être révoquée. Pour un trousseau de
              clés,  des  liens peuvent y être ajoutés ou retirés et le trousseau de clés peut être complètement
              effacé (tous les liens sont retirés).

       search Pour une clé (ou un trousseau de clés), la clé peut  être  trouvée  par  une  recherche.  Pour  un
              trousseau de clés, les clés ou trousseaux de clés liés peuvent être retrouvés.

       link   Des  liens peuvent être créés des trousseaux de clés vers la clé. Le lien initial vers une clé qui
              est établi quand la clé est créée n’a nul besoin de cette permission.

       setattr
              Les détails de possession et l’étiquette de sécurité de la clé peuvent  être  modifiés,  le  délai
              d’expiration de la clé peut être réglé et la clé peut être révoquée.

       En  plus des droits d’accès, tout module de sécurité de Linux (LSM) peut empêcher l’accès à une clé si sa
       politique l’indique. Une clé peut recevoir une étiquette de sécurité ou un autre  attribut  par  le  LSM.
       Cette étiquette est récupérable à l’aide de keyctl_get_security(3).

       Consultez  keyctl_chown(3),  keyctl_describe(3),  keyctl_get_security(3), keyctl_setperm(3) et selinux(8)
       pour davantage d’informations.

   Recherche de clés
       Une des caractéristiques principales de la fonctionnalité de gestion de clés de Linux est la  possibilité
       de  trouver  la clé qu’un processus conserve. L’appel système request_key(2) est le premier point d’accès
       pour les applications en espace utilisateur pour trouver la clé. En interne, le noyau a quelque chose  de
       similaire disponible pour une utilisation par les composants internes qui utilisent des clés.

       L’algorithme de recherche fonctionne comme suit :

       (1)  Les  trousseaux  de  clés  des processus sont recherchés dans l’ordre suivant : le thread-keyring(7)
            s’il existe, le process-keyring(7) s’il existe et ensuite soit le session-keyring(7) s’il existe  ou
            le user-session-keyring(7) s’il existe.

       (2)  Si  l’appelant était un processus invoqué par le mécanisme d’appel montant request_key(2), alors les
            trousseaux de clés de l’appelant originel de request_key(2) seront aussi recherchés.

       (3)  La recherche dans l’arbre des trousseaux est faite en largeur : chaque trousseau de clés est d’abord
            parcouru pour une correspondance puis les trousseaux  de  clés  référencés  par  ce  trousseau  sont
            parcourus.

       (4)  Si  une  clé  correspondante  valable  est  trouvée,  alors la recherche se termine et cette clé est
            renvoyée.

       (5)  Si une clé correspondante est trouvée à laquelle est attaché un état d’erreur, cet état d’erreur est
            noté et la recherche continue.

       (6)  Si aucune clé correspondante valable n’est trouvée, alors le  premier  état  d’erreur  est  renvoyé.
            Autrement, une erreur ENOKEY est renvoyée.

       Il  est  aussi  possible  de  rechercher  une  clé  particulière,  auquel cas seules les étapes (3) à (6)
       s’appliquent.

       Consultez request_key(2) et keyctl_search(3) pour davantage d’informations.

   Création à la demande de clé
       Si une clé ne peut être trouvée, et si un argument callout_info est  fourni,  request_key(2)  créera  une
       nouvelle  clé  et un appel montant dans l’espace utilisateur instanciera la clé. Cela permet de créer des
       clés selon les besoins.

       Classiquement, cela impliquera la création d’un nouveau processus par le noyau qui exécutera le programme
       request-key(8), qui lui-même exécutera alors le gestionnaire approprié basé sur sa configuration.

       Une clé d’autorisation spéciale est passée  au  gestionnaire  qui  lui  permet,  lui  et  seulement  lui,
       d’instancier  la  nouvelle  clé.  Cela  est  aussi utilisé pour permettre des recherches réalisées par le
       programme gestionnaire pour aussi rechercher les trousseaux de clés du requérant.

       Consultez   request_key(2),    keyctl_assume_authority(3),    keyctl_instantiate(3),    keyctl_negate(3),
       keyctl_reject(3), request-key(8) et request-key.conf(5) pour davantage d’informations.

   Utilisateurs
       La  fonctionnalité de gestion de clés de Linux a un certain nombre d’utilisateurs et d’usages, mais n’est
       pas limitée à ce qui existe déjà.

       Les utilisateurs du noyau de cette fonctionnalité comprennent :

       Systèmes de fichiers réseau – DNS
              Le noyau utilise le mécanisme d’appel montant fourni par les  clés  pour  un  appel  montant  dans
              l’espace utilisateur pour des recherches DNS et puis pour mettre en cache les résultats.

       AF_RXRPC et kAFS – Authentification
              Le  protocole  réseau  AF_RXRPC  et le système de fichiers AFS interne au noyau utilisent les clés
              pour enregistrer le  ticket  nécessaire  pour  un  trafic  sécurisé  ou  chiffré.  Celles-ci  sont
              recherchées  par  les  opérations  réseau lors d’opérations AF_RXRPC et de système de fichiers sur
              kAFS.

       NFS – Mappage d’ID utilisateur
              Le système de fichiers NFS utilise des clés pour stocker les mappages d’ID utilisateur étrangers à
              des ID utilisateur locaux.

       CIFS – Mot de passe
              Le système de fichiers CIFS utilise des clés pour stocker les mots de passe  pour  l'accès  à  des
              partages distants.

       Vérification de module
              Le processus de construction du noyau peut être conduit pour une signature chiffrée des modules.

       Les utilisateurs de l’espace utilisateur de cette fonctionnalité incluent :

       Stockage de clés Kerberos
              La  fonctionnalité  Kerberos  5  du  MIT  (libkrb5) peut utiliser des clés pour stocker les jetons
              d’authentification. Cela peut servir à les  supprimer  automatiquement  après  une  durée  définie
              lorsque  l'utilisateur  les a utilisés pour la dernière fois, mais pendant ce temps leur permettre
              de se maintenir jusqu'à ce que l'utilisateur se soit déconnecté de façon  à  ce  que  les  scripts
              cron(8) puissent les utiliser.

FICHIERS

       Le  noyau  fournit  divers  fichiers  /proc  qui  exposent  les  informations  concernant les clés ou qui
       définissent les limites d’utilisation des clés.

       /proc/keys (depuis Linux 2.6.10)
              Ce fichier expose une liste de clés pour laquelle le thread lecteur possède  la  permission  view,
              fournissant  diverses  informations  à propos de chaque clé. Il n'est pas nécessaire que le thread
              possède la clé pour que cette dernière soit visible dans ce fichier.

              Les seules clés incluses dans la liste sont celles qui accordent la permission view  au  processus
              lecteur  (indépendamment du fait qu’il les possède ou non). Les vérifications de sécurité LSM sont
              toujours réalisées et peuvent supprimer par filtrage d’autres clés  que  le  processus  n’est  pas
              autorisé à voir.

              Voici  un  exemple  de  données pouvant être vues dans ce fichier (avec un numérotage des colonnes
              pour une référence facile dans les explications) :

                (1)     (2)     (3)(4)    (5)     (6)   (7)   (8)        (9)
              009a2028 I--Q---   1 perm 3f010000  1000  1000 user     krb_ccache:primary: 12
              1806c4ba I--Q---   1 perm 3f010000  1000  1000 keyring  _pid: 2
              25d3a08f I--Q---   1 perm 1f3f0000  1000 65534 keyring  _uid_ses.1000: 1
              28576bd8 I--Q---   3 perm 3f010000  1000  1000 keyring  _krb: 1
              2c546d21 I--Q--- 190 perm 3f030000  1000  1000 keyring  _ses: 2
              30a4e0be I------   4   2d 1f030000  1000 65534 keyring  _persistent.1000: 1
              32100fab I--Q---   4 perm 1f3f0000  1000 65534 keyring  _uid.1000: 2
              32a387ea I--Q---   1 perm 3f010000  1000  1000 keyring  _pid: 2
              3ce56aea I--Q---   5 perm 3f030000  1000  1000 keyring  _ses: 1

              Les champs affichés dans chaque ligne du fichier sont les suivants :

              ID (1) L’Id (numéro de série) de la clé exprimé en hexadécimal.

              Indicateurs (2)
                     Un ensemble d’indicateurs décrivant l’état de la clé :

                     I      La clé a été instanciée.

                     R      La clé a été révoquée.

                     D      La clé est morte (c’est-à-dire que le type de clé n’est plus  enregistré).  Une  clé
                            peut être brièvement dans cet état lors de la collecte par le ramasse-miettes.

                     Q      La clé contribue au quota de l’utilisateur.

                     U      La  clé est en cours de construction à l’aide d’une fonction de rappel dans l’espace
                            utilisateur. Consultez request-key(2).

                     N      La clé est instanciée négativement.

                     i      La clé a été invalidée.

              Utilisation (3)
                     C’est  un  comptage  du  nombre  de  structures  d’identifiant   qui   épinglent   la   clé
                     (approximativement,  le  nombre  de  références  de  threads  et de fichiers ouverts qui se
                     réfèrent à cette clé).

              Durée (4)
                     Le délai avant que la clé n’expire, exprimé sous  forme  compréhensible  (semaines,  jours,
                     heures,  minutes et secondes). La chaîne perm signifie ici que la clé est permanente (aucun
                     délai). La chaîne expd signifie que la clé a déjà expirée, mais n’a pas été  collectée  par
                     le ramasse-miettes.

              Permissions (5)
                     Les  permissions  de  clé, exprimées sous forme de quatre octets hexadécimaux contenant, de
                     gauche à droite, le possesseur, l’utilisateur, le  groupe  et  les  autres  permissions.  À
                     l’intérieur de chaque octet, les bits de permission sont comme suit :

                          0x01   view
                          0x02   read
                          0x04   write
                          0x08   search
                          0x10   link
                          0x20   setattr

              UID (6)
                     L’ID utilisateur du possesseur de la clé.

              GID (7)
                     L’ID de groupe de la clé. La valeur -1 signifie ici que la clé n’a pas d’ID de groupe. Cela
                     peut se produire dans certaines circonstances pour des clés créées par le noyau.

              Type (8)
                     Le type de clé (utilisateur, trousseau de clés, etc.)

              Description (9)
                     La  description  de la clé (nom). Ce champ contient une information descriptive à propos de
                     la clé. Pour la plupart des types de clé, elle a la forme

                         nom[: extra-info]

                     Le sous-champ nom est la description de  la  clé  (nom).  Le  champ  facultatif  extra-info
                     fournit  quelques autres informations à propos de la clé. Les informations qui apparaissent
                     comme suit dépendent du type de clé :

                     "user" et "logon"
                            La taille en octets de la charge utile de la clé (exprimée en décimal).

                     "keyring"
                            Le nombre de clés liées au trousseau de clés ou la chaîne empty s’il n’existe aucune
                            clé liée au trousseau.

                     "big_key"
                            La taille de la charge utile en octets, suivie soit  par  la  chaîne  [file]  si  la
                            charge  utile  de  la clé excède le seuil signifiant que la charge utile est stockée
                            dans un système de fichiers tmpfs(5) (swappable),  ou  autrement  la  chaîne  [buff]
                            indiquant que la clé est suffisamment petite pour résider dans la mémoire du noyau.

                     Pour  le  type de clé « .request_key_auth » (clé d’autorisation, consultez request_key(2)),
                     le champ de description a la forme montrée dans l’exemple suivant :

                         key:c9a9b19 pid:28880 ci:10

                     Les trois sous-champs sont comme suit :

                     key    L’ID hexadécimal de la clé en cours d’instanciation dans le programme requérant.

                     pid    Le PID du programme requérant.

                     ci     La taille des annotations avec lesquelles la clé demandée  devrait  être  instanciée
                            (c’est-à-dire la taille de la charge utile associée avec la clé d’autorisation).

       /proc/key-users (depuis Linux 2.6.10)
              Ce  fichier  liste  diverses  informations pour chaque ID utilisateur qui possède au moins une clé
              dans le système. Voici un exemple des données visibles dans ce fichier :

                     0:    10 9/9 2/1000000 22/25000000
                    42:     9 9/9 8/200 106/20000
                  1000:    11 11/11 10/200 271/20000

              Les champs affichés dans chaque ligne sont les suivants :

              uid    L’ID utilisateur.

              usage  Il s’agit d’un comptage d’utilisation interne au noyau  pour  la  structure  utilisée  pour
                     enregistrer les utilisateurs de clé.

              nkeys/nikeys
                     Le  nombre  total  de  clé  possédées  par  l’utilisateur  et  le  nombre de clés ayant été
                     instanciées.

              qnkeys/maxkeys
                     Le  nombre  de  clés  possédées  par  l’utilisateur  et  le  nombre  maximal  de  clés  que
                     l’utilisateur peut posséder.

              qnbytes/maxbytes
                     Le nombre d’octets utilisés dans les charges utiles des clés possédées par l’utilisateur et
                     la limite haute du nombre d’octets dans les charges utiles des clés pour cet utilisateur.

       /proc/sys/kernel/keys/gc_delay (depuis Linux 2.6.32)
              La  valeur  dans  ce  fichier indique l’intervalle, en seconde, après lequel les clés révoquées ou
              expirées seront collectées par le ramasse-miettes. Cet intervalle a pour  but  de  disposer  d'une
              fenêtre  temporelle  pendant  laquelle  l’espace  utilisateur peut voir une erreur (respectivement
              EKEYREVOKED et EKEYEXPIRED) qui indique ce qui est arrivé à la clé.

              La valeur par défaut dans ce fichier est 300 (c’est-à-dire cinq minutes).

       /proc/sys/kernel/keys/persistent_keyring_expiry (depuis Linux 3.13)
              Ce fichier définit un intervalle, en secondes, après lequel le programmateur de durée du trousseau
              de clés persistant est réinitialisé chaque fois que le trousseau de clés est accédé (à  l’aide  de
              l’opération keyctl_get_persistent(3) ou keyctl(2) KEYCTL_GET_PERSISTENT).

              La valeur par défaut dans ce fichier est 259200 (c’est-à-dire trois jours).

       Les  fichiers  suivants  (pouvant être modifiés par les processus privilégiés) sont utilisés pour imposer
       des quotas sur le nombre de clés et le nombre d’octets de données pouvant être stockés dans  les  charges
       utiles des clés :

       /proc/sys/kernel/keys/maxbytes (depuis Linux 2.6.26)
              C’est  le  nombre maximal d’octets de données que les utilisateurs non privilégiés peuvent détenir
              dans les charges utiles des clés qu'ils possèdent.

              La valeur par défaut dans ce fichier est 20 000.

       /proc/sys/kernel/keys/maxkeys (depuis Linux 2.6.26)
              C’est le nombre maximal de clés qu’un utilisateur non privilégié peut posséder.

              La valeur par défaut dans ce fichier est 200.

       /proc/sys/kernel/keys/root_maxbytes (depuis Linux 2.6.26)
              C’est le nombre maximal d’octets de données que le superutilisateur (UID 0 dans l’espace  de  noms
              utilisateur racine) peut détenir dans les charges utiles des clés qu'il possède.

              La valeur par défaut dans ce fichier est 25 000 000 (20 000 avant Linux 3.17).

       /proc/sys/kernel/keys/root_maxkeys (depuis Linux 2.6.26)
              C’est  le  nombre maximal de clés que le superutilisateur (UID 0 dans l’espace de noms utilisateur
              racine) peut détenir.

              La valeur par défaut dans ce fichier est 1 000 000 (200 avant Linux 3.17).

       En ce qui concerne les trousseaux de clés, il est à remarquer que chaque lien dans un trousseau  consomme
       quatre octets de la charge utile du trousseau.

VOIR AUSSI

       keyctl(1), add_key(2), keyctl(2), request_key(2), keyctl(3), keyutils(7), persistent-keyring(7),
       process-keyring(7), session-keyring(7), thread-keyring(7), user-keyring(7), user-session-keyring(7),
       pam_keyinit(8), request-key(8)

       linux.git/Documentation/crypto/asymmetric-keys.txt

       linux.git/Documentation/security/keys/

TRADUCTION

       La traduction française de cette page de manuel a été créée par Christophe Blaess
       <https://www.blaess.fr/christophe/>, Stéphan Rafin <stephan.rafin@laposte.net>, Thierry Vignaud
       <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard
       <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau
       <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François
       <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard
       <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org>, David Prévot
       <david@tilapin.org> et Jean-Paul Guillonneau <guillonneau.jeanpaul@free.fr>

       Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License
       version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à
       debian-l10n-french@lists.debian.org.

Pages du manuel de Linux 6.9.1                    16 juin 2024                                       keyrings(7)