Résumé
- RFC 5260 produit un verdict sur une valeur extraite, une position d’en-tête, un fuseau, une partie de date et un comparateur ; ce verdict ne certifie pas le moment historique.
- Pour rendre la décision vérifiable, il faut conserver la chaîne brute, l’occurrence choisie, l’analyse, la normalisation, la version du script, l’instant d’exécution et le résultat réel de l’action.
À minuit, l’astreinte a changé sans que le message change
Une équipe d’exploitation envoyait les messages arrivés « hors horaires » vers un téléphone d’astreinte. Le script n’indiquait ni :zone ni :originalzone ; il utilisait donc le fuseau local du serveur. Après un déplacement de charge vers un autre site, les mêmes octets et la même règle ont classé une heure autrement.
Le filtre n’avait pas menti. La question qu’il posait avait changé.
RFC 5260 mérite d’être lu comme une spécification de calcul, non comme une autorité temporelle. Il décrit précisément la sélection et la comparaison. L’institution doit encore prouver d’où vient la valeur, pourquoi cette occurrence est pertinente et si l’action annoncée a réellement abouti.
La position est une coordonnée syntaxique
Sans extension index, le test date prend la première occurrence du nom d’en-tête. :index 2 choisit la deuxième ; :last inverse le comptage. Si plusieurs noms sont fournis aux tests concernés, leurs champs sont comptés selon l’ordre de la liste écrite dans le script.
Ce comptage ne classe pas la confiance. L’exemple du RFC qui vise le deuxième Received: ne fonctionne que si cette position reste stable. Ajouter une passerelle antivirus, retirer un relais ou réordonner une liste suffit à déplacer le sens de la coordonnée.
Un journal qui note seulement « index 2 = vrai » ne permet donc pas de rejouer la décision. Il faut l’inventaire ordonné et le champ exact qui occupait cette place.
Faux recouvre quatre réalités
Le test renvoie faux lorsque le champ manque, lorsque sa date est mal formée, lorsque le calendrier la rend impossible ou lorsque la valeur valide ne correspond simplement pas à la clé. Ces cas n’ont pas la même portée opérationnelle. L’absence d’un Received: attendu peut signaler un changement de chemin ; une date impossible peut être hostile ; une valeur hors plage peut être normale.
Même :count reste modeste : un signifie que le champ choisi existe et contient une date valide, zéro le contraire. Il ne compte pas toute la chaîne et ne prouve pas l’origine de la valeur.
Le fuseau appartient à la politique
:originalzone conserve le décalage présent dans l’en-tête. :zone projette l’instant dans un décalage fixe choisi. Les deux ensemble constituent une erreur. Sans l’un ni l’autre, le fuseau local s’impose.
Préserver un décalage ne prouve pas un lieu. Un +0200 ne donne ni juridiction, ni historique d’heure d’été, ni garde de l’horloge. Inversement, convertir vers un fuseau ne modifie pas l’instant supposé ; cela modifie la représentation civile soumise au comparateur.
L’heure courante est cohérente dans un seul passage
currentdate capture l’heure du script. Tous les tests currentdate d’une même exécution doivent viser le même instant. C’est une garantie importante contre un changement de jour au milieu de la règle.
Mais ce point n’est pas l’heure d’envoi, de réception initiale, de lecture ou de décision humaine. Le RFC avertit aussi que ce comportement temporel rend l’analyse statique plus difficile. Le code sans l’instant d’exécution ne suffit pas à expliquer le chemin pris.
La fiabilité reste attachée au producteur du champ
Le RFC rappelle que Date: est normalement fourni par l’expéditeur et peut être modifié. Le Received: supérieur est normalement ajouté par le système local et devient plus difficile à falsifier depuis l’extérieur.
Cette différence justifie une pondération, pas une fusion. Le champ local peut documenter une réception locale ; il ne certifie pas les relais antérieurs, la création du contenu ou l’action effectuée après filtrage. La validité grammaticale d’une date ne remplace jamais sa provenance.
Le reçu à conserver
Une automatisation conséquente devrait garder le hachage du message et des en-têtes bruts, l’ordre complet, le nom et l’occurrence choisis, :index, :last, l’ordre des noms, la valeur extraite, les résultats de syntaxe et de calendrier, le décalage original, le fuseau appliqué, la valeur normalisée, le comparateur, le type de correspondance, les clés, la révision du script, l’hôte et l’instant currentdate, la cause précise d’un résultat faux, l’action choisie et son observation finale.
Ce reçu ne certifie pas le passé. Il empêche qu’un calcul local devienne, par oubli, la seule histoire disponible.
Sources
- https://www.rfc-editor.org/rfc/rfc5260.html
- https://www.rfc-editor.org/rfc/rfc5260.txt
- https://www.rfc-editor.org/info/rfc5260/
- https://datatracker.ietf.org/doc/rfc5260/
- https://datatracker.ietf.org/doc/rfc5260/history/
- https://datatracker.ietf.org/doc/rfc5260/references/
- https://datatracker.ietf.org/doc/rfc5260/referencedby/
- https://www.rfc-editor.org/errata/rfc5260
- https://www.rfc-editor.org/rfc/rfc5228.html
- https://www.rfc-editor.org/rfc/rfc5231.html
- https://www.rfc-editor.org/rfc/rfc3339.html
- https://www.rfc-editor.org/rfc/rfc5322.html
- https://www.rfc-editor.org/rfc/rfc2822.html
- https://www.rfc-editor.org/rfc/rfc5234.html
- https://www.rfc-editor.org/rfc/rfc5229.html
- https://www.rfc-editor.org/rfc/rfc5293.html
- https://www.rfc-editor.org/rfc/rfc6134.html
- https://heng.lu/on-reality-layers-symbolic-power-and-why-clarity-feels-so-hostile/
- https://heng.lu/running-code-primary-the-patch-needed-to-preserve-the-internet-original-design/
- https://heng.lu/on-the-agency-problem-at-the-core-of-internet-governance/
Briefing des membres
Contexte approfondi du profil
Connectez-vous avec le bon niveau d'adhésion pour débloquer le briefing complet et les notes de source.
Réservé à Strategic Circle
Strategic Circle
Ouvert à tous les lecteurs. Débloquez les briefings de profil après adhésion et connexion.
Rejoindre Strategic CircleRéservé aux membres de Leadership Alliance
Leadership Alliance
Réservé aux propriétaires et dirigeants qualifiés d'actifs IP ; connectez-vous pour débloquer les briefings Alliance.
Rejoindre Leadership Alliance
