PHP 7.2 intégrera la bibliothèque de cryptographie Libsodium
Qui fera de ce langage le premier à supporter un outil moderne de ce genre, selon Scott

Le , par Olivier Famien, Chroniqueur Actualités
Avec plus de 80 % de part de marché, PHP est devenu l’un des langages de programmation les plus utilisés pour la conception des sites web dynamiques et les applications web. En plus de soutenir ces sites web, PHP est également utilisé pour le développement de certains systèmes de gestion de contenu (CMS en anglais), notamment Dupral, Joomla et bien d’autres encore.

Vu la forte communauté d’utilisateurs entourant ce langage de programmation, une déviation ou un bogue au niveau de ce langage aurait de grandes répercussions dans l’environnement web. Conscient de ce fait, l’équipe en charge du développement de PHP vient d’adopter l’intégration de l’extension Libsodium dans le noyau de la version 7.2 de PHP qui doit sortir d’ici la fin de l’année.

Selon Scott Arciszewski, Chef de développement à Paragon Initiative Enterprises et grand défenseur du renforcement de la cryptographie dans les CMS PHP, l’extension Libsodium qui trouvera sa place dans la prochaine version de PHP offre le chiffrement authentifié, le déchiffrement, des performances accrues pour la cryptographie sur les courbes elliptiques, le hachage de mots de passe ainsi que bien d’autres avantages.

Depuis le mois de novembre 2016, Arciszewski a émis une proposition afin d’intégrer l’extension Libsodium également connue sous le nom Sodium dans le noyau de PHP 7.2 dans le but d’améliorer la sécurité de ce langage et par-delà des autres outils bâtis sur ce langage. Après soumission de cette proposition au vote, Arciszewski annonce que la RFC (Request for comments) Libsodium a été adoptée avec trente-sept voix pour et zéro voix contre.

Au-delà de l’intégration de cet outil de sécurité par défaut dans le noyau de PHP, c’est tout l’environnement gravitant autour de ce langage qui en sera affecté. Arciszewski explique que cette décision d’intégrer Libsodium par défaut dans PHP a été motivée par le fait que WordPress, le CMS écrit en PHP, contient de nombreux problèmes de sécurité dus à l’absence d’outils de cryptographie appropriés. Aussi en intégrant cet outil à PHP, cela obligerait l’équipe de CMS à implémenter une meilleure sécurité dans le CMS. Par ailleurs, cela permettra également aux développeurs PHP et des autres CMS d’intégrer des outils avancés de cryptographie dans leurs applications qui sont exécutées sur les fournisseurs d’hébergement mutualisé, ce qui n’était pas possible jusqu’à présent.

En plus des caractéristiques citées plus haut, Arciszewski considère Libsodium comme une bibliothèque de cryptographie moderne, car selon lui, elle remplit les deux critères essentiels à savoir l’usage des primitives rapides conçues pour résister à une cryptanalyse par canal latéral et l’exposition d’une API de haut niveau simple et sécurisée par défaut. Ainsi en intégrant cet outil au noyau de PHP, ce langage devient, selon Arciszewski, le premier langage de programmation à supporter une bibliothèque de cryptographie « moderne » dans son noyau.

Il ajoute que certains langages comme Go, Ruby, Erlang ou encore Node.js intègrent une pile de sécurité, mais qui ne présente pas de caractéristiques de cryptographie moderne (couche cryptographique et exposition d’API simple et par défaut) telles qu’il le conçoit.

Source : News PHP, Blog Scott Arciszewski

Et vous ?

Que pensez-vous de cette nouvelle fonctionnalité de sécurité qui sera intégrée à PHP ?

Pourra-t-elle changer l’opinion des personnes qui trouvent que PHP n’est pas sécurisé ?

Voir aussi

WordPress est de loin le CMS le plus ciblé par les cyberattaques, en grande partie en raison du mauvais entretien et la négligence des webmasters
WordPress : Plus de 90 000 sites et blogs seraient victimes d'attaques lancées par quatre groupes de hackers altérant ainsi leur contenu
PHP 5.3.9 corrige une faille de sécurité critique pouvant entrainer un déni de service et plus de 90 bogues

La Rubrique PHP, Forum Bibliothèques & Frameworks PHP, Cours et tutoriels PHP, FAQ PHP


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de Tsilefy Tsilefy - Membre émérite https://www.developpez.com
le 22/02/2017 à 20:45
Il était temps! Et pour tous ceux qui veulent en profiter sans attendre et qui ne peuvent pas installer l'extension libsodium, il y a la librairie paragonie/sodium_compat qui fonctionne sur PHP 5.2.4 et plus. Le code est encore sous audit, mais ça sera toujours mille fois mieux qu'écrire soi-même sa propre crypto (sauf si vous êtes un expert en crypto!).
Avatar de jopopmk jopopmk - Membre expert https://www.developpez.com
le 23/02/2017 à 7:52
Je préviens je connais à peine le PHP.
Ma petit question : au niveau chiffrement, qu'offre libsodium qu'openssl n'a pas ?
Avatar de bilbot bilbot - Membre averti https://www.developpez.com
le 23/02/2017 à 9:32
Je vois pas en quoi cette librairie va faire que Wordpress sera mieux sécurisé. Pour moi, les problèmes de sécurité de WP sont plus lié à la conception, qu'a des manques de fonctions de cryptographie. A l'heure actuelle il y a déjà des outils de chiffrement de mot de passe qui existent et qui sont performants.
Avatar de Tsilefy Tsilefy - Membre émérite https://www.developpez.com
le 23/02/2017 à 12:18
Citation Envoyé par jopopmk Voir le message
Je préviens je connais à peine le PHP.
Ma petit question : au niveau chiffrement, qu'offre libsodium qu'openssl n'a pas ?
Essentiellement un API plus simple. Pour pouvoir utiliser OpenSSL de manière sécurisée, il faut comprendre la signification de toutes ses options. J'ai vu trop de mauvais exemples ici ou ailleurs, où on voit clairement que le dévelopeur n'a aucune idée de ce qu'il fait mais s'est contenté de piquer un code sur Stack Overflow, et l'a utilisé (et pire, le recommande) en faisant l'équivalent du "je ferme les yeux et j'espère que ça passe". Cette approche marche peut-être pour d'autres chose, mais pas en sécurité.

Libsodium propose des fonctions simples à comprendre et utiliser pour générer des nombres aléatoires, chiffrer avec une clé ou un certificat, hasher un mot de passe, etc...

Cette simplicité évite de se tirer une balle dans les pieds en modifiant des paramètres qu'on ne maîtrise pas.

Pour ceux qui lisent l'anglais, je conseille très fortement le blog de Paragonie/Scott Arciszewski, pour tous ceux qui désirent s'informer sur la sécurité sous PHP et la cryptographie en particulier.
Avatar de Tsilefy Tsilefy - Membre émérite https://www.developpez.com
le 23/02/2017 à 12:37
Citation Envoyé par bilbot Voir le message
Je vois pas en quoi cette librairie va faire que Wordpress sera mieux sécurisé. Pour moi, les problèmes de sécurité de WP sont plus lié à la conception, qu'a des manques de fonctions de cryptographie. A l'heure actuelle il y a déjà des outils de chiffrement de mot de passe qui existent et qui sont performants.
- Libsodium ne se limite pas aux mots de passe (qui ne ne doivent pas être chiffrés, mais hashés). Les mots de passe ont d'ailleurs déjà les fonctions de la famille password_hash()

- Jusqu'à l'année dernière, le générateur de nombres pseudo-aléatoires de Wordpress n'était pas si aléatoire que ça (or il est utilisé dans les cookies par exemple, ce qui veut dire qu'il était possible de générer un faux cookie avec les risques que cela entraîne)

- Depuis un ou deux ans, Wordpress peut faire une mise à jour automatique. Imagine le problème si un hostile venait à s'interposer entre les serveurs de WordPress et le reste du monde, ou à prendre le contrôle des serveurs de WordPress: il pourrait installer ce qu'il veut sur plus d'un quart des sites. Pour sécuriser cette mise à jour, il faut un système d'authentification des mises à jour, qui repose sur une cryptographie sûre (qui n'existe pas dans Wordpress)

- À ma connaissance, WordPress n'a pas de fonctions de cryptographie, ce qui force les auteurs de plugins désireux de chiffrer les données (ex: données personnelles des clients dans une base de données) à écrire leur propre crypto, avec tous les risques que cela implique. Maintenant, ils vont pouvoir utiliser libsodium parce qu'ils savent que la bibliothèque sera toujours présente.
Avatar de grunk grunk - Modérateur https://www.developpez.com
le 23/02/2017 à 13:17
D'un autre coté ca imposerait l'utilisation de PHP 7.2 pour tous les WP. Donc autant dire que c'est pas près d'avoir un impact quelconque sur la sécurité de WP dans les années à venir (y'a qu'à voir le taux d'utilisation de php 7).
D'autant plus que rien n'impose à WP d'utiliser ces nouvelles fonctionnalités , à moins que tout ce qui est en doublon avec libsodium deviennent déprécié.

C'est une très bonne chose que d'intégrer cette librairie , par contre vendre le truc en disant que ça va sécuriser les CMS c'est un peu borderline.
Avatar de jopopmk jopopmk - Membre expert https://www.developpez.com
le 23/02/2017 à 14:58
@Tsilefy : merci pour la précision.
Mais du coup on n'y gagne ni en perf ni en fonctionnalité pure, juste en simplicité d'utilisation -ce qui n'est pas rien je l'accorde ?
En C OpenSSL c'est assez bourrin, j'aurais pensé que pour un module PHP ils auraient wrappé ça dans une API plus simple.
Avatar de Tsilefy Tsilefy - Membre émérite https://www.developpez.com
le 24/02/2017 à 0:07
Citation Envoyé par grunk Voir le message
D'un autre coté ca imposerait l'utilisation de PHP 7.2 pour tous les WP. Donc autant dire que c'est pas près d'avoir un impact quelconque sur la sécurité de WP dans les années à venir (y'a qu'à voir le taux d'utilisation de php 7).
D'autant plus que rien n'impose à WP d'utiliser ces nouvelles fonctionnalités , à moins que tout ce qui est en doublon avec libsodium deviennent déprécié.

C'est une très bonne chose que d'intégrer cette librairie , par contre vendre le truc en disant que ça va sécuriser les CMS c'est un peu borderline.
WP et les autres CMS qui le veulent auront la bibliothèque PHP pur sodium_compat pour ceux qui n'auront pas PHP 7.2, tout comme WP a déjà random_compat pour les PRNGs, tout comme certains utilisent password_compat pour password_hash
Avatar de grunk grunk - Modérateur https://www.developpez.com
le 24/02/2017 à 8:44
Mouais , utiliser sodium_compat ca revient à utiliser la crypto de de PHP. On va certes retrouver les même fonction que libsodium mais qu'est ce qui garantie qu'elle sont implémentées correctement ?
Il semblerait que l'auteur veulent la faire auditer mais d'ici là rien ne garantie qu'on puisse lui faire confiance plus qu'un autre code.

En gros ca revient à changer la crypto actuelle par une faite par quelqu'un d'autre. Donc potentiellement autant de risque de mauvaise utilisation et en plus on maîtrise plus le code.
Avatar de Tsilefy Tsilefy - Membre émérite https://www.developpez.com
le 24/02/2017 à 23:05
Evidemment, il faudra que libsodium_compat soit complètement audité avant de l'introduire dans WP ou toute autre application. Et aujourd'hui il n'y a pas de crypto avec WP, et on connaît la qualité moyenne des plugins. Je préfère mille fois une bibliothèque auditée et avec une visibilité importante plutôt qu'un code concocté par des contributeurs lambda plus ou moins compétents.

Sur Drupal par ex, je vois au moins 3 modules de chiffrement. Je suis sûr que ce sont des modules de qualité (le niveau du contributeur moyen étant plus élevé avec Drupal qu'avec Wordpress), mais n'étant pas expert en crypto je préfère quand même avoir affaire à un code audité.

Sans compter que cela m'évite d'apprendre des fonctions différentes à chaque CMS :-D
Contacter le responsable de la rubrique Accueil