8
votes

vérificateur de force de mot de passe iOS

À la recherche de suggestions sur un vérificateur de force de mot de passe pour l'objectif-c. J'ai fait des googles et j'ai trouvé des coups de vue, ni ici. Je pourrais écrire une place mais pensais que je vérifierais ici d'abord - quelqu'un a-t-il mis en œuvre un?


5 commentaires

Je préfère éviter de stocker des mots de passe utilisateur dans la mesure du possible.


D'accord - si dans ce cas, il est inévitable. Je prévois de hacher et de suivre d'autres bonnes pratiques. J'aimerais fournir une commodité à mes utilisateurs en ayant un mètre de mot de passe qui vérifie activement leur mot de passe tel qu'il est entré.


Avez-vous un hasch à l'esprit?


Non, que recommandes-tu?


Mon vérificateur de force de mot de passe simple en C peut être utile si vous essayez de construire un: GITUB.COM/HB20007/GISCELANNE-PROGRAMES/TREE/MASTER/...


3 Réponses :


7
votes

Je ne suis que conscient de deux mesures de mot de passe demi-décentes estimateurs : ZXCVBN (à Coffeescript, compile JavaScript) et Passfault (en Java, semble être conçu comme un WebApp).

(En fait, c'est un léger mensonge; il y en avait un dans une thèse de doctorat que je lisais un moment de retour, mais je ne suis pas sûr d'où je mets le lien.)

Tous les autres mots de passe "Force" que le vérificateur que j'ai examiné dans tous les détails a été imparfait, souvent profondément imparfait (par exemple, "Haystacks" de GRC suppose une bruteforce très muette; même des craquelins de mot de passe open-source sont beaucoup plus sophistiqués) - L'autre jour, le mètre de force de mot de passe d'un grand schéma de cartes de fidélité britannique m'a dit que "1AA" était un "bon" mot de passe ("bon" est la note la plus élevée).

(l'autre problème est que la force de mot de passe requise dépend de la manière dont il est utilisé: un mot de passe 48 bits comme "W1MCJ6B1" est bon pour un compte Google mais incroyablement faible en tant que Windows / Mac Mot de passe de connexion ou une phrase secrète WPA.)

Je ne pense pas que vous trouviez probablement un décent dans l'objectif-C, étant donné leur rareté. Si vous finissez par écrire un, j'ai quelques suggestions:

  • écrivez-le en C (ou peut-être C ++). Cela ne vous coûtera pas beaucoup et sera beaucoup plus portable; Objective-C À peu près des liens avec OS X et iOS de la même manière que .NET vous attache à Windows (c'est-à-dire en théorie, vous pouvez porter le temps d'exécution à d'autres plates-formes; en pratique, il sera beaucoup moins utilisé en dehors de ces plates-formes). Pour augmenter l'utilisation, vous pouvez ajouter une API Objective-C.
  • Décidez de quoi faire sur les caractères non-ASCII (et les langues non anglaises en général). Il y a essentiellement deux options:
    • les interdire (les gens y sont habitués, non?)
    • Carte à ASCII pour l'estimation de la force , par ex. En décapant des accents (voir NswidthinsensitivesRearch et NsdiagriticinsensitivesRearch ) et sautant à travers des cerceaux pour mapper ı / © / β à I / I / SS. Il y a aussi kcfstringtransformtolatin qui promet de translithaber la plupart des scripts à l'alphabet latin. Ce bit n'a pas besoin d'être en C car il dépendra fortement des bibliothèques Unicode, bien que vous puissiez utiliser l'ICU.

      Enfin, l'estimation de la force du mot de passe est un problème difficile. Devinez la force de 2JMJ7L5RSW0YVB_VLWAYKK_YBWK . Demandez maintenant à Google.


2 commentaires

Information phénoménale - Grands liens. Merci! Je comprends maintenant comment les estimateurs de mots de passe en profondeur et subjectifs sont. Je ferai un peu de lecture sur le sujet et de voir si je peux trouver un moyen heureux pour mon projet - heureusement, je ne traite pas d'informations d'utilisateur très sensibles!


Mots de passe sont "Informations utilisateur très sensibles" - La réutilisation du mot de passe est rampeuse! IMO, c'est la plus grande raison d'éviter les mots de passe dans la mesure du possible: un mot de passe fuite DB est facilement utilisé pour attaquer les comptes de messagerie des utilisateurs, et il y a une limite à la quantité de mots de passe vous protégera (car ils doivent être assez rapides pour se produire sur un serveur).



2
votes

J'ai créé une méthode à cette fin. Je sais que c'est une mauvaise question, mais je pense que c'est réel pour le moment, alors voici l'URL du code:

https://github.com/ruben-samsonyan/passwordstrengthchecker/ Blob / Master / PasswordChecker.m


0 commentaires

1
votes

Mattt Thompson a créé une bibliothèque pour cela (voir Cette réponse ). C'est la meilleure option que j'ai trouvée.

https://github.com/mattt/navajo


0 commentaires