À propos de libmcrypt et php-mcrypt

Je ne compte plus les fois où j'ai du expliquer pourquoi utiliser cette bibliothèque ou cette extension est une grave erreur. Il est donc temps d'en faire un article.

 

libmcrypt est un projet mort, non maintenu depuis plus de 8 ans, la dernière version 2.5.8 a été publiée en février 2007 !... et malgré les nombreux tickets ouverts, aucune activité.

La cryptographie est un élément essentiel de la gestion de la sécurité. Si on regarde en arrière, les failles découvertes et corrigées dans divers logiciels, la nécessite d'augmenter les standards de sécurités et d'abandonner les vieux algorithmes, comment peut-on imaginer utiliser une vieillerie de plus de 8 ans ?

Il existe plusieurs bibliothèques alternatives bien maintenues :

Et, pour PHP, plusieurs autres solutions sont disponibles:

Une RFC a été proposée pour retirer l'extension mcrypt de PHP 7, mais, honte à nous, elle n'a pas été acceptée (15-18), elle restera donc disponible.

L'oeuf ou la poule ? L'extension est utilisée car elle est disponible, et elle est conservée parce qu'elle est utilisée.

Nous devons vraiment communiquer sur ce problème, et c'est ce que nous faisons déjà depuis longtemps chez Fedora, la plupart des projets comprennent le problème et acceptent de le corriger en basculant sur une implémentation plus sécurisées, quelques exemples :

Certain framework continuent de proposer une interface pour utiliser mcrypt (ex Zend\\Crypt\\Symmetric\\MCrypt, ticket #3), encore une fois, c'est l'oeuf ou la poule,les applications utilisent cette fonction parce qu'elle existe.

Ceci explique pourquoi certaines distributions linux professionnelles, comme RHEL, ne fournissent ni libmcrypt ni php-mcrypt. On devrait sans doute en discuter avec les autres distributions Linux (Debian, Fedora...) pour arrêter de fournir cette bibliothèque.

Utilisez vous mcrypt ? Comprenez vous que vous DEVEZ basculer dès que possible ? ou, au moins, rapporter ce problème au fournisseur des logiciels que vous utilisez.

 

Vus : 994
Publié par Remi Collet : 73