Rien n’exaspère plus les opérateurs qu’une passerelle OpenClaw verte mais des 401 intermittents. En 2026, la dérive d’horloge reste une cause silencieuse : un Mac en avance de 90 secondes sur UTC fabrique des JWT avec un iat « dans le futur ».
Lisez aussi doctor passerelle, 429 retry, profils JSON.
Symptômes se faisant passer pour de mauvaises clés API
Les horloges asymétriques enregistrent rarement « Échec NTP ». Au lieu de cela, vous voyez des 401 Unauthorized sporadiques, des 403 occasionnels provenant des WAF de périphérie comparant les horodatages des jetons, ou des échecs de négociation TLS après que votre équipe infra ait fait tourner les intermédiaires parce que les clients ont mis en cache des tickets incompatibles. La corrélation est compliquée : les échecs se regroupent après le passage à l'heure d'été, après que les invités suspendent un Mac mini partagé ou après qu'un hyperviseur migre en direct une VM.
Mesurer le biais avec des horloges sntp et monotones
Exécutez sntp -d pool.ntp.org à partir du même contexte utilisateur que le processus de passerelle (rappelez-vous que les LaunchAgents héritent d'un PATH réduit) et capturez le décalage. Traitez tout décalage absolu supérieur à 500 ms comme méritant d'être corrigé avant de déboguer la logique JWT ; au-dessus de 5 secondes est un incident. Associez les contrôles d'horloge murale à des minuteries monotones au niveau de l'application pour des boucles de reconnexion Websocket de longue durée afin de ne pas doubler les battements de cœur lorsque NTP recule l'horloge.
Matrice de marge de manœuvre JWT iat nbf exp
| Claim | Tolérance typique | Mode de défaillance | Atténuation |
|---|---|---|---|
iat | ±60 s souvent | jeton daté dans le futur rejeté | synchroniser NTP ; éviter les horloges manuelles à l’émission |
nbf | strict | rafales de renouvellement anticipé | tampon d’émission 2 s derrière l’horloge murale |
exp | strict | expiration prématurée | jetons à courte durée plus budget de décalage |
Tickets de session TLS après les mises à jour du certificat
Lorsque les opérateurs effectuent une rotation hebdomadaire des certificats feuilles, les tickets de session TLS peuvent référencer les anciennes clés jusqu'à ce que les clients les suppriment. Les passerelles qui réutilisent des processus de longue durée peuvent nécessiter un redémarrage progressif après la rotation, même si les vérifications de l'état HTTP restent vertes. Prévoyez deux cycles de redémarrage complets par fenêtre de rotation et observez la latence de la prise de contact diminuer par la suite.
Réveil et virtualisation se bloquent
Les ordinateurs portables qui dorment pendant 30 minutes peuvent se réveiller avec une heure obsolète jusqu'à ce que le Wi-Fi se réassocie. Pour les passerelles toujours actives, désactivez la veille du système sur l'hôte ou déplacez la charge de travail vers un Mac mini de bureau avec une alimentation stable. Sur certains fournisseurs de cloud, la virtualisation imbriquée met en pause les vCPU ; des pics de biais lorsque l'invité reprend son travail : détectez-le grâce aux métriques de biais exportées périodiquement vers Prometheus.
Matrice de décision pour la remédiation
- Décalage sous 200 ms : surveiller uniquement et documenter la baseline.
- 200 ms – 2 s : forcer une resynchronisation NTP immédiate et ajouter des alertes.
- Au-delà de 2 s : arrêter le trafic, corriger la source temporelle, rejouer des tests de fumée avant réouverture.
Extraits du runbook d'incident
- Capturer
date -u, les journaux de passerelle et les horodatages de la page d’état du fournisseur. - Décoder un JWT défaillant sur jwt.io avec des secrets masqués pour lire
iatmoins l’heure serveur. - Si le décalage est confirmé, redémarrer
timedsur macOS ou rebooter l’instance en dernier recours. - Relancer
openclaw doctorpour valider la chaîne TLS indépendamment du décalage. - Post-mortem : ajouter une jauge de décalage aux tableaux de bord avec alerte à 300 ms.
Métriques Prometheus et jauges d'asymétrie compatibles SLO
Exportez une jauge appelée gateway_clock_offset_seconds récupérée toutes les 30 secondes en exécutant sntp ou en analysant la sortie ntpdate -q à partir d'un side-car en lecture seule. Alerte lorsque la valeur absolue dépasse 0,3 pendant cinq éraflures consécutives : suffisamment longue pour éviter les transferts Wi-Fi, suffisamment courte pour détecter la dérive avant que les émetteurs JWT ne s'en aperçoivent. Associez la jauge à gateway_jwt_mint_failures_total étiqueté par raison afin que les ingénieurs de garde puissent corréler les pics sans deviner.
Évitez les étiquettes à cardinalité élevée sur ces compteurs ; s'en tenir à l'environnement et à la région. Si vous devez différencier les fournisseurs, limitez les valeurs des étiquettes chez les trois plus grands fournisseurs et répartissez le reste entre les autres pour garder la cardinalité sous contrôle sur une petite pile de métriques Mac mini.
Planifications LaunchAgent et macOS chronométrées
Sur macOS, timed possède une synchronisation périodique. Les LaunchAgents qui se déclenchent uniquement au démarrage peuvent ne jamais se redéclencher si la machine reste active pendant 45 jours pendant que le NTP en amont se dégrade silencieusement. Complétez le démon du système d'exploitation avec une tâche horaire légère qui enregistre le décalage (même un équivalent cron sans racine via StartCalendarInterval) afin de détecter l'accumulation lente de biais au lieu d'attendre les échecs JWT.
Lorsque les passerelles s'exécutent dans des sessions utilisateur lancées à partir de launchctl bootstrap gui/$UID , assurez-vous que le travail hérite de l'accessibilité du réseau après la reconnexion du VPN ; sinon, la synchronisation peut réussir alors que votre processus voit toujours des caches DNS obsolètes qui retardent les appels d'actualisation des jetons.
Émetteurs multirégionaux et pièges à l’heure d’été
Si votre déploiement OpenClaw crée des JWT en Amérique/Chicago mais les valide en UTC, les transitions à la lumière du jour doublent la difficulté. Standardisez l'émission en UTC uniquement pour les jetons de machine tout en continuant à afficher les journaux humains dans les zones locales. Documentez la règle dans votre architecture de sécurité afin que les nouveaux microservices ne réintroduisent pas de revendications en heure locale.
Pour les clusters globaux, évitez de partager des clés de signature symétriques entre les régions sans partager également des compteurs d'émission monotones : le décalage d'horloge et la réutilisation des compteurs produisent des collisions JTI en double qui ressemblent à des attaques par relecture.
Enfin, apprenez au personnel d'assistance la différence entre « jeton expiré » et « décalage d'horloge » : le premier fait tourner les clés normalement, le second nécessite une intervention de l'infrastructure. Un arbre de décision d'une page épinglé à côté des ordinateurs portables de garde permet de gagner des heures lorsque les deux symptômes apparaissent à 3 heures du matin.
Images dorées et temps du fournisseur de cloud
Les images dorées du fournisseur envoient parfois des horloges matérielles gelées jusqu'à l'exécution des premiers scripts de démarrage. Créez un protecteur de premier démarrage qui refuse de démarrer OpenClaw tant que le décalage n'est pas inférieur à 200 ms ; échouez fermé avec une ligne de journal bruyante au lieu de frapper silencieusement de mauvais jetons. Gardez cette protection dans vos données utilisateur Terraform parallèlement aux étapes de formatage du disque afin que chaque clone se comporte de manière identique.
FAQ
Un décalage de deux secondes peut-il interrompre l'authentification JWT ?
Oui, lorsque les émetteurs imposent des fenêtres d'information strictes ; ne présumez jamais de minutes de répit.
Le mode veille-sommeil affecte-t-il les horloges macOS ?
Oui : le matériel mobile et les profils pmset mal configurés exagèrent la dérive.
Dois-je désactiver les tickets de session TLS ?
Uniquement en dernier recours ; préférez les redémarrages coordonnés après les rotations clés.
Pourquoi répéter sur un Mac mini ?
Parce que la chronométrage macOS et les chemins de réveil de LaunchAgent diffèrent sensiblement de la mise en scène Linux uniquement.
La discipline d'horloge est un problème d'infrastructure mieux validé sur la même famille de systèmes d'exploitation que vous expédiez. La location d'un Apple Silicon Mac mini chez MacHTML pour environ 16,9 $ par jour vous permet de refléter le comportement chronométré de la production, le VNC via les paramètres de veille et de capturer des mesures asymétriques sous une véritable gigue Wi-Fi, sans acheter un autre nœud métallique pour un exercice de deux semaines.
La location Elastic aide également les équipes chargées du trafic saisonnier : lancez un hôte de débogage d'horloge à l'approche du changement d'heure d'été, puis supprimez-le une fois les tableaux de bord aplatis.