2038 : la prochaine bombe à retardement de l’informatique mondiale
Vous souvenez-vous de la fièvre de l’an 2000 ? Ces semaines de décembre 1999 où l’on stockait des bouteilles d’eau, où les médias annonçaient pannes généralisées, effondrements bancaires, avions cloués au sol ? Vingt-cinq ans plus tard, un problème similaire se profile à l’horizon — moins médiatisé, mais tout aussi réel. Il porte un nom discret : le bug de l’an 2038, ou Y2K38. Et il pourrait bien faire trébucher des millions de systèmes informatiques à travers le monde au petit matin du 19 janvier 2038.
Le bug de l’an 2000 : un avertissement vite oublié
Pour comprendre ce qui nous attend, il faut d’abord revenir sur la première grande crise informatique de l’ère numérique. Dans les années 1960 et 1970, les ingénieurs, soucieux d’économiser de la mémoire — une ressource rare et coûteuse à l’époque — utilisaient deux chiffres pour représenter l’année : « 99 » pour 1999, par exemple. Le passage à « 00 » risquait alors d’être interprété comme 1900, provoquant des erreurs en cascade.
Les scénarios catastrophistes allaient bon train : pannes de réseaux électriques, effondrement bancaire, avions cloués au sol, dysfonctionnements de centrales nucléaires. Au final, la catastrophe n’a pas eu lieu — non pas parce que le risque était imaginaire, mais parce que des milliards de dollars ont été investis pour corriger le problème avant qu’il ne survienne. Rien qu’aux États-Unis, ces modifications ont coûté environ 100 milliards de dollars au gouvernement et aux entreprises.
Cette expérience aurait dû servir de leçon durable. Elle l’a été, partiellement. Mais voilà qu’une nouvelle bombe à retardement, héritée des mêmes logiques d’économie de ressources, tique en silence dans les entrailles de nos systèmes.
L’heure Unix : comment les ordinateurs comptent le temps
Pour saisir le bug de 2038, il faut comprendre une notion fondamentale : la façon dont les ordinateurs « lisent » l’heure.
La plupart des systèmes modernes utilisent ce qu’on appelle le temps Unix, une méthode qui compte simplement le nombre de secondes écoulées depuis le 1er janvier 1970 à 00:00:00 UTC — date arbitrairement choisie comme point de départ à l’aube des systèmes Unix.
Par exemple, un timestamp Unix de 1 713 737 958 signifie que 1 713 737 958 secondes se sont écoulées depuis le 1er janvier 1970. Plutôt que de gérer séparément des années, des mois, des jours et des heures, les systèmes n’ont besoin de stocker qu’un seul nombre entier. Simple, élégant, efficace.
Mais voilà le problème : de nombreux systèmes stockent ce compteur de secondes comme un entier signé 32 bits. En termes informatiques, un entier signé 32 bits peut contenir des valeurs allant de -2 147 483 648 à 2 147 483 647. Cela nous donne environ 68 ans de valeurs positives à partir de 1970.
Le 19 janvier 2038 à 03:14:07 : le moment fatidique
Le point critique arrive le 19 janvier 2038, à précisément 03:14:07 UTC. À ce moment, le compteur de temps Unix atteindra 2 147 483 647 secondes. Quand la seconde suivante s’incrémente, le système tente de passer à 2 147 483 648 — mais ce chiffre dépasse ce qu’un entier signé 32 bits peut stocker.
Que se passe-t-il alors ? Le système subit un dépassement de capacité (integer overflow), ce qui fait basculer la valeur vers un nombre négatif. Les systèmes interpréteront alors cette valeur comme correspondant au 13 décembre 1901 à 20h45:52 UTC.
En clair : d’un seul coup, la machine « croit » avoir remonté le temps de 136 ans en arrière. Pour les logiciels qui dépendent de l’heure pour fonctionner — et ils sont légion —, les conséquences peuvent être désastreuses : calculs erronés, transactions financières mal datées, certificats de sécurité expirés, planifications déréglées…
Une petite anecdote illustre parfaitement la réalité concrète de ce bug : lorsque le clip Gangnam Style de PSY a dépassé les 2 147 483 647 vues sur YouTube, le compteur de vues — codé en 32 bits — a dû être mis à jour vers le 64 bits pour pouvoir continuer à comptabiliser les visionnages. Le bug de 2038, c’est exactement le même principe, appliqué à l’ensemble du système d’horodatage.
Quels systèmes sont réellement menacés ?
Tous les ordinateurs ne sont pas égaux face à ce risque. La plupart des ordinateurs modernes fonctionnant sous Windows 10/11, macOS ou Linux récent en 64 bits ne sont pas affectés : ils utilisent des timestamps 64 bits qui ne déborderont pas avant 292 milliards d’années.
En revanche, les systèmes les plus vulnérables sont ceux qui, par nature ou par ancienneté, ne peuvent pas être facilement mis à jour :
- Les systèmes embarqués utilisés dans l’aéronautique, l’automobile, les télécommunications et les infrastructures industrielles, où des composants avec des timestamps sur 32 bits pourraient encore être en fonctionnement en 2038.
- Les bases de données qui stockent des horodatages en 32 bits, comme certaines versions de MySQL utilisant la fonction
UNIX_TIMESTAMP(). - Les formats de fichiers tels que ZIP ou les systèmes de fichiers FAT32 (présents sur la plupart des clés USB et cartes mémoire).
- Les équipements de transport : systèmes ABS, contrôle de stabilité électronique, guidage inertiel d’aéronefs, récepteurs GPS.
- Les anciens appareils Android, certaines caméras IP, routeurs et objets connectés qui ne recevront plus de mises à jour.
Un précédent concret : en mai 2006, le logiciel AOLserver a rencontré un dysfonctionnement lié à une requête de base de données censée ne jamais expirer. Une date arbitraire avait été fixée à un milliard de secondes dans le futur — ce qui correspondait précisément au 13 mai 2006, provoquant des plantages en cascade. Le bug de 2038 ne nous a donc pas attendus pour faire ses premières victimes.
Des solutions existent… mais la migration reste un défi
La solution technique est connue et relativement simple à énoncer : passer du stockage sur 32 bits au stockage sur 64 bits, ce qui repousse la date butoir au dimanche 4 décembre de l’an 292 277 026 596. Autrement dit, pour toute intention pratique, le problème est définitivement résolu.
Dans les faits, de nombreux systèmes ont déjà effectué cette transition :
- Un correctif pour Linux a été intégré dès le noyau 5.6, permettant aux systèmes 32 bits de fonctionner correctement après 2038.
- Apple a cessé dès 2019 de prendre en charge les applications 32 bits sous macOS.
- Java utilise des timestamps 64 bits depuis ses débuts. Python 3, JavaScript et la plupart des langages modernes gèrent nativement des plages de dates bien au-delà de 2038.
Mais il n’existe pas de correctif simple et universel, car les horodatages sur 32 bits sont également présents dans plusieurs formats de fichiers actuels — comme le format ZIP. Un changement de représentation rendrait inopérants les programmes exploitant l’actuelle équivalence entre la représentation interne et ces formats.
Pour les systèmes embarqués, la difficulté est d’un autre ordre : ils sont conçus pour durer toute la vie de la machine qui les héberge. Il peut s’avérer difficile, voire impossible, de mettre à jour leur logiciel, ce qui pourrait nécessiter leur remplacement pur et simple.
2038 vs 2000 : a-t-on retenu la leçon ?
Le problème de l’an 2000 affectait virtuellement tous les systèmes informatiques, car les représentations d’année à deux chiffres étaient quasi universelles. Le problème de 2038 est plus sélectif, affectant principalement les systèmes utilisant le temps Unix 32 bits. De plus, on dispose de plus de temps pour se préparer et d’une compréhension plus claire des systèmes vulnérables.
Il nous reste aujourd’hui un peu moins de douze ans pour achever la transition. C’est à la fois long et très court, selon les secteurs concernés. Un hôpital qui exploite encore des équipements médicaux à systèmes embarqués d’ancienne génération, une centrale industrielle dont les automates de contrôle n’ont pas été mis à jour, une entreprise dont les bases de données métier reposent encore sur des timestamps 32 bits : pour eux, le compte à rebours est déjà lancé.
La bonne nouvelle, c’est que la communauté informatique mondiale est consciente du problème — bien davantage qu’elle ne l’était pour l’an 2000 à équivalence de délai. La mauvaise, c’est que la vigilance a tendance à s’émousser sur les sujets qui ne font pas la une des journaux.
Alors, pensez-vous que nos infrastructures seront prêtes à temps ? Avez-vous déjà entendu parler du bug de 2038 avant cet article ? Partagez votre avis en commentaire !
Sources :
- Bug de l’an 2038 — Wikipédia (fr)
- Du bug de l’an 2000 à celui de 2038 — CnC Expertise
- Problème de l’an 2038 : Bug Unix Timestamp expliqué — unixtimestamp.app
- Sommes-nous prêts pour le bug informatique de 2038 ? — LowTechJournal
- Le nouveau bug de l’an 2000 est prévu en 2038 — Presse-Citron
- Linux est prêt pour la fin des temps — Developpez.com
- Year 2038 problem — Wikipedia (en)