Connexion Abonnez-vous

Microsoft va apporter l’accélération matérielle à son chiffrement BitLocker, mais…

Disponible, mais pas vraiment

Microsoft va apporter l’accélération matérielle à son chiffrement BitLocker, mais…

Crédits : JJ Ying (Unsplash)

BitLocker, la technologie de chiffrement intégral du disque chez Microsoft, recevra en 2026 une évolution majeure : le support de l’accélération matérielle. Les gains attendus sont significatifs, mais ce support sera très restreint dans un premier temps. En outre, des questions restent en suspens sur l’implémentation.

Le 22 décembre 2025 à 12h19

BitLocker est une technologie de Microsoft permettant de chiffrer intégralement le disque. Elle existe depuis longtemps, mais a surtout pris son envol avec Windows 10. Elle est présente dans Windows 11 et est même censée être active par défaut sur les installations neuves du système, à condition qu’elles se fassent avec la version 24H2. Un test récent sur un ordinateur portable, depuis une image ISO de Windows 11 25H2 (récupérable sur le site de Microsoft), nous a cependant montré que cette activation n’était toujours pas systématique.

Le chiffrement utilisé aujourd’hui est entièrement logiciel. Le gros avantage de cette approche est qu’elle rend BitLocker compatible avec toutes les configurations. Elle a pourtant deux inconvénients : le coût en performances et le niveau de sécurité.

Pour remédier à ces problèmes, Microsoft a annoncé ce 19 décembre l’arrivée de l’accélération matérielle. Malheureusement, aucune configuration n’a ce qu’il faut actuellement, et il faudra peut-être attendre fin 2026 pour en profiter, sur un nombre très limité de configurations.

Approche logicielle : un coût croissant en performances

Dans son billet, Microsoft indique que le coût en performances de BitLocker aurait dû continuer à s’exprimer via un pourcentage à un seul chiffre. Ce n’est plus possible aujourd’hui, à cause du niveau élevé de performances offert par les SSD NVMe.

Le constat peut paraitre contre-intuitif, mais l’explication est simple : certains disques sont si rapides que le processus galope pour suivre l’explosion du nombre d’opérations entrée/sortie (I/O) et répercuter les opérations de chiffrement attenantes.

« À mesure que les disques NVMe continuent d’évoluer, leur capacité à délivrer des débits de transfert de données extrêmement rapides a créé de nouvelles attentes en matière de réactivité système et de performance des applications. Bien que cela représente un avantage majeur pour les utilisateurs, cela signifie aussi que tout traitement supplémentaire — comme le chiffrement et le déchiffrement en temps réel par BitLocker — peut devenir un goulot d’étranglement s’il n’est pas correctement optimisé », explique Microsoft.

Le problème n’est pas nouveau : Tom’s Hardware en parlait par exemple en octobre 2023. Nos confrères avaient mesuré l’impact de BitLocker via plusieurs tests, qui avaient montré une chute de performances sur SSD pouvant atteindre 45 %. Dans sa communication, Microsoft ne donne pas de chiffres, mais évoque des baisses sensibles de performances dans des cas courants comme les chargements de gros fichiers vidéo, de grandes bases de code ou même dans certains jeux, où une latence peut se faire sentir. Et plus les SSD progressent, plus le problème est manifeste.

Décharger le CPU

L’arrivée de l’accélération matérielle pour BitLocker a été annoncée initialement durant la conférence Ignite, qui s’est tenue du 18 au 21 novembre. Microsoft est même déjà prête pour ce changement, puisque les bases en ont été posées dans la mise à jour de septembre pour Windows 11.

Comme toujours avec l’accélération matérielle, l’objectif est de décharger le processeur central (CPU) de certaines opérations, pour en finir avec les goulots d’étranglement. Dans le nouveau fonctionnement, tout sera ainsi traité par une nouvelle partie dédiée dans des processeurs à venir, de la même manière que le NPU (Neural Process Unit) prend en charge les opérations liées à l’IA dans certaines puces.

L’accélération matérielle se servira de l’algorithme XTS-AES-256 pour ses opérations, qui comprendront le chiffrement intégral, l’activation manuelle, l’activation pilotée par des politiques d’entreprise ainsi que celle basée sur des scripts. Microsoft ne donne pas de détails sur son protocole de test, mais dit avoir observé des performances équivalentes entre un disque NVMe avec chiffrement matériel et un autre sans chiffrement « sur les charges de travail courantes ». Des améliorations ont également été constatées sur les « écritures et lectures séquentielles et aléatoires ». L’entreprise dit aussi avoir constaté une baisse de 70 % des cycles CPU requis pour les opérations de chiffrement en moyenne.

Cette hausse des performances permettrait aussi une meilleure autonomie des ordinateurs portables concernés, puisque les opérations consomment moins d’énergie.

Le chiffrement matériel est en outre présenté comme bénéfique pour la sécurité, car les clés utilisées pour le chiffrement de masse sont soustraites du périmètre logiciel pour être encapsulées matériellement, « ce qui aide à accroître la sécurité en réduisant leur exposition aux vulnérabilités CPU et mémoire ». Ce fonctionnement vient alors compléter celui de la puce TPM, qui s’occupe des clés intermédiaires de chiffrement.

Problèmes à l’horizon

La publication de Microsoft soulève un certain nombre de questions et de problèmes. Plusieurs cas ne seront par exemple pas pris en charge : si un algorithme ou une taille de clé non pris en charge a été spécifié manuellement, si la politique d’entreprise impose un algorithme incompatible, ou encore si la politique FIPS 140 est active dans l’organisation.

Microsoft indique que des solutions vont être apportées pour aider les entreprises à transiter vers le chiffrement matériel pour BitLocker. Au printemps, Windows 11 va ainsi être mis à jour pour procéder automatiquement à une augmentation de la taille de la clé quand c’est possible, mais le système ne pourra changer l’algorithme lui-même. En clair, il passera automatiquement de AES-XTS-128 à AES-XTS-256 quand le contexte s’y prêtera.

Rappelons également que BitLocker a bénéficié un temps d’un chiffrement matériel avec les disques auto-chiffrés eDrive. Le support avait été supprimé après la découverte de plusieurs vulnérabilités, qui avaient notamment affecté Dell. Un chiffrement logiciel avait l’avantage pour Microsoft de permettre la maitrise de toute la chaine. Le retour de l’accélération matérielle réintroduit une dépendance sur les implémentations matérielles, qui peuvent comporter des vulnérabilités (BitLocker lui-même n’est pas une protection absolue). On ne sait rien du processus qui conduira à d’éventuelles certifications.

Surtout, la question du support matériel est intrigante. Pour l’instant, seuls les processeurs Core Ultra Series 3 d’Intel (Panther Lake) sont présentés comme compatibles. Et encore, Microsoft ne parle que d’un « support initial ». Or, ces puces sont attendues pour le second semestre 2026, sans plus de précisions. Aucune mention d’AMD et des puces Arm (qui équipent l’immense majorité des PC Copilot+ via les Snapdragon X Elite de Qualcomm), Microsoft n’évoquant qu’un support prévu « pour d’autres fabricants et plateformes », sans plus de détails.

Commentaires (25)

votre avatar
Presque un titre aguicheur 😉

Peut-être enfin une vraie raison à la puce TPM ?
En tout cas je n'avais pas réfléchi à la nécessité d'équilibre entre CPU et SSD pour Bitlocker mais effectivement ça a du sens maintenant qu'on me l'explique !
votre avatar
Je ne comprends pas un truc. L'accélérateur cryptographique sur x64 (aka AES-NI) sont présents depuis 2010 chez Intel (début avec Westmere) et AMD (début Bulldoze).
Apple (du temps de l'x64) l'utilisaient, tout comme Linux avec LUKS.

La variation au fil des ans sur l'AES-NI a été la possibilité d'utiliser d'utiliser l'approche SIMD au contraire du début, c'est-à-dire la possibilité d'appliquer un tour du chiffrement AES sur un vecteur de données.

Pourquoi Microsoft a besoin spécifiquement des Panther Lake ? Ils vont pas refaire de l'AES avec de l'AVX512 ?!!


Le retour de l’accélération matérielle réintroduit une dépendance sur les implémentations matérielles, qui peuvent comporter des vulnérabilités

C'est vrai, mais le gros point de l'accélérateur matérielle c'est, sous réserve d'un design correct, son invulnérabilité aux attaques par canal auxiliaire.
Dans le chiffrement AES, il a beaucoup d'implémentation réalisée par des personnes, qui ne sont pas formés à ce genre de détails, qui utilise un if. Or le if, s'il n'est pas traduit par un conditional move par le compilateur introduit de fait la possibilité de faire fuiter des infos.
Mais je pige pas le délire (d'un point de vue technique) de Microsoft de ne pas utiliser/s'appuyer sur l'AES-NI. Autant pour ses propres CPUs je peux comprendre (même si ARM fournit ce type de dispositif) autant pour du PC de Michu...
votre avatar
Il y a une partie de AVX512 qui est consacrée a AES (VAES).
Je ne sais pas par contre si ça fait partie du socle commun ou si c'est une partie optionnelle de AVX512.
votre avatar
C'est optionnel.

J'ai manqué de précision, mais par "Ils vont pas refaire de l'AES avec de l'AVX512 ?!!" je voulais dire que en pure AVX512 (i.e, fondation et co) sans recourir à VAES, GFNI, VPCLMULQDQ et VVPOPCNTDQ.
votre avatar
Là si je comprends bien l'article, il est question d'un accélérateur dédié, pas des instructions AES-NI (qui sont rapides, mais consomment du CPU).
votre avatar
Un accélérateur consomme aussi du CPU en raison des interactions à avoir (e.g., mettre les variables sur la stack..., pense au FPU x87 par exemple).

Le fait d'utiliser des instructions en assembleur n'est qu'une des façon pour interagir avec l'accélérateur. C'est comme une sorte d'API.
De toute façon tu consommes du CPU. Et le truc c'est que AES dans un accélérateur est tellement efficace que le CPU ne peut pas l'ignorer longtemps. Pour rappel, le débit de l'AES-NI est d'environ ~3.5 cycles/B. Soit en presque deux fois plus lent qu'une division en f64.

Mais mon point n'est pas de dire si ça consomme ou pas. Mon point de non compréhension et, pourquoi Microsoft ne veut pas utiliser l'AES-NI déjà présent sur les CPUs Intel, AMD et même chez ARM si besoin.
votre avatar
Je crois que Microsoft utilise déjà AES-NI.
Mais ce n'est pas un accélérateur, ce sont des instructions AVX donc elles occupent le CPU.

Je suppose que l'accélérateur serait plus sous la forme de DMA : le CPU donne l'adresse d'un buffer à chiffrer/déchiffrer, la clé, et est notifié quand le résultat est disponible (soit au même endroit, soit dans un buffer de destination).
On pourrait même imaginer que le CPU puisse déléguer totalement l'opération de lecture au d'écriture à l'accélérateur (un peu comme DirectStorage), qui appliquerait l'AES au passage entre la RAM et le NVMe de manière transparente (donc non seulement le CPU n'aurait pas à traiter les données, mais il n'y aurait pas plus d'accès mémoire qu'en clair).
votre avatar
Je pensais naïvement que bitlocker utilisait déjà le chiffrement matériel quand il était disponible.

Visiblement, sur mac et sous Linux, c’est géré.
votre avatar
Sous Linux, on a d'autres soucis, comme par exemple, l'absence de compression/décompression matérielle pour un système de fichier le supportant, comme par exemple BTRFS. Toute la compression passe en logiciel, alors que des CPU auraient la capacités de le faire, et que Microsoft le propose avec NTFS.

Résultat, grosses pertes de performances, et impossibilité de reproduire ceci qui offre un gros boost de débits selon les situations : https://korben.info/compactgui-compression-accelere-jeux-windows.html

Et on ne peut même pas corriger la situation en forkant le support de BTRFS, il est impossible de supplanter via modprobe un module existant en dur au sein du noyau. Du coup il faudrait recompiler le noyau sans support du BTRFS, modifier le code de BTRFS pour le support materiel de la compression, et... Charger le module.
Autant dire que c'est super lourd...

En théorie, c'est faisable, en pratique, je ne sais pas pourquoi ils s'entêtent à ne pas prendre en charge les instructions matérielles quand elles sont présentent, pour le pilote BTRFS du noyau Linux, en switchant en mode logiciel si c'est absent...
votre avatar
4 solutions :

1) retourner sous Windows qui fait correctement ce que tu demandes ; l'article de korben ne parle que de Windows.
2) proposer un patch à l'équipe de BTRFS ou plutôt aux équipes qui fournissent les lib de compression utilisées.
3) acheter plus d'espace de stockage même si par les temps qui courent, ça risque d'être cher.
4) ne pas utiliser BTRFS pour stocker des données que l'on veut compresser alors que l’espace réellement utilisable sur un disque correspond à sa taille maximale divisée par 2 pour une quantité de données identique.

En fait, la solution 4 me semble assez bonne.
votre avatar
Utiliser la déduplication -BTRFS le supporte).
votre avatar
La déduplication sous-entend qu'on a des données en double, ce qui n'est pas forcément le cas. En plus c'est pas automatique si ça vient de 2 fichiers sans aucun lien, mais seulement quand on dérive un nouveau fichier d'un autre. Et si on essaie de l'appliquer après coup ça amène des problèmes. Pour ma part je n'y ai pas trouvé de cas d'utilisation pour moi.

Dire qu'on ne peut utiliser que la moitié du stockage avec Btrfs est très approximatif et sous-entend qu'on utilise pas mal les snapshots et la redondance, ce qui n'est pas forcément le cas non plus. On peut l'utiliser aussi comme ext4 pour du stockage de fichiers simple sans snapshot ni redondance, ou alors avec des fichiers qui ne changent pas suffisamment souvent pour que les snapshots prennent beaucoup de place. Dans ce cas on a tout l'espace du disque disponible moins l'overhead de Btrfs qui est peut-être un peu plus important que d'autres mais pas forcément.
votre avatar
votre avatar
Aucun x64 n'a de support pour de la compression/décompression matérielle du type zip, lz4 et autres que peut utiliser BTRFS.

Quand à Windows, ils utilisent visiblement des algorithmes plus modernes que BTRFS. Mais il faudrait si cette compression/décompression se fait dans l'user-space ou le kernel-space.

Transition parfaitement trouvée pour répondre à ton histoire de BTFRS dans le kernel. Et bien pourquoi on le fait pas dans le module BTFRS, pour une raison de performance. Les instructions matérielles (on préfère le terme d'instructions vectorielles) comme AVX et co sont rarement utilisées dans le kernel sauf pour des besoins de performances avérés.
La raison vient du fait qu'au niveau du noyau, il faut stocker/restaurer les valeurs des différents registres CPUs associés avec ces instructions. Pour rappel, avec l'AVX512 ça représente 32*512 bits = 16 kiB.
A première vu tu pourrais me dire "Mouais, 16 KiB c'est rien de nos jours". Ce qui est globalement vrai.
En revanche, les opérations pour load/store sur ces registres sont coûteuses : Comme règle générale, un CPU peut faire 2 loads en parallèle (ici, je suis raisonne en instructions exécutés par le CPU par en terme de coeur) et 1 store. Ce qui signifie que pour enregistrer les 32 registres de 512 bits, je dois faire 32 opérations stores et 16 opérations loads. Sachant que la latence L1 de ce genre d'instructions est d'environ en moyenne 5 cycles CPU, tu as besoin de 32*5 = 160 cycles (idéalement) pour l'écriture et de 80 cyles (idéalement) pour la lecture. Ce qui conséquent. Et évidemment c'est un cas idéal car en pratique si les données ne sont pas accessible dans le cache L1, tu dois les ramener du L2, L3, LLC et la RAM, et en conséquence tu augmentes encore plus cette latence.

En règle générale on n'utilise pas de tel instructions dans le kernel-space sauf quand on sait qu'elle vont réellement apporter un gain, car c'est toujours 16 KiB d'économisé et une centaine de cycles (au bas mot).
Évidemment tu as des cas où c'est utile comme pour le chiffrement (LUKS, Wireguard...) ou encore RAID.
Note qu'il n'est pas impossible dans le futur de voir de nouveaux algos plus propices arriver.

Enfin, il faut se rappeler qu'au delà de ces instructions la compression/décompression de données c'est aussi un monde à part. Premièrement car le volume de données dans ce genre de cas est variable (et certaines opérations avec les instructions vectorielles sont très pénibles à réaliser quand tu ne connais pas ta taille de sortie à l'avance).
Deuxièmement car les algorithmes utilisés sont plutôt propice à l'utilisation de structure de données éparses du genre arbre. Or optimiser correctement ces structures pour fonctionner avec des instructions vectorielles n'est pas trivial (et je parle en connaissance de cause pour avoir traiter en mode "HPC" des données topographiques). Le bottleneck de ce genre d'algorithme est, paradoxalement, sur le bus mémoire plus que ce sur le CPU.
Troisièmement et finalement, si tu introduis ce genre d'instructions pour BTRFS il faut gérer toutes les subtilités entre les différentes versions d'AVX, AVX2, AVX512 et ses extensions, avec parfois des "trous" entre générations de CPU (coucou Alder-Lake) ou au sein même d'une gamme.
votre avatar
Les disques ont déjà une implémentation pour accélerer Bitlocker, non?
En tous cas, perso, mes disques sont déjà en AES-XTS-256.
votre avatar
Comment s'en assurer ?
votre avatar
D'être en AES-XTS-256?
votre avatar
Tu trouves parfois l'information dans la doc constructeur de ton matériel.
votre avatar
Mauvaise idée de reposer dessus. Il y a suffisamment de biblio sur le sujet qui montre les implémentations cryptographiques sont à chier en terme de sécurité.
Si tu te reposes dessus pour la protection de tes données, oublie immédiatement.
votre avatar
Le chiffrement intégré aux stockages, c'est côté BIOS/UEFI que c'est géré: Le fameux mot de passe qui est alors demandé pour que le stockage (globalement/toutes partitions) chiffré devienne lisible, avant même chargement de l'OS ou de son loader par le BIOS.

C'est déjà dispo et transparent niveau perf car c'est dans le contrôleur du stockage que c'est fait... et d'ailleurs le chiffrement est toujours actif pour ce qui va sur les plateaux (HDD) ou dans les secteurs de flash (SSD). Le mot de passe ne fait que débloquer la machine à lire/écrire des LBA au boot.

D'ailleurs, normalement les UEFI sont censé verrouiller ces commandes de configuration de l'accès, vu que des ransomwares les ont utilisé afin... de rendre les données d'un disque instantanément inaccessibles à son utilisateur légitime!

Je dirais que tant on n'a qu'un stockage, c'est sans doute dans en usage perso le mieux à faire et cela n'ajoute qu'un mot de passe tôt dans le boot (tandis que bitlocker est transparent de ce point de vue, ne nécessitant que le login habituel).

Quand on a plusieurs stockages sur une machine, cela devient chiant car je n'ai jamais vu un BIOS proposer d'appliquer le même mot de passe de déblocage à tous les stockages présents. Ce qui oblige alors à en taper autant que de stockage ainsi protégés au boot... a se demander si ceux qui implémentent cela ont un cerveau.
votre avatar
veracrypt c'est SW ou HW ?
votre avatar
Il utilise par défaut l'accélération hardware quand les instructions AES-NI sont dispo sur un processeur Intel, mais on peut le basculer en mode software.
votre avatar
Grotesque... Et tu paie 200 balles pour ton OS claqué au sol.
votre avatar
tu connais bcp de gens qui ont eu un windows reelle pete a cause de bitlocker?
au pire, apres une mise a jour windows c'est deja arrive de devoir rentrer la cle de recuperation, ca s'arrete la. et si tu payes 200 balles pour ca, y a un probleme..
votre avatar
Non, ce qui me rend fou c'est une boîte comme Microsoft qui se dit: "boa... Ça va, le pourcentage de surcharge des processeurs n'est pas à deux chiffres, [on peut encore attendre]". C'est aussi bête que de se dire qu'on peut finalement se passer de GPU pour le rendu graphique, après tout...

Microsoft va apporter l’accélération matérielle à son chiffrement BitLocker, mais…

  • Approche logicielle : un coût croissant en performances

  • Décharger le CPU

  • Problèmes à l’horizon

Fermer