Ajouter un commentaire

PHP 7.2 intégrera la librairie cryptographique Sodium

Par:
fredericmazue

jeu, 23/02/2017 - 12:27

Un billet de blog de Scott Arciszewski, responsable du développement à Paragon Initiative Enterprises, indique que PHP 7.2 intégrera la librairie cryptographique Sodium, également connue sous le nom de libsodium. Selon lui, cette intégration permettra de corriger de nombreux problèmes de sécurité présents dans les CMS écrits en PHP, faute d'outils cryptographiques appropriés au sein du langage PHP.

Sodium est une librairie pour le cryptage, le décryptage, le hashage de mots de passe, etc. Elle est basée sur la librairie cryptographique NaCl créée par le mathématicien programmeur Daniel J Bernstein, connu pour avoir développé le célèbre logiciel de messagerie qmail.

Sodium expose des APIs de haut niveau qui rendent les manipulations cryptographiques très simples.

Exemple de cryptage d'un message:

//une clé privée$
alice_ecdh_secret =
    "\x69\xf2\x08\x41\x2d\x8d\xd5\xdb\x9d\x0c\x6d\x18\x51\x2e\x86\xf0" .
    "\xec\x75\x66\x5a\xb8\x41\x37\x2d\x57\xb0\x42\xb2\x7e\xf8\x9d\x8c";

//une clé publique
$bob_ecdh_public =
    "\xe8\x98\x0c\x86\xe0\x32\xf1\xeb\x29\x75\x05\x2e\x8d\x65\xbd\xdd" .
    "\x15\xc3\xb5\x96\x41\x17\x4e\xc9\x67\x8a\x53\x78\x9d\x92\xc7\x54";

$message_keypair = sodium_crypto_box_keypair_from_secretkey_and_publickey(
    $alice_ecdh_secret,
    $bob_ecdh_public
);

$plaintext = "Ce message secret ets seulement pour vos yeux";
$nonce = random_bytes(24);

// et finalement le cryptage à partir de la clé publique:
$ciphertext = sodium_crypto_box($plaintext, $nonce, $message_keypair);

Puis décryptage du message :

$received = sodium_crypto_box_open(
    $received_ciphertext,
    $received_nonce,
    $message_keypair
);

Filtered HTML

Plain text

CAPTCHA
Cette question permet de vérifier que vous n'êtes pas un robot spammeur :-)
 L     M   M  W     W  V     V  L    
L MM MM W W V V L
L M M M W W W V V L
L M M W W W V V L
LLLL M M W W V LLLL