Le 19 janvier 2038 à 3h14min7s (temps universel), une poignée de bits va faire basculer des millions d’appareils dans le passé. Pas dans un futur lointain, mais concrètement le 13 décembre 1901. Ce nombre maximum sera atteint le 19 janvier 2038 à 3 h 14 min 7 s (temps universel), et la seconde suivante représente −2 147 483 648 en complément à deux, soit plus de 2 milliards de secondes avant 1970, le 13 décembre 1901 à 20 h 45 min 52 s pour être précis. Ce phénomène, connu sous le nom de bug de l’an 2038 ou « Epochalypse », guette encore aujourd’hui des routeurs, des compteurs industriels et une quantité d’objets connectés qui n’ont jamais quitté leur architecture 32 bits.
À retenir
- Une seconde change tout : découvrez pourquoi janvier 2038 est une date fatidique inscrite dans le code depuis 1970
- Plus de 136 ans en arrière en un instant : les conséquences du débordement d’un simple bit signé 32 bits
- Des équipements qu’on installe encore aujourd’hui pourraient s’effondrer bien avant 2038, révélant une fragilité cachée
Pourquoi une simple addition fait tout planter
Le mécanisme repose sur la manière dont les ordinateurs comptent le temps. Depuis les débuts d’Unix, les systèmes stockent l’heure sous forme d’un nombre de secondes écoulées depuis une date de référence, le 1er janvier 1970. Le problème de l’année 2038 survient quand un logiciel stocke un horodatage Unix comme un entier signé 32 bits, dont la valeur maximale correspond au 19 janvier 2038 à 03:14:07 UTC. Passé ce point, le compteur ne peut plus avancer normalement.
Après cette seconde, à 2147483648, la valeur déborde et peut basculer vers un nombre négatif, ce qui provoque un retour des dates à 1901 ou une panne pure et simple. Concrètement, le bit le plus à gauche, celui qui indique si le nombre est positif ou négatif, change de valeur et le compteur repart de zéro dans le mauvais sens. Ce débordement transforme brutalement la valeur positive maximale en valeur négative minimale, créant un saut temporel de plus de 136 ans en arrière. Un ordinateur qui croit soudain être en 1901 ne sait plus calculer une durée, vérifier un certificat de sécurité ou déclencher une tâche planifiée. Le parallèle avec le bug de l’an 2000 est évident, mais l’ampleur pourrait être différente : contrairement au Y2K, qui touchait surtout des bases de données et applications mal conçues, le problème de 2038 est inscrit dans les types de données fondamentaux d’innombrables systèmes.
Routeurs, voitures, hôpitaux : qui reste exposé
Les ordinateurs de bureau et les smartphones récents n’ont plus grand-chose à craindre, leurs processeurs 64 bits repoussant l’échéance à un horizon quasi inimaginable. Le problème se niche ailleurs, dans les objets qu’on oublie parce qu’ils fonctionnent en silence depuis des années. Les systèmes embarqués, souvent intégrés dans des appareils comme les automobiles (freinage antiblocage, contrôle électronique de la stabilité) et les dispositifs de communication (routeurs, points d’accès sans fil), sont conçus pour durer toute la vie de l’appareil, si bien qu’il est possible que certains soient encore en service en 2038.
La liste des candidats potentiels est longue et concrète. Malgré une échéance encore lointaine, des millions de systèmes restent vulnérables : systèmes embarqués (VxWorks, calculateurs automobiles, appareils médicaux), bases de données historiques (colonnes TIMESTAMP de MySQL 5.7 à 8.0.27, MariaDB antérieur à 10.6), serveurs NTP (60 % des serveurs publics tournant encore sur des systèmes 32 bits), Raspberry Pi (noyau 32 bits par défaut), objets connectés et systèmes de fichiers comme ext2 ou ext3. Autant dire que le problème ne se limite pas à de vieux mainframes poussiéreux : il touche des équipements qu’on installe encore aujourd’hui.
Le secteur automobile illustre bien l’enjeu de la longévité. Des voitures vendues aujourd’hui et utilisant des représentations du temps en 32 bits pourraient rester en circulation en 2038, ce qui affecterait potentiellement des systèmes dépendant d’une heure précise. Pareil pour l’industrie : les appareils embarqués sont conçus pour de longues durées de vie, souvent peu mis à jour ou difficiles d’accès, et font fréquemment tourner des systèmes 32 bits pour la gestion du temps. Certains n’ont même aucune possibilité de mise à jour à distance.
Le grand chantier de migration, entre progrès réels et rustines temporaires
La bonne nouvelle, c’est que le monde Linux et les grands éditeurs n’ont pas attendu la dernière minute. Techniquement, le noyau Linux est préparé depuis plusieurs années au problème de l’an 2038, les versions modernes utilisant une implémentation du temps en 64 bits appelée « time64 », qui supprime la limite initiale de 2038. Du côté des bases de données, les choses bougent aussi : depuis MySQL 8.0.28, les fonctions UNIX_TIMESTAMP(), FROM_UNIXTIME() et CONVERT_TZ() prennent en charge des valeurs 64 bits sur les plateformes compatibles, même si le type de colonne TIMESTAMP reste limité à 2038.
Mais la réalité du terrain reste contrastée. La pratique est très différente : de nombreux systèmes reposent encore sur des composants vulnérables, dont des noyaux 32 bits vieux de plus de dix ans, et plus de 600 versions de ces noyaux ne sont même plus du tout maintenues. Même les solutions de contournement ont leurs limites : certains ajustements de systèmes de fichiers ne font que déplacer le problème plus loin dans le temps. Le principal correctif consiste à migrer vers un temps en 64 bits, qui offre environ 292 milliards d’années de marge, mais certaines mesures provisoires, comme sur les systèmes de fichiers ext4 ou XFS, ne font que repousser de nouveaux problèmes de dépassement aux années 2446 ou 2486.
Un détail mérite d’être connu avant de se rassurer trop vite : le bug pourrait frapper certains équipements bien avant l’échéance officielle. Des tests menés sur des machines anciennes ont montré que des erreurs liées à des calculs de dates lointaines, comme des certificats numériques valables dix ans ou des systèmes de planification, peuvent provoquer des plantages dès 2037, voire avant, sans attendre la fameuse seconde fatidique de janvier 2038. Pour les entreprises qui gèrent encore du matériel embarqué ou des bases de données héritées, l’inventaire des systèmes 32 bits n’est donc plus un exercice théorique à remettre à plus tard.
Sources : cnc-expertise.com | lowtechjournal.fr