web-dev-qa-db-fra.com

Expiration du mot de passe et conformité (ISO, NIST, PCI, etc.)

Je suis assez confus quant à l'état actuel en 2017 pour l'idée d'expiration/rotation de mot de passe, en particulier en ce qui concerne les certifications de sécurité comme ISO, PCI, etc. je continue de lire que l'expiration du mot de passe n'est pas très utile , mais j'ai trouvé plusieurs diapositives où il semble toujours faire partie des politiques/règles (pour ISO et PCI).

Il y a une partie spécifique qui me semble un peu artificielle, et c'est (en supposant que vous avez une politique de mot de passe solide en place, que nous avons déjà) la nécessité de stocker les anciens hachages de mot de passe dans votre base de données pour empêcher les utilisateurs de définir un ancien mot de passe à l'expiration du courant.

J'ai toujours (à tort) supposé que l'expiration approchait du problème en utilisant un angle social, un moyen de dire aux utilisateurs que les mots de passe étaient importants. Le nouveau mot de passe devait donc être différent de l'actuel, mais sans vérifier les enregistrements antérieurs.

J'ai eu l'intuition que ce n'était pas sûr, mais il semble que les grandes entreprises l'utilisent pour fournir des conseils sur l'interface utilisateur (bien que je pense qu'il est juste de supposer que ces organisations peuvent avoir un bien meilleur contrôle de leur sauvegardes que les petites entreprises, où les erreurs pourraient être plus probables).

J'ai lu n article dans lequel il semblerait que le NIST n'applique plus l'expiration du mot de passe. Quoi qu'il en soit, maintenant que mon système va avoir une expiration de mot de passe en raison d'exigences, je pensais qu'il serait logique de correspondre, dans une certaine mesure, aux exigences présentes dans ces certifications.

  • Quel est l'état d'expiration/rotation des mots de passe dans ces certifications (ISO, PCI, etc.) en 2017?. En fait-il toujours partie?.

  • Cible-t-il/mentionne-t-il un nombre/une période d'anciens mots de passe que vous devez stocker?.

Je n'ai accès à aucune documentation originale car nous ne sommes dans aucun processus d'adoption, mais il serait bon de le savoir même de manière générale.

8
Jacob

la version actuelle de PCI DSS est 3.2 , et dans la section 8.2.4, elle oblige les utilisateurs à changer leurs mots de passe tous les 90 jours. La section 8.2.5 exige que les mots de passe ne pas être le même que l'un des quatre mots de passe précédents (notez qu'il ne prescrit pas comment cela doit être accompli; la norme n'indique pas spécifiquement que le "stockage des hachages" est requis.)

Cependant, ce document n'est clairement pas basé sur une sécurité par mot de passe de pointe car la section 8.2.3 du même document exige que les mots de passe soient d'une "longueur minimale d'au moins sept caractères" et comprennent "des caractères numériques et alphabétiques". Les ordinateurs modernes peuvent exécuter un logiciel de craquage de mot de passe qui forcera un mot de passe alphanumérique à 7 caractères en quelques secondes. En raison de cette seule exigence, il est difficile de croire que leurs conseils sur la sécurité des mots de passe soient basés sur des recherches, voire utiles.

Cela dit, notre connaissance que cette norme n'est pas assez bonne ne signifie pas que nous pouvons l'ignorer. Quoi qu'il en soit, nous sommes coincés avec une politique de rotation de 90 jours, qu'elle offre ou non une défense utile contre un attaquant, ou qu'elle expose ou non nos utilisateurs à des inconvénients ou à des risques supplémentaires, car nous sommes contractuellement obligés de respecter le PCI normes. Au lieu de cela, comme nous sommes conscients que la norme est inadéquate à cet égard, ce que nous devons faire est de mettre en œuvre une politique de sécurité responsable dans nos organisations qui résout les problèmes connus (nécessitant un mot de passe de 14 caractères qui répond à l'autre projet de NIST recommandations en 5.1.1.2, par exemple) qui répond toujours à toutes les exigences du DSS. Avoir une politique de sécurité organisationnelle et la suivre est l'exigence 12 du DSS, et c'est en fait une très bonne.

12
John Deters

Pour répondre d'abord à vos questions, d'un point de vue ISO 27001, il ne pas prescrit quelle devrait être votre durée d'expiration, ni ne spécifie le nombre d'anciens mots de passe que vous devez conserver.

Au lieu de cela, il fournit des directives génériques sur la gestion des mots de passe. Par souci de conformité et pour satisfaire les auditeurs, il est préférable d'avoir une durée d'expiration du mot de passe ne dépassant pas 90 jours, et de conserver au moins 2 derniers mots de passe pour empêcher leur réutilisation.

ISO 27k1 mentionne explicitement que nous devons " conserver un enregistrement des mots de passe précédemment utilisés et empêcher leur réutilisation " mais elle ne précise pas combien d'entre eux doivent être conservé.

Le contrôle et l'implémentation entiers mentionnent quelque chose comme ça.

Contrôle A.9.4.

Le système de gestion des mots de passe doit être interactif et garantir des mots de passe de qualité.

Selon ISO 27001, un système de gestion de mot de passe devrait (avec mes propres commentaires ajoutés).

  • maintenir la responsabilité en imposant l'utilisation des ID utilisateur et mots de passe individuels.

  • Les utilisateurs doivent pouvoir sélectionner et modifier leur mot de passe chaque fois que cela est nécessaire, ce qui signifie essentiellement que les utilisateurs ont le contrôle sur leur mot de passe.

  • inclure une procédure de confirmation pour permettre les erreurs de saisie lorsque les utilisateurs font une erreur lors de la connexion.

  • appliquer des mots de passe de bonne qualité, qui devraient idéalement être définis dans votre politique de mot de passe et appliqués dans votre application.

  • forcer les utilisateurs à changer leur mot de passe lors de leur première connexion, sans quoi il est peu probable que les utilisateurs changent leur mot de passe par défaut. La mise à jour forcée du mot de passe doit également être implémentée lorsqu'elle est réinitialisée par les administrateurs.

  • appliquer des changements de mot de passe réguliers, qui devraient idéalement être de 90 jours ou moins. Les auditeurs semblent préférer 30 jours, mais c'est peut-être trop.

  • conserver les mots de passe précédemment utilisés et empêcher leur réutilisation, mais il n'est pas spécifié combien de mots de passe doivent être enregistrés.

  • ne pas afficher les mots de passe à l'écran lors de la saisie, ce qui est logique.

  • stocker les données de mot de passe séparément des données du système d'application, même si je ne sais pas dans quelle mesure cela est pratique à mettre en œuvre du point de vue de l'architecture.

  • stocker et transmettre des mots de passe sous forme protégée, comme SSL pour les applications en ligne.

2
Shailendra Singh