Oauth : un protocoledautorisation quiauthentifie ?Maxime FéroulDirecteur Technique / KYOS ITSECURITY                      ...
2# who -m Ingénieur Informatique & Télécom (ESIGETEL /  France) 15 ans dexpérience : web-hosting & sécurité Co-fondateu...
3Agenda Contexte : Social Login Oauth 2.0 : Sous le capot Implicit Flow : ou Implicit Flaw ? Mitigation : La bonne impléme...
4Perturbation atmosphérique...       Poursuite de la décentralisation des SI       Utilisation de plateformes “tierces”,...
...et toujours le même “Graal“                     SIMPLICITÉ                    UTILISATEUR,                  FACILITÉ DE...
6Emergence du “Social Login“   Utiliser les services dauthentification   dune plateforme de réseau social
Social Login – Pourquoi ? Pour lutilisateur   –   Moins de login & mot de passe   –   Meilleure gestion de ses identités ...
Social Login – Pourquoi ? Pour le fournisseur de  service   –   Enregistrement simplifié   –   Information plus fiable   ...
Social Login – Comment ? Etablir un « lien de confiance », fédérer les identités Déléguer  lauthentification et  lautori...
Standards : Maelström ?                                                                                                 Co...
Oauth 2.0 – Emergence Facebook, Google, Salesforce,...         REST, Simplicité, “designed for the web...”
12Agenda Contexte : Social Login Oauth 2.0 : Sous le capot Implicit Flow : ou Implicit Flaw ? Mitigation : La bonne implém...
13           Password anti-pattern Bonjour BLOG, jaimerais aussi que tu  publies mes “posts” sur Facebook ?               ...
14Oauth 2.0 – Framework dautorisation         Permettre à des applications         et des fournisseurs de services        ...
Oauth 2.0 – Rôles     Resource        Client            Authorization          Resource      Owner                        ...
16               Oauth 2.0 – Principe                   2. Sauthentifie et autorise                      lapplication (cli...
17        Oauth 2.0 – Spécification Client type & profile   –   Confidential, public & WebApp, user agent, native Endpoi...
18 Oauth 2.0 – Question de départ   Oauth : un protocole dautorisation qui authentifie ? Ok pour le password anti-pattern...
19Oauth 2.0 – Comment authentifier ?      1.) BLOG demande à BORIS lautorisation      daller récupérer chez Facebook les d...
20Agenda Contexte : Social Login Oauth : Sous le capot Implicit Flow : ou Implicit Flaw ? Mitigation : La bonne implémenta...
21     Oauth 2.0 – Implicit Flow              RECHERCHE DE LA              SIMPLICITÉ   Délivrance « directe » du token d...
22Exemple – Authentification Facebook        Sign in via        Facebook     Redirect vers Facebook         OAuth Implicit...
23        Access Token – Attention !« ...This specification does notprovide any methods for theresource server to ensure t...
24   Implicit Flow – Usurpation   AccessToke                                                     Auth.+ Auto.   nGet/ninja...
25La « spec. » nous avais prévenu...  «... Authenticating Resource Owners to clients is out of  scope for this specificati...
26 Est ce que cela nous concerne ?     Nest ce pas plutôt un « problème » pour facebook, google, et consorts ? Oui si nou...
27Agenda Contexte : Social Login Oauth : Sous le capot Implicit Flow : ou Implicit Flaw ? Mitigation : La bonne implémenta...
Mitigation – Implicit Flow Restreindre laudience / valider le token daccès avant  dauthentifier   –   Signed request (Fac...
29Mitigation – Server Side Flow     Sign in via     Facebook   Redirect vers Facebook      OAuth Authorization            ...
30   Mitigation – OpenId Connect            Une extension de Oauth 2.0             UserInfo endpoint               –   Fo...
31Conclusion Un protocole dautorisation ... … mais qui peut servir à authentifier ... … à condition de limplémenter cor...
32Questions? Principales Sourceshttp://www.thread-safe.com/2012/01/problem-with-oauth-for-authentication.html      by Joh...
33Merci/Thank you! Contact:  maxime.feroul@kyos.ch  http://www.kyos.ch  Slides:     http://slideshare.net/ASF-WS/presenta...
Prochain SlideShare
Chargement dans…5
×

ASFWS 2012 - OAuth : un protocole d’autorisation qui authentifie ? par Maxime Feroulcole_qui_authentifie

1 747 vues

Publié le

“Sign-in using your facebook, google, linked-in or twitter account…”
Porté notamment par les grands acteurs des réseaux sociaux, Oauth est devenu un standard difficilement contournable dans le paysage de la fédération d’identité.
Authentifier c’est s’assurer qu’une entité est bien celle qu’elle prétend être. Oauth, quant à lui, se définit comme un “framework” d’autorisation permettant à des applications d’accéder aux données d’un utilisateur en lui demandant sa permission.
Pourtant un usage important (Sign-in) semble être l’authentification…

Simple question de sémantique ? Ou réelle subtilité, qui mal comprise, pourrait nous conduire à de mauvaises implémentations ?

En ayant a cœur de répondre à cette question, cette présentation propose de regarder “sous le capot” de ce protocole. De Oauth 1.0 a Oauth 2.0 comment est-ce que cela fonctionne ? est-ce vrai qu’un token d’accès Oauth peut être réutilisé pour “usurper une identité” ? Et par rapport à SAML & OpenId : est-ce différent ou complémentaire ?

Publié dans : Technologie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
1 747
Sur SlideShare
0
Issues des intégrations
0
Intégrations
10
Actions
Partages
0
Téléchargements
49
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

ASFWS 2012 - OAuth : un protocole d’autorisation qui authentifie ? par Maxime Feroulcole_qui_authentifie

  1. 1. Oauth : un protocoledautorisation quiauthentifie ?Maxime FéroulDirecteur Technique / KYOS ITSECURITY Application Security Forum - 2012 Western Switzerland 7-8 novembre 2012 - Y-Parc / Yverdon-les-Bains https://www.appsec-forum.ch
  2. 2. 2# who -m Ingénieur Informatique & Télécom (ESIGETEL / France) 15 ans dexpérience : web-hosting & sécurité Co-fondateur de Kyos IT Security (2002) : 10 ans ;) – Pen-testing & intégration & IAM – Recherche EU : SEINIT, DEMONS,... – Spacecom : le wifi est correct ? Domaines de prédilection : en ce moment J2ee & IAM
  3. 3. 3Agenda Contexte : Social Login Oauth 2.0 : Sous le capot Implicit Flow : ou Implicit Flaw ? Mitigation : La bonne implémentation
  4. 4. 4Perturbation atmosphérique...  Poursuite de la décentralisation des SI  Utilisation de plateformes “tierces”, en dehors de son domaine de sécuritéNouveaux défis pourle contrôle daccès Identités Multiples, BYOD, “Information and user centric”, ...
  5. 5. ...et toujours le même “Graal“ SIMPLICITÉ UTILISATEUR, FACILITÉ DE MISE EN OEUVRE & SÉCURITÉ
  6. 6. 6Emergence du “Social Login“ Utiliser les services dauthentification dune plateforme de réseau social
  7. 7. Social Login – Pourquoi ? Pour lutilisateur – Moins de login & mot de passe – Meilleure gestion de ses identités • Facebook → sites perso., linkedin → sites pro., … • Meilleur « contrôle » : révoquer les applications
  8. 8. Social Login – Pourquoi ? Pour le fournisseur de service – Enregistrement simplifié – Information plus fiable – Plus dinformation !
  9. 9. Social Login – Comment ? Etablir un « lien de confiance », fédérer les identités Déléguer lauthentification et lautorisation Echanger des informations sur lidentité
  10. 10. Standards : Maelström ? Connotation “web Framework / Oauth 2.0 / end-user” message Web Service Web Centric API Délégation de lautorisation Global & très modulaire WS-Security, WS- Federation, WS- UserConnotation Trust,... SOAP, SAML Centric REST,“Microsoft & XML assertion UMA JSONIBM” Framework / service “couche identité” au didentité dessus de OAuth 2.0 Profile, Authentification, protocol, session, attributs Autorisation bindings,... didentité,... Authentification, SSO, Federation Connotation “Standard Entreprise”
  11. 11. Oauth 2.0 – Emergence Facebook, Google, Salesforce,... REST, Simplicité, “designed for the web...”
  12. 12. 12Agenda Contexte : Social Login Oauth 2.0 : Sous le capot Implicit Flow : ou Implicit Flaw ? Mitigation : La bonne implémentation
  13. 13. 13 Password anti-pattern Bonjour BLOG, jaimerais aussi que tu publies mes “posts” sur Facebook ? Pas de problème, donne moi ton login et ton mot de passe Facebook, je my connecterais en ton nom pour mettre à jour ton profil...Tu mexcuses mais jai moyennement confiance en toi BLOG, tu ne peux pas faire autrement que stocker mes “crédentiels” ?
  14. 14. 14Oauth 2.0 – Framework dautorisation Permettre à des applications et des fournisseurs de services d’accéder à des données d’un utilisateur en lui demandant sa permission.
  15. 15. Oauth 2.0 – Rôles Resource Client Authorization Resource Owner Server ServerPar exemple : Un internaute Utilise un blog En sauthentifiant via Facebook et pour également publier ses « posts » sur son profil
  16. 16. 16 Oauth 2.0 – Principe 2. Sauthentifie et autorise lapplication (client) Authorization Server 3. Délivre le token1. Accède au daccès Délègue service lautorisation Resource Client Server 4. Accède à la ressource protégée
  17. 17. 17 Oauth 2.0 – Spécification Client type & profile – Confidential, public & WebApp, user agent, native Endpoints – Authorization, Token, Redirection Plusieurs types de « jeton dautorisation » – Authorization Code, Implicit, Resource Owner Password Credentials, Client Credentials – Des requêtes et réponses pour chaque type
  18. 18. 18 Oauth 2.0 – Question de départ Oauth : un protocole dautorisation qui authentifie ? Ok pour le password anti-pattern et lautorisation – Mais alors quel rapport avec le social login ? – Comment “authentifier” ? Authentifier cest obtenir des attributs didentité et prouver/valider quils sont justes Oauth permet daccéder à des données didentité !
  19. 19. 19Oauth 2.0 – Comment authentifier ? 1.) BLOG demande à BORIS lautorisation daller récupérer chez Facebook les données relatives à son identité pour lauthentifier. Profil Boris Nom Prénom Email Login 2.) BORIS sauthentifie chez Facebook et autorise BLOG à lire ses données didentité.
  20. 20. 20Agenda Contexte : Social Login Oauth : Sous le capot Implicit Flow : ou Implicit Flaw ? Mitigation : La bonne implémentation
  21. 21. 21 Oauth 2.0 – Implicit Flow RECHERCHE DE LA SIMPLICITÉ Délivrance « directe » du token daccès Moins déchanges Application mobile (native) Application JavaScript (user-agent)
  22. 22. 22Exemple – Authentification Facebook Sign in via Facebook Redirect vers Facebook OAuth Implicit request AppId, redirectUri(blog.jsp) Authentificatio n OAuth Implicit response + Autorisation Redirect vers redirectUri(blog.jsp) de AppId +AccessToken(xxxx) Get /blog.jsp?AToken=xxxx Get /graphAPI?AToken=xxxx JSON object userId=Boris Welcome Boris !
  23. 23. 23 Access Token – Attention !« ...This specification does notprovide any methods for theresource server to ensure thatan access token presented toit by a given client was issuedto that client by theauthorization server. »Source : draft-ietf-oauth-v2-31
  24. 24. 24 Implicit Flow – Usurpation AccessToke Auth.+ Auto. nGet/ninjagame.jsp?ATo Getken=ABXYZ /graphAPI?AToken=ABXYZ userId=BorisWelcome on NinjaGameBoris ! Get /blog.jsp?AToken Get Réutilisation =ABXYZ /graphAPI?AToke du token ! n=ABXYZ userId=Boris Welcome Boris !
  25. 25. 25La « spec. » nous avais prévenu... «... Authenticating Resource Owners to clients is out of scope for this specification. Any specification that uses the authorization process as a form of delegated end-user authentication to the client (e.g. third-party sign-in service) MUST NOT use the implicit flow without additional security mechanisms such as audience restricting the access token that enable the client to determine if the access token was issued for its use. » Source : draft-ietf-oauth- v2-31
  26. 26. 26 Est ce que cela nous concerne ? Nest ce pas plutôt un « problème » pour facebook, google, et consorts ? Oui si nous implémentons “nous-même” ou sans les framework proposés Oui si nous vérifions des implémentations Oui pour notre culture et une meilleure compréhension dOauth ;)
  27. 27. 27Agenda Contexte : Social Login Oauth : Sous le capot Implicit Flow : ou Implicit Flaw ? Mitigation : La bonne implémentation
  28. 28. Mitigation – Implicit Flow Restreindre laudience / valider le token daccès avant dauthentifier – Signed request (Facebook JavaScript SDK) – Service de validation du token
  29. 29. 29Mitigation – Server Side Flow Sign in via Facebook Redirect vers Facebook OAuth Authorization request AppId, redirectUri(blog.jsp) AuthentificationOAuth Authorization response + Autorisation de AppIdRedirect vers redirectUri(blog.jsp) +Code(xxxx) Get /blog.jsp?Code=xxxx OAuth Access Token request AppId, Code, Lié à lAppId redirectUri(blog.jsp) donc invalide AccessToken=yyyy pour une autre app ! Get /graphAPI?AToken=yyyy JSON object userId=Boris Welcome Boris !
  30. 30. 30 Mitigation – OpenId Connect Une extension de Oauth 2.0  UserInfo endpoint – Fournisseur dinformationIDENTITY didentité Layer  ID token objectsOAUTH 2.0 – Informations sur les évenements Layer dauthentification (i.e audience, contexte, temps,...)
  31. 31. 31Conclusion Un protocole dautorisation ... … mais qui peut servir à authentifier ... … à condition de limplémenter correctement. Les mécanismes de sécurité existent, il faut veiller à les utiliser et à les vérifier. … au prix dun peu de compléxité ... « Il ny a pas de simplicité véritable, il ny a que des simplifications » Léon Paul Farge
  32. 32. 32Questions? Principales Sourceshttp://www.thread-safe.com/2012/01/problem-with-oauth-for-authentication.html by John Bradleyhttp://www.independentid.com/2011/04/oauth-does-it-authenticate-wellyes-and.html by Phil Hunthttp://vennofidentity.org/ by Eve Malerhttp://oauth.net/2/http://tools.ietf.org/html/draft-ietf-oauth-v2-31http://openid.net/connect/https://developers.facebook.com/docs/concepts/login/https://developers.google.com/accounts/docs/OAuth2
  33. 33. 33Merci/Thank you! Contact: maxime.feroul@kyos.ch http://www.kyos.ch Slides: http://slideshare.net/ASF-WS/presentations

×