Adrian Eguez
Windows, Mobile and Web Developer with Node.js and Angular, Proffesor in Escuela Politécnica Nacional
APIS
Greenetics / Manticore labs
OAuth
2020
MSc. Adrián Égüez
¿Qué ha cambiado?
Pasado
Greenetics / Manticore labs
MSc. Adrián Égüez
XML, SOAP, SAML ( Conexión con otras compañias )
https://manticore-labs.com - info@manticore-labs.com
Presente
JSON, HTTP APIs
OAuth & Open ID Connect
¿Qué ha cambiado?
Pasado - Conexión
Greenetics / Manticore labs
MSc. Adrián Égüez
https://manticore-labs.com - info@manticore-labs.com
Compartían credenciales
Interpretación
(Suplantando Identidad)
Restringir el acceso a métodos - Todo disponible
¿Qué ha cambiado?
Pasado - Conexión
Greenetics / Manticore labs
MSc. Adrián Égüez
https://manticore-labs.com - info@manticore-labs.com
Receptaba usuario y password
Cambiar Password
Revocamos credenciales
¿Qué ha cambiado?
Pasado - Conexión
Greenetics / Manticore labs
MSc. Adrián Égüez
https://manticore-labs.com - info@manticore-labs.com
Podia acceder a la tabla de usuarios y las contraseñas estaban en texto plano
Usar las credenciales en otras Aplicaciones
Imposible Federation login (Facebook Google Github)
¿Qué ha cambiado?
Pasado - ¿Solución?
Greenetics / Manticore labs
MSc. Adrián Égüez
https://manticore-labs.com - info@manticore-labs.com
Cookies
Autorizabamos a
TODO EL NAVEGADOR
CSRF - A.K.A XSRF
¿Qué ha cambiado?
Pasado - ¿Solución?
Greenetics / Manticore labs
MSc. Adrián Égüez
https://manticore-labs.com - info@manticore-labs.com
API KEYS
SPA (sin backend)
Credenciales son expuestas
:(
Estándares
Sin tiempo de expiración
OAuth
Greenetics / Manticore labs
MSc. Adrián Égüez
https://manticore-labs.com - info@manticore-labs.com
Presente - Conexión
Authorize
OAuth
Greenetics / Manticore labs
MSc. Adrián Égüez
https://manticore-labs.com - info@manticore-labs.com
Presente - Conexión
OAuth
Greenetics / Manticore labs
MSc. Adrián Égüez
https://manticore-labs.com - info@manticore-labs.com
Presente - Conexión
Oauth 2.0
Framework Autorización
HTTP APIs
Acceso restringido
Delegation Protocol
OAuth
Greenetics / Manticore labs
MSc. Adrián Égüez
https://manticore-labs.com - info@manticore-labs.com
Presente - Conexión
4 Layers
Protected Resource
Client ( app )
Authorization Server
Resource Owner
OAuth
Fuente: https://www.owasp.org/
Greenetics / Manticore labs
MSc. Adrián Égüez
https://manticore-labs.com - info@manticore-labs.com
Presente - Conexión
Protected Resource
Client ( app )
Authorization Server
Resource Owner
1
2
Login & Consent
3.1
3.2
Authorization Request
Authorization Grant
3.3
Authorization Grant
Access Token
4.1
Access Token
Access Token
Trust
Ok / Not ok
4.2
4.3
Versión 1
Greenetics / Manticore labs
MSc. Adrián Égüez
https://manticore-labs.com - info@manticore-labs.com
Malentendidos OAuth (1)
Oauth != Authenticación
Access Token != Usuario
Access Token Solicitado y Enviado
Versión 1
Greenetics / Manticore labs
MSc. Adrián Égüez
https://manticore-labs.com - info@manticore-labs.com
Malentendidos OAuth (1)
Access Token protege un recurso
Access Token no necesita ser observado ni validado (ni usado)
Authorization Server no tiene obligación con sus clientes (Nada más que autorizar)
Versión 1
Greenetics / Manticore labs
MSc. Adrián Égüez
https://manticore-labs.com - info@manticore-labs.com
Malentendidos OAuth (1)
Delegar el acceso
Control acceso API
User & Client Credencial separadas
Consentimiento del Usuario
Más completo
Greenetics / Manticore labs
MSc. Adrián Égüez
https://manticore-labs.com - info@manticore-labs.com
OAuth 2.0 - Authorization Framework
+ Especificaciones
- Malentendidos
OAuth 2.0
Greenetics / Manticore labs
MSc. Adrián Égüez
https://manticore-labs.com - info@manticore-labs.com
Protocol Endpoints
Authorization
Token
SSL
OAuth 2.0
Greenetics / Manticore labs
MSc. Adrián Égüez
https://manticore-labs.com - info@manticore-labs.com
Scope
Todo API
Lectura
API Usuario
Nombrado de Scopes
OAuth 2.0
Greenetics / Manticore labs
MSc. Adrián Égüez
https://manticore-labs.com - info@manticore-labs.com
Authorization Code
Clientes mantengan secreto seguro
Aplicaciones con un Backend asegurado
OAuth 2.0
Greenetics / Manticore labs
MSc. Adrián Égüez
https://manticore-labs.com - info@manticore-labs.com
Authorization Code
response_type
client_id
redirect_uri
code
654354
/callback
scope
api.read api.users
OAuth 2.0
Greenetics / Manticore labs
MSc. Adrián Égüez
https://manticore-labs.com - info@manticore-labs.com
Callback - 000123000
client_id
client_secret
654354
super_secret
/token
POST
code
000123000
grant_type
authorization_code
redirect_uri
/cb
OAuth 2.0
Greenetics / Manticore labs
MSc. Adrián Égüez
https://manticore-labs.com - info@manticore-labs.com
Callback - 000123000
Authorization:
8742364252
OAuth 2.0
Greenetics / Manticore labs
MSc. Adrián Égüez
https://manticore-labs.com - info@manticore-labs.com
Respuesta
Implicit Flow
Greenetics / Manticore labs
MSc. Adrián Égüez
https://manticore-labs.com - info@manticore-labs.com
Puclic Clients
Single Page Application
Directo del navegador
Aplicacion no pueda mantener el secreto
Implicit Flow
Greenetics / Manticore labs
MSc. Adrián Égüez
https://manticore-labs.com - info@manticore-labs.com
Puclic Clients
response_type
token
redirect_uri
client.me/callback
client_id
654372
scope
api1 api.read api2
Implicit Flow
Greenetics / Manticore labs
MSc. Adrián Égüez
https://manticore-labs.com - info@manticore-labs.com
Puclic Clients - Token
Implicit Flow
Greenetics / Manticore labs
MSc. Adrián Égüez
https://manticore-labs.com - info@manticore-labs.com
Security Concerns - Token
Resource Owner
Access Token
Javascript
Access Token
Inyectado
Access Token
Client Credentials
Greenetics / Manticore labs
MSc. Adrián Égüez
https://manticore-labs.com - info@manticore-labs.com
Machine
Client Resource Owner
Client Authentication
Machine
to
Machine
Client Credentials
Greenetics / Manticore labs
MSc. Adrián Égüez
https://manticore-labs.com - info@manticore-labs.com
Machine
grant_type
client_credentials
scope
api1 api.read api2
Authorization:
18971234
Client Credentials
Greenetics / Manticore labs
MSc. Adrián Égüez
https://manticore-labs.com - info@manticore-labs.com
Machine
Client Credentials
Greenetics / Manticore labs
MSc. Adrián Égüez
https://manticore-labs.com - info@manticore-labs.com
API Keys
No enviar credenciales en cada request
Tiempo de vida del Token
Enviamos token
ROPC (2012)
Greenetics / Manticore labs
MSc. Adrián Égüez
https://manticore-labs.com - info@manticore-labs.com
Resource Owner Password Credentials
Legacy Applications
Cancela los beneficios OAuth
No debe ser usado
ROPC (2012)
Greenetics / Manticore labs
MSc. Adrián Égüez
https://manticore-labs.com - info@manticore-labs.com
Resource Owner Password Credentials
Aplicaciones Nativas
Greenetics / Manticore labs
MSc. Adrián Égüez
https://manticore-labs.com - info@manticore-labs.com
Móviles y de Escritorio
Consideradas aplicaciones públicas
Decompiladas
Tráfico inspeccionado
Aplicaciones Nativas
Greenetics / Manticore labs
MSc. Adrián Égüez
https://manticore-labs.com - info@manticore-labs.com
Móviles y de Escritorio
No usar implicit FLOW
Aplicaciones Nativas
Greenetics / Manticore labs
MSc. Adrián Égüez
https://manticore-labs.com - info@manticore-labs.com
Móviles y de Escritorio
Puede
No se puede
Request
Recibir token browser
Mantener secreto
Aplicaciones Nativas
Greenetics / Manticore labs
MSc. Adrián Égüez
https://manticore-labs.com - info@manticore-labs.com
Proof Key Code Exchange
Aplicaciones Nativas
Greenetics / Manticore labs
MSc. Adrián Égüez
https://manticore-labs.com - info@manticore-labs.com
Móviles y de Escritorio
redirect uri
com.my-app.ios:/cb
Embedded user agent
(Browser)
Navegador
Greenetics / Manticore labs
MSc. Adrián Égüez
https://manticore-labs.com - info@manticore-labs.com
Browser
Red visible
Reenviar request
No almacenamiento seguro
Robo de token
Navegador
Greenetics / Manticore labs
MSc. Adrián Égüez
https://manticore-labs.com - info@manticore-labs.com
Browser
¿Necesito OAuth?
Cookies
Backend to Frontend
Esfuerzo comunidad
Greenetics / Manticore labs
MSc. Adrián Égüez
https://manticore-labs.com - info@manticore-labs.com
No necesita ser usado con OAuth, pero se recomienda
By Adrian Eguez
Vulnerabilidades en la Web
Windows, Mobile and Web Developer with Node.js and Angular, Proffesor in Escuela Politécnica Nacional