Question:
Authentification Web - mot de passe vs fichier clé
user164863
2014-06-12 00:18:11 UTC
view on stackexchange narkive permalink

Il existe un site de messagerie Web d'entreprise (PHP + MySQL) pour un nombre limité d'utilisateurs qui sont des employés d'une entreprise travaillant à distance avec le portail Web de l'entreprise. Chaque utilisateur dispose d'un identifiant et d'un mot de passe.

Je pense remplacer les mots de passe texte habituels par un fichier clé, c'est-à-dire que l'utilisateur choisit n'importe quel fichier comme clé à sa première connexion, cela peut être un fichier texte ou même une image, la somme de contrôle de cela Le fichier est stocké dans la base de données et la prochaine fois qu'un tel utilisateur doit se connecter, il télécharge son fichier de clé au lieu de taper un mot de passe. Une telle authentification serait-elle plus sécurisée qu'une saisie de mot de passe? Je suppose qu'il est beaucoup plus difficile de trouver un fichier clé qu'un mot de passe.

Quel problème essayez-vous de résoudre? Essayez-vous de forcer les utilisateurs à avoir un mot de passe plus complexe et à utiliser le hachage d'un fichier comme nouveau mot de passe? Pourquoi ne pas implémenter une complexité minimale des mots de passe?
Je pensais à l'authentification multimédias: le mot de passe est quelque chose que l'utilisateur connaît et un fichier clé est quelque chose qu'il devrait posséder.
Bien sûr, je vais simplement télécharger ce fichier vidéo de 800 Mo à chaque fois que je me connecte ...
Six réponses:
Thomas Pornin
2014-06-12 00:30:00 UTC
view on stackexchange narkive permalink

Le principal problème avec un fichier clé est qu'il s'agit d'un fichier . En tant que tel, il est stocké quelque part, sur un support physique. Il sera copié avec les sauvegardes. Le fichier sera toujours là sur les disques durs jetés. Les utilisateurs copieront leurs fichiers sur plusieurs appareils afin de pouvoir se connecter à partir de tous ces appareils. Pour résumer, les fichiers fuient.

Inversement, un mot de passe tient dans un cerveau et n'a pas besoin d'être écrit nulle part; l'utilisateur le déplace naturellement avec lui; les mots de passe ne fuient pas vers les bandes de sauvegarde et les anciens disques. Enfin, la saisie de mot de passe fonctionne bien sur les téléphones mobiles, alors que le téléchargement de fichiers peut être plus complexe sur le plan technologique.

Ainsi, même si un fichier secret peut contenir beaucoup plus de secret qu'un mot de passe basé sur l'esprit, il a également tendance à être beaucoup moins "secret" et impliquer des problèmes d'utilisabilité. Dans l'ensemble, la méthode du "fichier secret" ne semble pas plus sécurisée, de manière générique, que les mots de passe.


Une autre façon de le voir: a " fichier secret "est équivalent, du point de vue de la sécurité, à un fichier texte contenant un gros mot de passe aléatoire, que l'utilisateur lit quand il veut se connecter (et éventuellement" tape "le mot de passe avec une copie&paste). Chaque argument contre l'écriture d'un mot de passe dans un fichier texte s'applique également à votre idée de "fichier secret".

Je ne suis en aucun cas un expert en sécurité, mais les mots de passe ne seraient-ils pas également sauvegardés? Je veux dire, Chrome remplit automatiquement mes mots de passe. Si je devais sauvegarder mon disque, mes mots de passe ne seraient-ils pas également copiés?
@11684 uniquement parce que vous avez choisi de stocker vos mots de passe dans le stockage local de Chrome (et peut-être aussi sur les serveurs de Google, en fonction de vos paramètres de synchronisation). Avec Chrome, vous avez la possibilité de ne pas stocker vos mots de passe ou de les stocker sous forme cryptée (par exemple avec un gestionnaire de mots de passe). Mais si un mot de passe était remplacé par un téléchargement de fichier, vous n'auriez plus cette option.
`un mot de passe tient dans un cerveau et n'a pas besoin d'être écrit nulle part; l'utilisateur le déplace naturellement avec lui; les mots de passe ne fuient pas vers les bandes de sauvegarde et les anciens disques «Bien», car cela vaut pour tous les gestionnaires pwd modernes.
David
2014-06-12 00:44:56 UTC
view on stackexchange narkive permalink

Si vous souhaitez une authentification multifactorielle (comme en témoigne votre commentaire: "Je pensais à une authentification multimédia: le mot de passe est quelque chose que l'utilisateur connaît et un fichier clé est quelque chose qu'il devrait posséder"), il y a plusieurs options:

  1. Mot de passe + certificat côté client (nécessite une infrastructure PKI et un certificat difficile à faire pivoter. Difficile d'accéder à la messagerie Web depuis un autre appareil, mais cela peut être un avantage.)
  2. Mot de passe + OTP . Vous pouvez soit émettre des appareils HOTP (style YubiKey), des appareils TOTP (style jeton RSA) ou utiliser un appareil TOTP logiciel (comme Google Authenticator). Il existe plusieurs bibliothèques implémentant TOTP pour PHP, telles que http://www.multiotp.net/website/index.php?language=en.

Keyfiles sont faciles à voler, ou vous pouvez faire en sorte que les utilisateurs commettent des erreurs comme modifier leur fichier de clés (imaginez s'ils ont choisi un document qu'ils ont ensuite édité!), supprimer leur fichier de clés, etc. Ce n'est pas une approche très conviviale et nécessite le transfert du fichier entier à chaque connexion. De plus, les fichiers clés n'offrent aucune protection contre les logiciels malveillants ou les attaques MITM.

pjc50
2014-06-12 14:25:42 UTC
view on stackexchange narkive permalink

Personne n'a mentionné la manière "officielle" de faire cela, en utilisant les fichiers de certificat client. Ceux-ci ne sont pas envoyés au serveur mais participent à un processus cryptographique. Vous pouvez même les stocker sur des cartes à puce, auquel cas ils ne peuvent être volés par des logiciels malveillants sur le PC client.

L'inconvénient est que l'interface utilisateur est maladroite et qu'elle n'est pas facile à configurer .

(Terme de recherche utile: "PKCS11")

Dans mon ancien travail, nous avions des cartes cryptographiques. Il y avait une configuration délicate effectuée par les administrateurs, mais c'était surtout simple pour les utilisateurs.
guntbert
2014-06-12 00:33:53 UTC
view on stackexchange narkive permalink

Je vois au moins 2 points contre cette idée:

  1. les mots de passe / phrases de passe existent idéalement dans la mémoire de l'utilisateur et nulle part ailleurs, alors que vos "fichiers clés" doivent existent sur un stockage et par conséquent peuvent être volés.
  2. Vous ne tenez pas compte du fait que les utilisateurs ne sont pas toujours assis devant le même ordinateur - ils devraient les transporter fichiers - plus de danger
Nzall
2014-06-12 14:30:11 UTC
view on stackexchange narkive permalink

Un autre problème avec l'utilisation d'un fichier est qu'un fichier est techniquement volatile en ce que vous n'êtes pas assuré qu'il restera le même tant qu'il sera utilisé. Les fichiers peuvent être corrompus ou modifiés sans que vous ne vous en rendiez compte ou que vous ne vous en rendiez compte. La perte de données est également un risque: si vous perdez l'accès à l'emplacement où le fichier est stocké (ordinateur portable volé, panne du disque dur, faute de frappe PowerShell / Bash / ligne de commande), vous ne pouvez plus accéder au système. Un mot de passe ne présente pas ces problèmes. il ne réside pas sur votre système de fichiers, donc tout problème avec votre système de fichiers ne l’affectera pas.

eof0100
2014-06-12 03:19:20 UTC
view on stackexchange narkive permalink

Comme tout le monde l'a dit, les deux principaux problèmes sont: 1. Stocker sa clé sur un support de disque dur, toujours un risque de sécurité car quelqu'un peut voler même après que le disque dur a été formaté. Les utilisateurs copieront la clé d'un système à un autre car nous savons pertinemment que personne n'utilise un système pour se connecter. Ce qui augmentera le risque de compromission du fichier clé. Avoir un système avec un fichier clé est un risque suffisant, imaginez 3-4 systèmes avec une copie de la clé, maintenant quelles sont les chances que l'un d'entre eux soit compromis? le risque est bien là.



Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 3.0 sous laquelle il est distribué.
Loading...