Sur le Web, maintenant que le HTTPS s'est généralisé ou presque, la sécurité repose pour l'essentiel sur le serveur. L'idée de chiffrer les informations les plus confidentielles, telles que les mots de passe, côté client n'a pas rencontré de succès, un examen des codes sources des pages HTML et des scripts JavaScript ne permettant pas de s'assurer qu'ils ne soient pas modifiés lors de la prochaine session. Pourtant, avec un peu d'astuce, le défi peut être relevé.
Les révélations d'Edward Snowden et le scandale PRISM ont mis en évidence le fait que chiffrer les communications et les données enregistrées n'était pas suffisant pour assurer leur confidentialité. Des attaquants, la NSA en occurrence (mais pourquoi pas d'autres ?), sont en mesure de les lire directement dans la mémoire d'un serveur au moment où celui-ci les utilise en clair.
De ce constat ont fleuri des débats sur Internet : comment faire pour permettre à un serveur de vérifier un mot de passe sans le connaître ? Au premier abord, la solution paraît simple : effectuer le hashage du mot de passe côté client. Mais cela ne va pas sans poser quelques nouveaux problèmes : comment faire pour que ce hashage ne soit pas un simple remplacement du mot de passe ? Comment s'assurer que le traitement fait par le client n'est pas lui-même compromis par le serveur ?
Le premier est somme toute assez facile à résoudre : il suffit que le hashage varie à l'aide d'un...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première