Projet

Général

Profil

Actions

Feature #4148

fermé

Cryptage des mots de passe en SHA-512

Ajouté par Nicolas Eysseric il y a environ 11 ans. Mis à jour il y a environ 11 ans.

Statut:
Closed
Priorité:
Normal
Assigné à:
Catégorie:
Authentification
Début:
14/01/2013
Echéance:
% réalisé:

100%

Temps estimé:
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).

Mis à jour par Miguel Moquillon il y a environ 11 ans

  • Statut changé de Assigned à In progress...

Mis à jour par Miguel Moquillon il y a environ 11 ans

  • % réalisé changé de 100 à 0

Mis à jour par Miguel Moquillon il y a environ 11 ans

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).

Mis à jour par Miguel Moquillon il y a environ 11 ans

  • Statut changé de In progress... à Resolved
  • % réalisé changé de 0 à 100

Mis à jour par Nicolas Eysseric il y a environ 11 ans

  • Sujet changé de Cryptage des mots de passe en SHA-1 à Cryptage des mots de passe en SHA-512
  • Statut changé de Resolved à Closed

OK. Validé et intégré.

Actions

Formats disponibles : Atom PDF