Table des Matières
3+
Expériences Prises en Charge
2-7
Jours de Validité du Jeton
4
Composants Principaux
1. Introduction
Les méthodes d'authentification basées sur des jetons sont de plus en plus répandues dans les systèmes de calcul distribué pour la recherche en physique des hautes énergies. Le Worldwide LHC Computing Grid (WLCG) a mis à niveau tous ses services pour prendre en charge les jetons WLCG, reflétant cette tendance de l'industrie. À l'Institut de Physique des Hautes Énergies (IHEP) en Chine, les jetons Kerberos ont été établis comme le mécanisme d'authentification principal au sein des clusters de calcul locaux et sont désormais étendus aux environnements de calcul distribué.
2. Contexte et Motivation
L'IHEP développe une plateforme de calcul distribué pour intégrer plusieurs sites de recherche chinois. Cependant, plusieurs expériences de longue date à l'IHEP, en particulier l'expérience BES, sont étroitement couplées avec les environnements de clusters locaux, incluant les systèmes de base de données, les services de stockage et les ressources de calcul. Pour relever ce défi, l'IHEP a mis en œuvre une approche d'« Extension de Cluster » qui étend de manière transparente les capacités du cluster local aux environnements de calcul distribué, permettant aux travaux BES de migrer vers des sites distants avec une perturbation minimale.
3. Défis Techniques
Le principal défi dans l'implémentation des jetons Kerberos est la gestion de la durée de vie des jetons dans des environnements distribués. Les jetons Kerberos à l'IHEP ont généralement une période de validité de 2 jours avec une limite de renouvellement de 7 jours. Le renouvellement des jetons doit être garanti à trois points critiques :
- Phase de soumission des travaux
- Période de mise en file d'attente des travaux
- Phase d'exécution des travaux
4. Architecture du Système
L'écosystème de jetons Kerberos à l'IHEP comprend quatre composants interconnectés qui travaillent ensemble pour fournir une authentification transparente sur les ressources de calcul distribuées.
4.1 Producteur de Jetons
Le producteur de jetons génère des jetons Kerberos lorsque les utilisateurs se connectent aux nœuds de soumission et publie ces jetons dans le dépôt de jetons. Ce composant gère la création initiale des jetons avec des paramètres de validité et de renouvellement appropriés.
4.2 Dépôt de Jetons
Ce système de stockage centralisé maintient tous les fichiers de jetons actuels et inclut un service de rafraîchissement qui renouvelle périodiquement la durée de vie des jetons pour empêcher leur expiration pendant les travaux de calcul de longue durée.
4.3 Transfert de Jetons
Le mécanisme de transfert déplace de manière sécurisée les fichiers de jetons du dépôt vers les nœuds de travail à travers les sites distribués, garantissant que les jetons sont disponibles là où ils sont nécessaires pour l'exécution des travaux.
4.4 Moteur Client de Jetons
Ce composant initialise l'environnement de jetons sur les nœuds de travail et gère le renouvellement de la durée de vie des jetons pendant l'exécution des travaux, fournissant une capacité d'authentification continue.
5. Détails d'Implémentation
5.1 Fondement Mathématique
L'authentification Kerberos repose sur la cryptographie à clé symétrique et la validation basée sur les horodatages. La validité du jeton peut être représentée par :
$V(t) = \begin{cases} 1 & \text{si } t_{courant} \leq t_{création} + t_{valide} \\ 0 & \text{sinon} \end{cases}$
Où $t_{valide}$ représente la période de validité (typiquement 2 jours à l'IHEP) et le renouvellement est autorisé jusqu'à $t_{création} + t_{renouvellement}$ (typiquement 7 jours).
5.2 Implémentation du Code
Le service de renouvellement de jetons implémente la logique suivante :
class TokenRenewalService:
def renew_token_if_needed(self, token, current_time):
"""Renouvelle le jeton s'il approche de l'expiration"""
if token.is_expiring_within(threshold=3600): # Seuil de 1 heure
if current_time <= token.created_time + token.renewal_period:
new_token = self.kinit_renew(token.principal)
self.repository.update(token.principal, new_token)
return new_token
return token
def kinit_renew(self, principal):
"""Exécute la commande de renouvellement Kerberos"""
import subprocess
result = subprocess.run(['kinit', '-R', principal],
capture_output=True, text=True)
if result.returncode == 0:
return self.extract_current_token(principal)
else:
raise TokenRenewalError(f"Échec du renouvellement du jeton : {result.stderr}")
6. Résultats Expérimentaux
Le système de jetons Kerberos a été déployé avec succès sur l'infrastructure de calcul distribué de l'IHEP. Trois expériences majeures utilisent actuellement ce cadre d'authentification :
- LHAASO (Large High Altitude Air Shower Observatory)
- BES (Beijing Spectrometer Experiment)
- HERD (High Energy cosmic-Radiation Detection)
Ces expériences utilisent les jetons Kerberos pour accéder à distance aux données stockées dans les systèmes de fichiers EOS et Lustre à travers les sites distribués. L'implémentation a démontré une authentification fiable avec un minimum d'échecs de travaux dus à l'expiration des jetons.
7. Analyse et Discussion
L'implémentation des jetons Kerberos dans l'environnement de calcul distribué de l'IHEP représente une avancée significative dans les mécanismes d'authentification pour la recherche en physique des hautes énergies. Cette approche relève des défis critiques en matière de sécurité intersites tout en maintenant la compatibilité avec l'infrastructure existante. Comparée à l'authentification traditionnelle basée sur les certificats utilisée dans de nombreux environnements de grille de calcul (comme documenté dans les rapports techniques du WLCG), les méthodes basées sur les jetons offrent une meilleure facilité d'utilisation et réduisent la charge de gestion.
La contribution technique du travail de l'IHEP réside dans la boîte à outils complète qui gère l'ensemble du cycle de vie des jetons dans des environnements distribués. Cette architecture présente des similitudes avec la gestion des jetons OAuth 2.0 dans les services web mais est spécifiquement optimisée pour les charges de travail de calcul scientifique. La capacité du système à renouveler automatiquement les jetons adresse une limitation fondamentale de Kerberos — sa dépendance à une connectivité réseau continue aux Centres de Distribution de Clés (KDC).
Selon l'article original de CycleGAN par Zhu et al. (2017), une adaptation de domaine réussie nécessite une représentation robuste des caractéristiques à travers les environnements. De manière similaire, le système de jetons de l'IHEP permet une représentation sécurisée de l'identité à travers des sites de calcul hétérogènes. Le fondement mathématique de Kerberos, basé sur des variations du protocole Needham-Schroeder, fournit une sécurité cryptographique éprouvée tandis que l'implémentation ajoute de l'ingénierie pratique des systèmes distribués.
Le déploiement sur trois expériences majeures démontre l'évolutivité et la fiabilité du système. Cette réalisation est particulièrement notable étant donné l'intensité computationnelle des charges de travail en physique des hautes énergies, qui impliquent souvent le traitement de pétaoctets de données sur des milliers de nœuds de calcul. Le succès à l'IHEP suggère que des approches similaires basées sur les jetons pourraient bénéficier à d'autres communautés de calcul scientifique confrontées à des défis d'authentification distribuée.
8. Applications Futures
Le cadre de jetons Kerberos à l'IHEP présente plusieurs orientations prometteuses pour le développement futur :
- Fédération avec les Grilles Internationales : Étendre l'interopérabilité des jetons avec le WLCG et d'autres grilles de recherche internationales.
- Intégration Cloud : Adapter le système de jetons pour les environnements cloud hybrides et les fournisseurs de cloud commerciaux.
- Amélioration par Blockchain : Explorer la gestion des jetons basée sur la blockchain pour une meilleure auditabilité et décentralisation.
- Charges de Travail d'Apprentissage Automatique : Étendre le support pour les cadres d'apprentissage automatique distribué nécessitant une authentification sécurisée.
- Cryptographie Résistante aux Ordinateurs Quantiques : Se préparer aux algorithmes cryptographiques post-quantiques dans la sécurité des jetons.
9. Références
- Rapport de Conception Technique WLCG, Worldwide LHC Computing Grid, 2021
- Neuman, B. C., & Ts'o, T. (1994). Kerberos: An Authentication Service for Computer Networks. IEEE Communications
- Documentation du Système de Stockage EOS, CERN, 2022
- Documentation XRootD, 2023
- Collaboration LHAASO. (2020). The Large High Altitude Air Shower Observatory
- Collaboration BES III. (2022). Beijing Spectrometer Experiment Technical Report
- Collaboration HERD. (2021). High Energy cosmic-Radiation Detection Mission Overview
- Documentation du Système de Fichiers Lustre, 2023
- Documentation AFS, IBM, 2022
- Documentation XCache, 2023
- Zhu, J. Y., Park, T., Isola, P., & Efros, A. A. (2017). Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks. IEEE ICCV