Avec Windows Vista et Windows Server 2008, la Cryptography API : Next Generation (CNG) a été introduite dans les systèmes Windows.
Ce terme désigne un ensemble de fonctions cryptographiques modernes. Entre autres, le CNG permet l'utilisation de certificats utilisant des clés basées sur des courbes elliptiques (également appelées Elliptic Curve Cryptography, ECC) avec l'autorité de certification Microsoft et le système d'exploitation Windows.
Raisons d'utiliser des courbes elliptiques
Alors que l'algorithme de hachage SHA2, également implémenté avec le CNG, est devenu depuis longtemps un standard de facto, et qu'ils se sont aussi s'imposent de plus en plus sur les sites web, werden elliptische Kurven in Unternehmens-Public Key Infrastrukturen bisher noch eher verhalten bis überhaupt nicht adaptiert.
Il existe cependant de bonnes raisons de les utiliser et de les adapter rapidement :
- À force cryptographique égale, elles nécessitent nettement moins de puissance de calcul que les clés RSA. Cela peut être d'une grande importance pour l'utilisation d'appareils embarqués peu performants (microcontrôleurs et Internet des objets), mais aussi avoir une influence importante sur la vie quotidienne. Il est désormais établi que les échanges TLS/SSL se déroulent beaucoup plus rapidement, ce qui réduit le temps de chargement des pages web.
- Dans le cas de RSA, la sécurité comparable à celle d'ECC n'augmente que lorsque la longueur de la clé augmente de manière exponentielle. Les 4096 bits, toujours considérés comme un maximum raisonnable à l'heure actuelle, n'apportent qu'un faible plus en termes de sécurité par rapport aux 2048 bits. Pour obtenir une sécurité comparable au cryptage symétrique de 256 bits, il faudrait déjà des clés RSA de 15 360 bits, ce qui signifie que plus la force de la clé est importante, plus l'application de RSA sera inefficace et gourmande en temps de calcul dans un avenir prévisible.
- Des raisons techniques peuvent également plaider en faveur de l'utilisation de clés ECC. Ainsi, la norme Trusted Platform Module (TPM) 2.0 spécifie un maximum de 2048 bits pour les clés RSA, mais autorise les clés ECC jusqu'à 384 bits. Ainsi, si les clés doivent être protégées par un TPM, une augmentation de la force cryptographique ne peut être obtenue qu'avec des clés ECC.
Ci-dessous, une comparaison de la force cryptographique des clés RSA et ECC par rapport à une méthode symétrique comme AES.
| Longueur de la clé (RSA) | Longueur de la clé (ECC) | Longueur de clé symétrique comparable |
|---|---|---|
| 1024 | 160 | 80 |
| 2048 | 224 | 112 |
| 3072 | 245 | 128 |
| 7680 | 384 | 192 |
| 15360 | 512 (521) | 256 |
Mit dem Vergleich symmetrischer und asymmetrischer Verfahren ist gemeint, dass die in der Tabelle als vergleichbar ausgewiesenen Schlüssellängen eine vergleichbare theoretische Resistenz gegenüber Brute Force Angriffen, also dem Durchprobieren aller Kombinationen, aufweisen.
Ci-dessous, une comparaison de la charge de calcul nécessaire entre RSA et ECC.
| longueur de bit symétrique | Comparaison de la charge de calcul RSA vs ECC |
|---|---|
| 80 | 3 : 1 |
| 112 | 6 : 1 |
| 128 | 10 : 1 |
| 192 | 32 : 1 |
| 256 | 64 : 1 |
Connaissez-vous TameMyCerts? TameMyCerts est un add-on pour l'autorité de certification Microsoft (Active Directory Certificate Services). Il étend la fonction de l'autorité de certification et permet de Application de la réglementationIl s'agit d'un logiciel de gestion des certificats qui permet d'automatiser l'émission de certificats en toute sécurité. TameMyCerts est unique dans l'écosystème Microsoft, a déjà fait ses preuves dans d'innombrables entreprises du monde entier et est disponible sous une licence libre. Il peut téléchargé via GitHub et être utilisé gratuitement. Une maintenance professionnelle est également proposée.
Sécurité de l'ECC et des courbes utilisées
Les clés basées sur des courbes elliptiques ne sont pas en soi plus "sûres" ou moins "sûres" que les clés basées sur RSA, tant qu'une force de clé comparable (voir ci-dessus) est choisie.
Alors qu'aux niveaux de sécurité actuels, les courbes elliptiques n'offrent pas d'avantages significatifs par rapport aux algorithmes à clé publique existants, dans la mesure où l'on fait évoluer la sécurité dans le temps pour faire face à l'évolution des menaces posées par les pirates informatiques et les hackers ayant accès à des ressources informatiques plus importantes, les courbes elliptiques commencent à offrir des économies spectaculaires par rapport aux anciennes techniques de première génération.
Le cas de la cryptographie des courbes elliptiques (National Security Agency, lien vers les archives)
Les courbes utilisées ne sont pas non plus en soi plus "sûres" ou moins "sûres" que les autres, mais les implémentations dans les logiciels peuvent différer : Certaines courbes sont plus faciles à implémenter de manière sûre, d'autres ne le sont qu'au prix d'efforts plus importants et d'une plus grande vulnérabilité aux erreurs.
Normalisation
NSA Suite B
Die in der von der National Security Agency (NSA) spezifizierte „Suite B“ enthaltenen Algorithmen können als der kleinste gemeinsame Nenner zwischen PKI-Implementierungen, die ECC unterstützen, angesehen werden.
| Objectif | Algorithme | Niveau "Secret | Niveau "Top secret |
|---|---|---|---|
| Cryptage | Norme de chiffrement avancée (AES) | AES-128 | AES-256 |
| Signature numérique | Algorithme de signature numérique à courbe elliptique (ECDSA) | ECDSA_P256 | ECDSA_P384 |
| Échange de clés | Courbe elliptique Diffie-Hellman (ECDH) | ECDH_P256 | ECDH_P384 |
| Sommes de contrôle | Algorithme de hachage sécurisé (SHA) | SHA256 | SHA384 |
Le CNG de Microsoft a mis en œuvre les algorithmes définis dans la Suite B. Il ne s'agit pas d'une nouvelle version. Mais cela ne signifie pas à l'inverse que tous les algorithmes nouvellement implémentés font partie de la Suite B de l'ANS.
La courbe secp521r1 (utilisée par ECDSA_P521 et ECDH_P521) est donc pas Partie de la suite B de la NSA. Il en va de même pour l'algorithme de hachage SHA512, voir RFC 5759.
Comme on peut le constater, la NSA vise avec la suite B (à l'exception de l'algorithme AES) un "bitting" maximal de 192 bits.
Suite commerciale d'algorithmes de sécurité nationale" (CNSA)
Entre-temps, la Suite B a été remplacée par la "Commercial National Security Algorithm Suite" (CNSA). Celle-ci comprend à nouveau RSA avec des clés de taille correspondante (3072 bits pour la classe de protection "Top Secret").
Cependant, en raison des progrès actuels dans le domaine de la cryptographie quantique, la NSA se distancie désormais des efforts visant à utiliser la suite B ou la CNSA et à miser sur des algorithmes résistants aux quanta qui seront disponibles dans un avenir proche :
Pour les partenaires et les fournisseurs qui n'ont pas encore fait la transition vers les algorithmes de la suite B, nous recommandons de ne pas faire de dépenses significatives pour le faire à ce stade mais plutôt de se préparer à la prochaine transition des algorithmes résistants au quantum.
La cryptographie aujourd'hui, National Security Agency (NSA)
Nous ne verrons donc probablement plus l'utilisation à grande échelle des courbes elliptiques dans le domaine des ICP d'entreprises.
Courbes elliptiques dans Windows et Active Directory Certificate Services
Un facteur grave pour l'utilisation réussie de certaines courbes est la Prise en charge par les systèmes d'exploitation et les bibliothèques cryptographiques les plus courants.
Pour les certificats numériques, les algorithmes suivants sont utilisables avec les Microsoft Active Directory Certificate Services et le système d'exploitation Windows :
| Désignation | Algorithme | Normes |
|---|---|---|
| ECDH_P256 ECDH_P384 ECDH_P521 | Algorithme d'échange de clés Elliptic Curve Diffie-Hellman | NIST SP800-56A |
| ECDSA_P256 ECDSA_P384 ECDSA_P521 | Algorithme de signature numérique de courbe elliptique | NIST FIPS 186-2 ANSI X9.62 |
Les algorithmes utilisent respectivement les courbes NIST P256 (secp256r1), P384 (secp384r1) ou P521 (secp521r1). Voir aussi les RFC 3279 et 5480.
Il convient de noter que chaque variante est un algorithme indépendant, c'est-à-dire qu'il n'y a pas de "RSA avec une longueur de clé X". Il s'agit plutôt de "ECDSA ou ECDH avec une courbe X".
Le support n'est pas assuré partout (...une fois dans l'écosystème Windows)
Bien que Microsoft ait implémenté les courbes elliptiques depuis Windows Vista, elles ne peuvent pas être utilisées partout de manière générale. Le fait qu'elles soient utilisables dans le monde Windows dépend (outre de l'application finale qui doit traiter les certificats) de Stockage des clés est possible.
Quelques exemples :
- Le site Service d'enregistrement des périphériques réseau (Network Device Enrollment Service, NDES) utilise encore des fournisseurs de services cryptographiques (CSP), qui ne supportent pas les courbes elliptiques, pour sa Certificats d'autorité d'enregistrement
- Il en va de même pour le Connecteur NDES pour Microsoft Intune.
- Une utilisation de courbes elliptiques en combinaison avec un Trusted Platform Module (TPM) n'est possible que depuis Windows 10 21H2 et Windows 11.
Séparation entre les procédures de signature et d'échange de clés
Une particularité intéressante de l'utilisation des clés ECC est le fait qu'il n'est pas possible d'utiliser des clés hybrides (signature et cryptage) comme avec RSA.
Avec Suite B, la clé ECC pour un certificat donné ne peut être utilisée que pour la signature ou le cryptage, mais pas les deux. Veillez à ne pas sélectionner l'option pour la signature et le cryptage. Si la signature et le cryptage sont tous deux sélectionnés, seuls les algorithmes ECDH seront disponibles et la clé ne sera valable que pour le cryptage.
Microsoft, Suite B PKI dans Windows Server 2008 (lien vers les archives)
Le choix de l'algorithme de clé se présenterait donc à peu près comme suit pour les cas d'application courants :
| Cas d'utilisation | Famille d'algorithmes |
|---|---|
| Serveur web | ECDSA |
| Signature codée | ECDSA |
| Authentification KDC | ECDSA |
| Signature électronique | ECDSA |
| Cryptage des e-mails | ECDH |
| Archivage de clés privées | ECDH |
| Agent de récupération des clés | ECDH |
En conséquence, si S/MIME passe de RSA à des courbes elliptiques, il faudrait désormais fournir deux certificats aux utilisateurs - l'un pour signer, l'autre pour chiffrer (si l'on n'en utilisait qu'un seul pour les deux usages).
Évaluation de l'aptitude à la pratique
A l'heure actuelle (2022), la plupart des ICP d'entreprises continuent d'utiliser l'algorithme RSA pour leurs certificats d'autorité de certification et leurs certificats finaux. Dans les années à venir, il s'agira au moins de Augmentation de la longueur de la clé au programme.
Dans certains cas, comme lorsqu'on protéger la clé privée avec le module TPM (Trusted Platform Module) du terminalEn effet, les TPM ne peuvent protéger que des clés RSA de 2048 bits au maximum).
D'un autre côté, il y a toujours l'incertitude de savoir si tous les systèmes participant à la PKI peuvent gérer des clés basées sur des courbes elliptiques. Il est donc pour l'instant illusoire de pouvoir travailler avec une ICP reposant uniquement sur ces algorithmes de clés.
Pour les certificats d'autorité de certification, il faudra donc continuer à utiliser de grandes clés RSA dans un avenir prévisible, à moins de s'offrir le luxe de deux hiérarchies d'autorités de certification en production (l'une avec des clés RSA, l'autre avec des clés ECC) et le les inconvénients qui en découlent veut faire.
Le fait que les autorités de normalisation comme la NSA déconseillent désormais d'investir dans les algorithmes de la suite B renforce également cette thèse.
Si l'on souhaite ou doit néanmoins les utiliser, il est conseillé de s'orienter vers la Suite B afin d'obtenir la plus grande compatibilité possible. Les algorithmes qui ne sont pas contenus dans la Suite B (notamment SHA512 et la courbe secp521r1) ne devraient donc plutôt pas être utilisés.
Liens complémentaires
- Principes de base : fournisseur de services cryptographiques (CSP) et fournisseur de stockage de clés (KSP)
- Bases : algorithmes de clés, algorithmes de signature et algorithmes de hachage de signature
- La demande de certificats avec des clés basées sur des courbes elliptiques échoue lors de l'utilisation du Microsoft Platform Crypto Provider
- Liste des cas d'utilisation des certificats nécessitant des fournisseurs de services cryptographiques (CSP) ou des fournisseurs de stockage de clés (KSP) spécifiques
Sources externes
- API de cryptographie : Nouvelle génération (Microsoft)
- API de cryptographie : Nouvelle génération (Wikipedia)
- Courbes elliptiques nommées CNG (Microsoft)
- Identifiants d'algorithme GNC (Microsoft)
- Fournisseurs de stockage de clés GNC (Microsoft)
- Ce qu'il faut savoir sur la cryptographie (Heise)
- Pourquoi la courbe elliptique P-521 n'est-elle pas dans la suite B si AES-256 est ?
- Compatibilité ECC (GlobalSign)
- Issue 478225 : Chrome TLS ne supporte plus secp521r1 dans les certificats à courbe elliptique (Projet Chromium)
- Stop advertising/support P-521 curve in Suite-B-only mode (Mozilla)
- SP 800-56A Rev. 3 / Recommandation pour les schémas d'établissement de clés par paires utilisant la cryptographie à logarithme discret (National Institute of Standards and Technology)
- FIPS PUB 186-4 / Norme de signature numérique (DSS) (National Institute of Standards and Technology)
- ANSI X9.62 / Cryptographie à clé publique pour l'industrie des services financiers : l'algorithme de signature numérique à courbe elliptique (ECDSA) (American National Standards Institute)
- Le cas de la cryptographie des courbes elliptiques (National Security Agency, lien vers les archives)
- RFC 6318 - Suite B dans Secure/Multipurpose Internet Mail Extensions (S/MIME) (Internet Engineering Task Force)
- RFC 5759 - Profil du certificat Suite B et de la liste de révocation des certificats (CRL) (Internet Engineering Task Force)
- RFC 5480 - Cryptographie à courbe elliptique sujet de l'information de clé publique (Internet Engineering Task Force)
- Comparaison ECDSA vs RSA (SSL.com)
- Suite B PKI dans Windows Server 2008 (Microsoft, lien archive)
- Application Windows des certificats SHA1 (Microsoft)
- NSA Suite B Cryptographie (Wikipedia)
Les commentaires sont fermés.