Résumé

  • Dans Ph, une donnée stockée, un champ annoncé, un champ interrogeable et un champ renvoyé n’étaient pas quatre façons de dire la même chose.
  • Les mots-clés du descripteur distribuaient le pouvoir entre le sujet de la fiche, le réseau local, les opérateurs délégués et l’administrateur complet.
  • Une absence dans la réponse prouve seulement ce qu’une session a pu obtenir selon un chemin de règles donné.

Un détail minuscule résume toute l’architecture : une personne pouvait placer une étoile au début de son numéro de téléphone personnel. Le champ n’était ni effacé ni chiffré. Son propriétaire et les opérateurs privilégiés continuaient à le voir. Pour les autres usagers, il disparaissait.

La RFC 2378, publiée en septembre 1998, formalise le protocole du CCSO Nameserver, plus connu sous le nom de Ph. Le service ressemble à un annuaire institutionnel : des fiches, des champs nommés et une syntaxe de requête très courte. Mais son intérêt historique tient moins au carnet d’adresses qu’au descripteur associé à chaque champ.

Ce descripteur indiquait la longueur maximale et la fonction du champ, puis combinait des propriétés. Public ouvrait la lecture. Lookup autorisait l’emploi du champ comme critère. Indexed rendait cette recherche exploitable et la requête devait comporter au moins un champ indexé. Default décidait ce qui revenait sans clause explicite ; Always imposait un retour. Change donnait au propriétaire un droit de modification. Unique empêchait une collision avec une autre fiche. NoMeta refusait les jokers. Encrypt imposait un traitement de transmission particulier.

Ces propriétés ne constituaient pas une échelle unique allant de secret à public. Elles répondaient à des questions différentes. Un champ pouvait être lisible mais inutilisable pour trouver une personne. Il pouvait servir à la recherche sans apparaître automatiquement dans la réponse. Il pouvait être modifiable par le sujet sans que le même sujet puisse changer sa définition.

Une étoile déplaçait la frontière

Le mot-clé Turn permettait au propriétaire de masquer un champ en préfixant son contenu par *. L’exemple de la RFC qualifie home_phone de champ consultable, public, modifiable et « tournable ». Après activation, seuls le propriétaire et les Heros — le vocabulaire de Ph pour les opérateurs privilégiés — voyaient encore la valeur.

L’étoile n’était donc pas une décoration à nettoyer lors d’une migration. Elle transportait une décision de visibilité. Si un export l’enlève avant d’évaluer la règle, l’export ne corrige pas une donnée : il annule le choix du sujet.

ForcePub effectuait le mouvement inverse. Il rendait le champ visible et interrogeable même lorsque le mécanisme général de suppression de la fiche aurait dû le cacher. La règle propre au champ pouvait ainsi l’emporter sur l’état global de l’enregistrement.

Il en découle une leçon simple. Une donnée absente d’une réponse peut toujours exister, rester administrable et être visible depuis une autre session. La réponse n’est pas une copie de la base ; c’est le résultat d’une résolution de politiques.

Hors du domaine local, le schéma rétrécissait

LocalPub ne masquait pas seulement la valeur. À l’intérieur du domaine ou de l’espace d’adresses considéré comme local, le champ était accessible à tous. À l’extérieur, il devenait entièrement invisible : la commande fields n’en révélait pas le descripteur, et le client ne pouvait ni l’utiliser dans une sélection ni le demander dans la liste de retour.

Deux observateurs recevaient donc deux vocabulaires différents avant même de rechercher un nom. L’un savait que le champ existait ; l’autre ne pouvait pas formuler la question.

La session disposait aussi d’une option external qui rendait invisibles les champs locaux. En revanche, la RFC ne créait pas de définition universelle et cryptographiquement prouvée du mot « local ». Le serveur appliquait une classification d’exploitation. L’effet était réel, mais sa justification devait être établie par d’autres traces : adresse de connexion, identité authentifiée, politique de site, configuration en vigueur.

Cette nuance empêche de transformer une topologie en droit. Être proche sur le réseau, appartenir à une organisation et disposer d’une autorisation sont trois faits distincts. Un déploiement pouvait les relier ; le protocole ne prouvait pas que cette liaison était légitime.

Le réseau n’était qu’un chemin de contrôle parmi d’autres

Un champ Sacred ne pouvait pas être changé par une invocation réseau. Il restait modifiable depuis un terminal, un fichier ou un tube local au serveur. La propriété ne signifiait donc pas « immuable », mais « non modifiable par cette surface ».

De même, le rôle Hero n’était pas nécessairement absolu. Un Hero complet pouvait tout voir et tout modifier ; une délégation pouvait être limitée à un seul champ d’une seule autre fiche par la liste de contrôle d’accès. Dire qu’une opération provenait d’un « administrateur » restait insuffisant sans connaître la portée exacte du privilège.

La partie sécurité renforce cette prudence. Ph proposait plusieurs méthodes d’authentification, des plus fragiles aux mécanismes Kerberos et GSS-API. Sans authentification mutuelle, le client ne pouvait pas prouver l’identité du serveur. Il ne pouvait pas davantage démontrer que ce serveur faisait autorité pour les informations renvoyées. Sans protection de transport ajoutée, le trafic pouvait être observé ou modifié.

« Tout » signifiait tout ce qui était visible

La clause return all n’exportait pas la base entière. Elle renvoyait tous les champs visibles pour la session. La commande de description des champs suivait la même logique. L’indexation, l’identité connectée, la classification locale, le contenu de suppression et la portée ACL transformaient d’abord l’univers accessible ; la requête ne travaillait qu’ensuite dans cet univers.

Pour interpréter une réponse, il faut donc conserver la chaîne : fiche stockée, descripteurs, marqueurs de suppression, décision local/externe, méthode d’authentification, portée Hero, sélection demandée, liste de retour, endpoint, protection du transport et instant d’observation.

La RFC 2378 n’était pas un modèle parfait. Elle documentait encore des méthodes faibles et ne négociait pas elle-même le chiffrement du transport. Sa valeur est plus profonde : elle montrait qu’un champ n’avait pas un seul état. Le réel pouvait subsister derrière une vue légitime mais incomplète.