OpenSSL 3.0 arrive avec un nouveau module FIPS, un changement de licence et plus encore

Il y a plusieurs jours Matt Caswell, membre de l'équipe de développement du projet OpenSSL, a annoncé la sortie d'OpenSSL 3.0 qui vient après 3 ans de développement, 17 versions alpha, 2 versions bêta, plus de 7500 confirmations et contributions de plus de 350 auteurs différents.

Et c'est que OpenSSL eu la chance d'avoir plusieurs ingénieurs à temps plein qui a travaillé sur OpenSSL 3.0, financé de diverses manières. Certaines entreprises ont signé des contrats de support avec l'équipe de développement OpenSSL, qui sponsorisait des fonctions spécifiques comme le module FIPS qui prévoyait de restaurer sa validation avec OpenSSL 3.0, cependant, elles ont rencontré des retards importants et, comme les tests FIPS 140-2 se sont terminés en septembre. 2021, OpenSSL a finalement décidé de concentrer également ses efforts sur les normes FIPS 140-3.

Une caractéristique clé par OpenSSL 3.0 est le nouveau module FIPS. L'équipe de développement OpenSSL teste le module et rassemble les documents nécessaires à la validation FIPS 140-2. L'utilisation du nouveau module FIPS dans les projets de développement d'applications peut être aussi simple que d'apporter quelques modifications au fichier de configuration, bien que de nombreuses applications devront apporter d'autres modifications. La page de manuel du module FIPS fournit des informations sur l'utilisation du module FIPS dans vos applications.

Il convient également de noter que depuis OpenSSL 3.0, OpenSSL est passé à la licence Apache 2.0. Les anciennes licences "doubles" pour OpenSSL et SSLeay s'appliquent toujours aux versions antérieures (1.1.1 et antérieures). OpenSSL 3.0 est une version majeure et n'est pas entièrement rétrocompatible. La plupart des applications qui fonctionnaient avec OpenSSL 1.1.1 continueront de fonctionner sans changement et devront simplement être recompilées (éventuellement avec de nombreux avertissements de compilation concernant l'utilisation d'API obsolètes).

Avec OpenSSL 3.0, il est possible de spécifier, soit par programmation, soit via un fichier de configuration, quels fournisseurs l'utilisateur souhaite utiliser pour une application donnée. OpenSSL 3.0 est livré en standard avec 5 fournisseurs différents. Au fil du temps, des tiers peuvent distribuer des fournisseurs supplémentaires qui peuvent être intégrés à OpenSSL. Toutes les implémentations des algorithmes disponibles auprès des fournisseurs sont accessibles via des API « de haut niveau » (par exemple, des fonctions avec le préfixe EVP). Il n'est pas accessible à l'aide d'API « bas niveau ».

L'un des fournisseurs standard disponibles est le fournisseur FIPS qui fournit des algorithmes cryptographiques validés FIPS. Le fournisseur FIPS est désactivé par défaut et doit être explicitement activé lors de la configuration à l'aide de l'option enable-fips. S'il est activé, le fournisseur FIPS est créé et installé en plus des autres fournisseurs standard.

L'utilisation du nouveau module FIPS dans les applications peut être aussi simple que d'apporter quelques modifications au fichier de configuration, bien que de nombreuses applications devront apporter d'autres modifications. Les applications écrites pour utiliser le module OpenSSL 3.0 FIPS ne doivent pas utiliser d'API ou de fonctionnalités héritées qui contournent le module FIPS. Cela comprend notamment :

  • API cryptographiques de bas niveau (il est recommandé d'utiliser des API de haut niveau, telles que EVP) ;
    moteurs
  • toutes les fonctions qui créent ou modifient des méthodes personnalisées (par exemple, EVP_MD_meth_new (), EVP_CIPHER_meth_new (), EVP_PKEY_meth_new (), RSA_meth_new (), EC_KEY_METHOD_new ()).

Par ailleurs la bibliothèque cryptographique OpenSSL (libcrypto) implémente une large gamme d'algorithmes cryptographiques utilisés dans diverses normes Internet. Les fonctionnalités incluent le cryptage symétrique, la cryptographie à clé publique, l'accord de clé, la gestion des certificats, les fonctions de hachage cryptographique, les générateurs de nombres pseudo-aléatoires cryptographiques, les codes d'authentification de message (MAC), les fonctions de dérivation de clé (KDF) et divers utilitaires. Les services fournis par cette bibliothèque sont utilisés pour implémenter de nombreux autres produits et protocoles tiers. Voici un aperçu des concepts clés de libcrypto ci-dessous.

Les primitives cryptographiques telles que le hachage SHA256 ou le cryptage AES sont appelées « algorithmes » dans OpenSSL. Chaque algorithme peut avoir plusieurs implémentations disponibles. Par exemple, l'algorithme RSA est disponible en tant qu'implémentation « par défaut » adaptée à une utilisation générale, et en tant qu'implémentation « fips » qui a été validée par rapport aux normes FIPS pour les situations où cela est important. Il est également possible pour un tiers d'ajouter des implémentations supplémentaires, par exemple dans un module matériel de sécurité (HSM).

Enfin si vous êtes intéressé à savoir plus à ce sujet, vous pouvez vérifier les détails dans le lien suivant.


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données : AB Internet Networks 2008 SL
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.