web-dev-qa-db-fra.com

Existe-t-il une alternative à l'envoi d'un mot de passe unique par SMS?

Je travaille sur un système plus petit où il sera nécessaire d'entrer un mot de passe à usage unique (OTP, à ne pas confondre avec un tampon à usage unique) pour télécharger des fichiers sensibles qui seront livrés à l'utilisateur.

L'idée principale était d'envoyer un OTP via SMS dans un délai prédéfini.

Mais comme le SMS n'est pas suffisamment sécurisé, j'ai commencé à penser à toute autre alternative pour fournir un OTP à mes utilisateurs.

Je peux suggérer à mes utilisateurs d'utiliser Signal puis de leur fournir des informations, mais dans ce cas, je crains que ce ne soit trop compliqué pour eux.

Une idée ou devrais-je suivre mon idée principale?

11
Mirsad

Pourquoi ne pouvez-vous pas utiliser TOTP ou HOTP, qui est standard et pris en charge par la plupart des applications d'authentification?

Lorsque les gens s'inscrivent à votre service, ils doivent inscrire leur application d'authentification en scannant un code QR qui contient la graine secrète utilisée pour générer des codes.

Lors des visites suivantes, le site les invite à saisir les codes générés par l'application, sans aucun accès au réseau car les codes sont générés localement sur l'appareil.

En prime, puisque vous utilisez des protocoles standard, vos utilisateurs peuvent déjà avoir une application d'authentification compatible installée, et sinon, pourraient les pousser à utiliser l'application pour plus de services (leur compte Google, etc.). Au final, les utilisateurs sont plus sécurisés et tout le monde y gagne.

20
André Borie

Puisque la question concerne les idées:

Appel vocal automatisé avec PIN vérification du code avant de préciser l'OTP.

  • Très facile pour les utilisateurs inexpérimentés - ne nécessite pas de logiciel supplémentaire, des instructions données en temps réel, par exemple:

    Bonjour, c'est le système de vérification de mirsad. Veuillez entrer votre PIN pour entendre le mot de passe pour votre téléchargement

    Merci, votre mot de passe est ....., veuillez l'utiliser dans les cinq minutes. N'oubliez pas, ne donnez ce mot de passe à personne d'autre!

  • Nécessite que les utilisateurs se souviennent du code PIN

  • Plus sûr que SMS - empêche la récupération passive du mot de passe (un attaquant ne peut pas lire à partir de l'écran d'un appareil sans surveillance)

  • Nécessite des mesures pour empêcher l'espionnage, par exemple:

    • côté écoute produit des tonalités audibles aléatoires pendant PIN entrée et récupère le code fourni par l'utilisateur en calculant la différence (ma banque le fait)

    • demandez à l'utilisateur de taper un ensemble différent de chiffres aléatoires à partir d'un code PIN plus long, c'est-à-dire "appuyez sur le 6ème chiffre de votre code PIN, appuyez sur le 3ème chiffre de votre code PIN" (mon autre banque le fait)

6
techraf

Il est peu probable que les vulnérabilités dans A5/0 et A5/1 soient un problème majeur pour l'authentification d'un petit système avec quelques centaines de clients.

Cependant, si vous voulez éviter d'utiliser le GSM comme canal de livraison, vous pouvez avoir un OTP basé sur le temps ( TOTP ) en utilisant Google Authenticator. Vous devez créer un secret pour chaque utilisateur de votre serveur, qu'il/elle peut scanner avec l'application d'authentification Google. Un exemple de comment cela fonctionne est ici

3
Jedi

Comme mentionné précédemment, TOTP et HOTP sont tous deux des normes qui existent comme alternatives à l'envoi de codes à usage unique par SMS.

  • TOTP sont des codes temporels et sont souvent disponibles à l'aide d'applications telles que Google Authenticator , ou en tant que style RSA SecurID fobs ou cards .

  • HOTP est basé sur HMAC et est souvent disponible via un logiciel de génération de jetons, y compris Google Authenticator et des plates-formes similaires.

  • Il y a aussi la norme OTP implémentée par Yubico dans les premiers modèles Yubikeys, où le dongle USB matériel a émulé un clavier afin d'entrer un mot de passe unique extrêmement long.

Et enfin, si nous voulons proposer des options qui ne sont pas strictement OTP, mais qui peuvent agir comme un deuxième facteur:

  • U2F, une norme ouverte de second facteur (signifie [~ # ~] u [~ # ~] niverseal 2 nd [~ # ~] f [~ # ~] acteur). Il repose sur un mécanisme de défi-réponse avec un échange de clés se produisant au moment de l'enregistrement du matériel. Les yubikeys sont probablement les fobs U2F les plus populaires actuellement.

  • Parce qu'elles reposent également sur un mécanisme d'échange de clés et de réponse aux défis, les clés SSH pourraient en théorie être utilisées comme deuxième facteur lors de l'authentification. Cependant, cette méthode n'est pas largement utilisée.

  • Les clés PGP peuvent également être utilisées à cette fin - et comme les clés SSH, les applications où PGP est utilisé comme deuxième facteur sont, à ma connaissance, actuellement limitées.

3
Jules

Je suis d'accord avec @ André-borie. Mais au cas où vous insisteriez pour envoyer un code d'authentification à l'utilisateur, vous voudrez peut-être jeter un œil à l'application pushover. J'ai vérifié avec Telegram mais je pense que Signal est similaire. L'API Telegrams ne permet pas d'initier une communication avec un appareil.

Mais vous pouvez jeter un œil au pushover.

2
cornelinux