Project

General

Profile

Actions

Feature #4148

closed

Cryptage des mots de passe en SHA-512

Added by Nicolas Eysseric almost 9 years ago. Updated almost 9 years ago.

Status:
Closed
Priority:
Normal
Category:
Authentification
Start date:
01/14/2013
Due date:
% Done:

100%

Estimated time:
Livraison en TEST:
Livraison en PROD:

Description

Actuellement les mots de passe sont stockés et cryptés selon l'algorithme MD5.
Afin de sécuriser un peu plus ces mots de passe, ils seront cryptés selon l'algorithme SHA-1.

Une attention toute particulière doit être portée à la compatibilité ascendante.
L'idéal étant que des mots de passe existants (MD5) puissent cohabiter avec les nouveaux (SHA-1).

Actions #1

Updated by Miguel Moquillon almost 9 years ago

  • Status changed from Assigned to In progress...
Actions #2

Updated by Miguel Moquillon almost 9 years ago

  • % Done changed from 100 to 0
Actions #3

Updated by Miguel Moquillon almost 9 years ago

Attention, les fonctions de hachage cryptographiques tel que MD5, SHA-1 et SHA-2 (SHA-256/512) ne sont pas appropriés pour chiffrer les mots de passe.
En général, ce sont des variations de ces algorithmes qui sont utilisées pour crypter les mots de passe en faisant usage de techniques additionnelles telle que le "salting" ou le "stretching". Ainsi, actuellement, Silverpeas utilise en fait une variante connue de la méthode MD5 qui a été éprouvée avec les systèmes Unix.

Pour des raisons de sécurité, étant donné que la faiblesse de l'algorithme SHA-1 a été démontrée en 2005 (en utilisant des collusions), et conformément aux recommandations des experts en terme de sécurité des mots de passe, il a été décidé de choisir un algorithme plus approprié parmi celles-ci:
  • PBKDF2 avec SHA-1 : c'est, en quelque sorte, un conteneur de fonction de hachage qui applique le salting et le stretching au chiffrement SHA-1 ici. Elle est fourni en standard avec Java.
  • PBKDF2 avec SHA-256 ou SHA-512 : même chose que précédemment mais avec une des deux fonctions de hachage SHA-2. Elle a l'avantage d'être plus robuste que celle précédente du fait de l'utilisation d'un algorithme de la famille SHA-2. Néanmoins elle n'est pas fourni en standard avec Java et nécessite donc l'usage d'une librairie tierce (GNU Crypto par exemple).
  • une variation éprouvée de SHA-2 pour les mots de passe. On choisirait dans ce cas ci une variation du SHA-512. Il existe une adaptation en Java de cette variation. L'avantage de celle-ci est que les empreintes générées sont conformes au modèle utilisé avec la variation du MD5.

Après réflexion, j'ai décidé de rester conforme finalement au modèle d'empreinte jusque là utilisé dans Silverpeas et donc de choisir la troisième solution.

De plus, après discussion, il a été décidé que, pour des raisons de simplicité de gestion mais surtout de sécurité, une seule méthode de chiffrement des mots de passe sera utilisée dans Silverpeas pour l'ensemble des utilisateurs. En conséquence, les algorithmes anciens seront dépréciés et les utilisateurs seront invités à modifier leur mot de passe de façon à ce qu'il soit chiffré avec le nouvel algorithme (ce dernier point sera traité par la feature #4152).

Actions #4

Updated by Miguel Moquillon almost 9 years ago

  • Status changed from In progress... to Resolved
  • % Done changed from 0 to 100
Actions #5

Updated by Nicolas Eysseric almost 9 years ago

  • Subject changed from Cryptage des mots de passe en SHA-1 to Cryptage des mots de passe en SHA-512
  • Status changed from Resolved to Closed

OK. Validé et intégré.

Actions

Also available in: Atom PDF