Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Authentification à deux facteurs pour services Web par Alexandre Rimthong

Authentification à deux facteurs pour services Web par Alexandre Rimthong

OWASP Montréal - 24 octobre - Authentification à deux facteurs pour services Web

PRÉSENTATEUR PRINCIPAL: Alexandre Rimthong

RÉSUMÉ: Qu'est-ce que l'authentification à multiples facteurs et comment l'implanter dans un service web? La présentation fera d'abord un bref survol sur les principes d'authentification et les stratégies mises en place dans l'industrie. Par la suite, nous plongerons dans deux exemples concrets en utilisant des technologies gratuites ou peu coûteuses avec Google Authenticator et Yubikey.

BIO: Consultant TI dans une coopérative de solidarité se spécialisant dans le développement Web et la continuité des opérations de jour, amateur de sécurité et gladiateur des hackothons locaux la nuit. On le retrouve normalement à contribuer dans des projets de données ouvertes ou dans un projet de startup s'il n'est pas dans une compétition de sécurité ou de programmation. Présentement au sein de l'équipe OWASP Montréal, via l'équipe académique de l'UQAM.

QUAND: 24 octobre 2013 à 18h00

OÙ: Pavillon Président-Kennedy 201, Avenue du Président-Kennedy, J2X 3Y7 Local PK-1630

WEBCAST: http://www.youtube.com/watch?v=1h7Dp23zfpA

ÉQUIPE ACADÉMIQUE AGEEI-UQAM - http://www.ageei.org/
PROGRAMME:
18:00-18:15 Accueil
18:15-18:20 Mot de bienvenue par le leader du chapitre (Jonathan M.)
18:20-19:00 Présentation principale : Auth. à deux facteurs
19:00-19:15 Période de questions

https://github.com/bushibytes/owasp-multifacteurs

OWASP Montréal

October 24, 2013
Tweet

More Decks by OWASP Montréal

Other Decks in Programming

Transcript

  1. Ma paranoia, en tant que gars de sécu Précautions habituelles

    en mots de passe Two-factor ALL THE THINGS
  2. De quoi parlerons nous? Authentification à deux facteurs Comment le

    supporter dans des app web Comment rendre ça facile pour les utilisateurs
  3. Comment? Revision rapide sur l’auth à multiple facteurs Un OTP,

    avec solution physique Une solution TOTP gratuite Look at it in action Et bien sûr, du code porn non censuré (Démo Coffeescript Node-JS)
  4. Alors, qu’est-ce que l’auth à 2 facteurs En fait, 3

    facteurs possibles: Qqch qu’on CONNAIT Qqch qu’on POSSÈDE Qqch qu’on EST Pourquoi les combiner?
  5. Les mots de passe sont merdiques On les oublie Sont

    réutilisés Peuvent être devinés ou brute-forcés Souvent interceptés, parfois volés d’ une entreprise De plus en plus faciles à craquer!
  6. Je suis convaincu, allons-y! Solution OTP avec un appareil physique

    Solution TOTP avec un téléphone intelligent
  7. Yubikey Clée USB physique Génère un OTP Plusieurs modèles Facile

    à utiliser (détecté comme un clavier) Environ 25$
  8. Huh, c’est quoi un OTP? One time password! Généré selon

    des standards Yubico ont leur propre standard
  9. YUBI-OTP Décortiqué Ressemble à: ccccccbggtftcbvvdfcfbctrclbjnlcuhbuhjfufgurj Les 32 derniers: • ID

    privé • compteur • timestamp • compt session • num aléatoire • checksum Premier caractères sont ID public Chiffré AES-128, encodé ModHex
  10. Ce que le client (webapp) envoie https://api2.yubico.com/wsapi/2.0/verify?id=#{clientId}&otp=#{otp}&nonce=# {nonce} Requête http(s)

    simple avec: • Un client ID • OTP (complet) à authentifier • Un nonce (16-40 caractères)
  11. Pourquoi pas une solution TOTP gratuite? Google Authenticator Codes basés

    sur le temps Facile à lire et entrer Supporte: • iPhone • Android • Blackberry Image du play store
  12. GA génère des TOTP Une variante de HOTP, utilisant le

    temps comme un message. A brief history of time
  13. Algorithme HOTP Basé sur HMAC Hachage de clé privée, permet

    l’identification et l’ intégrité C : Facteur variable (compteur) K: Secret partagé (clé) HOTP(K,C) = Truncate(HMAC-SHA-1(K,C))
  14. Et puis TOTP? Change le facteur variable d’HOTP T: Facteur

    variable (temps) K: Secret partagé (clé) T: Temps présent / X X= Step (habituellement 30 secs) HOTP(K,T) = Truncate(HMAC-SHA-1(K,T))
  15. Base32? But what if I'm too lazy? :( Encodage lisible

    pour l’humain Différentes versions Google utilise RFC3548
  16. Qu’est-ce que le truncate? HOTP standard 6 caractères Derniers 4

    bits sont un décalage Prendre 4 bytes, commençant au décalage & avec 0X7FFFFFFF (convertir 31 bit unsigned int) Convertir en int, prendre les 6 derniers caractères.
  17. Modules! Plusieurs modules existent en PHP, Python, Ruby. Django a

    des modules qui supportent Yubikey et Google Authenticator. Le gem Devise pour Rails peut supporter Yubikey avec Yubikey_Authenticatable. Plusieurs libs qui supportent TOTP
  18. Demo! Application NodeJS Serveur Express Mémoire non persistante En Coffeescript

    Déconnage Litcoffee car je suis un hipster https://github.com/bushibytes/owasp-multifacteurs