Asegurando

APIS

Greenetics / Manticore labs

Bienvenidos!

OAuth

2020

MSc. Adrián Égüez

¿Qué ha cambiado?

Seguridad 101

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?

Seguridad 101

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?

Seguridad 101

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?

Seguridad 101

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?

Seguridad 101

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?

Seguridad 101

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

Seguridad 101

Greenetics / Manticore labs

MSc. Adrián Égüez

https://manticore-labs.com - info@manticore-labs.com

Presente - Conexión

Authorize

OAuth

Seguridad 101

Greenetics / Manticore labs

MSc. Adrián Égüez

https://manticore-labs.com - info@manticore-labs.com

Presente - Conexión

OAuth

Seguridad 101

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

Seguridad 101

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

Seguridad 101

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

Seguridad 101

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

Seguridad 101

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

Seguridad 101

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

Seguridad 101

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

Seguridad 101

Greenetics / Manticore labs

MSc. Adrián Égüez

https://manticore-labs.com - info@manticore-labs.com

Protocol Endpoints

Authorization

Token

SSL

OAuth 2.0

Seguridad 101

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

Seguridad 101

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

Seguridad 101

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

Seguridad 101

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

Seguridad 101

Greenetics / Manticore labs

MSc. Adrián Égüez

https://manticore-labs.com - info@manticore-labs.com

Callback - 000123000

Authorization:

8742364252

OAuth 2.0

Seguridad 101

Greenetics / Manticore labs

MSc. Adrián Égüez

https://manticore-labs.com - info@manticore-labs.com

Respuesta

Implicit Flow

Seguridad 101

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

Seguridad 101

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

Seguridad 101

Greenetics / Manticore labs

MSc. Adrián Égüez

https://manticore-labs.com - info@manticore-labs.com

Puclic Clients - Token

Implicit Flow

Seguridad 101

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

Seguridad 101

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

Seguridad 101

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

Seguridad 101

Greenetics / Manticore labs

MSc. Adrián Égüez

https://manticore-labs.com - info@manticore-labs.com

Machine

Client Credentials

Seguridad 101

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)

Seguridad 101

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)

Seguridad 101

Greenetics / Manticore labs

MSc. Adrián Égüez

https://manticore-labs.com - info@manticore-labs.com

Resource Owner Password Credentials

Aplicaciones Nativas

Mejores prácticas

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

Mejores prácticas

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

Mejores prácticas

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

Mejores prácticas

Greenetics / Manticore labs

MSc. Adrián Égüez

https://manticore-labs.com - info@manticore-labs.com

Proof Key Code Exchange

Aplicaciones Nativas

Mejores prácticas

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

Mejores prácticas

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

Mejores prácticas

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

OpenID Connect

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

Assegurando APIs

By Adrian Eguez

Assegurando APIs

Vulnerabilidades en la Web

  • 364