Node.js 26.8.0 : chiffrement SIV, stabilisation de TracingChannel et gestion native SQLite
La version 26.8.0 du runtime JavaScript Node.js apporte des nouveautés majeures pour la sécurité, l'observabilité et le stockage. Entre le chiffrement authentifié résistant au réemploi de nonce, la stabilisation du suivi asynchrone et l'amélioration du module SQLite natif, cette mise à jour enrichit directement la boîte à outils des développeurs backend.
Fil « Publication de Node.js 26.8.0 avec le support des modes SIV et GCM-SIV »
Sécurité renforcée avec les modes de chiffrement SIV
La version 26.8.0 de Node.js introduit le support des modes de chiffrement SIV (Synthetic Initialization Vector, ou vecteur d'initialisation synthétique) et GCM-SIV (Galois/Counter Mode SIV) au sein des API Cipher et Decipher du module natif crypto. Ces algorithmes de chiffrement authentifié résolvent un problème classique en cryptographie : la vulnérabilité liée au réemploi involontaire d'un nonce (number used once, un nombre aléatoire à usage unique). Même en cas de réutilisation accidentelle du nonce, le mode SIV empêche la fuite des clés de chiffrement et prévient la falsification des données.
En parallèle, la liste des certificats de confiance racines intégrée au runtime a été mise à jour vers la version 3.126 de NSS (Network Security Services, la suite de sécurité de Mozilla).
Observabilité et gestion de ressources : TracingChannel et SQLite
Côté observabilité, le module diagnostics_channel (canal de diagnostic utilisé pour intercepter le comportement interne des bibliothèques et des requêtes) franchit une étape importante : la classe TracingChannel est désormais marquée comme stable. Les outils d'APM (Application Performance Monitoring, la surveillance de la performance des applications) peuvent désormais s'appuyer sur une interface pérenne pour tracer les transactions asynchrones à travers les différents composants d'une application Node.js.
Le module d'accès aux données SQLite natif continue lui aussi d'évoluer avec l'ajout de la méthode close() sur StatementSync (l'interface des requêtes SQL préparées synchrones), ainsi que le support de Symbol.dispose (disposable pattern d'ECMAScript pour la libération mémoire automatique des ressources en fin de portée).
import { DatabaseSync } from 'node:sqlite';
const db = new DatabaseSync(':memory:');
{
// Utilisation de Symbol.dispose avec le mot-clé 'using'
using stmt = db.prepare('SELECT 1');
// La requête préparée est automatiquement fermée en sortie de bloc
}
Améliorations de l'outillage et du runtime
L'expérience développeur et l'outillage standard bénéficient également de plusieurs ajouts ciblés :
- Gestion native des archives ZIP : Le module
zlibs'enrichit des classesZipEntry,ZipFileetZipBufferpour manipuler des fichiers ZIP directement sans dépendance externe. - Coloration syntaxique dans le REPL : La console interactive REPL (Read-Eval-Print Loop, l'environnement d'exécution en ligne de commande) intègre désormais une coloration syntaxique de base pour faciliter le test rapide de fragments de code.
- Analyse de types MIME : L'API
MIMEType.parsedu moduleutilpropose une variante non bloquante qui ne lève plus d'exception (non-throwing) lorsqu'une chaîne invalide lui est passée. - Réseau : Les performances de l'objet
net.BlockList(structure servant à filtrer ou bloquer des adresses IP) ont été optimisées.
Cette mise à jour 26.8.0 s'inscrit dans l'effort continu d'enrichissement de la bibliothèque standard de Node.js, réduisant la dépendance aux paquets tiers pour la gestion des archives, la cryptographie et la persistance légère.