¿Está expirando el token de actualización de OAuth al mismo tiempo que el token de acceso tiene alguna utilidad? ¿O es solo teatro de seguridad?

4

Nos estamos integrando con un proveedor que tiene una implementación única de OAuth 2.0 (para nosotros): con cada solicitud de actualización, nos envían un nuevo token de actualización junto con el token de acceso.

Dicen que esto era necesario como parte de su trabajo para obtener SOC2, pero no puedo evitar pensar que interpretaron mal algo que recomendaban sus asesores de seguridad.

¿Alguna idea sobre cuál puede ser el razonamiento sobre esto?

    
pregunta fridgepolice 09.08.2016 - 18:47
fuente

2 respuestas

1

El token de actualización no está caducado al mismo tiempo que access_token, se está rotando con el uso.

De la sección 5.2.2.3 de rfc6819 :

  

La rotación del token de actualización está diseñada para detectar y prevenir automáticamente   intenta utilizar el mismo token de actualización en paralelo desde diferentes   aplicaciones / dispositivos. Esto sucede si un token se roba del cliente y   posteriormente es utilizado tanto por el atacante como por el cliente legítimo.   La idea básica es cambiar el valor del token de actualización con cada actualización   solicite para detectar intentos de obtener tokens de acceso utilizando las antiguas   Actualizar fichas. Dado que el servidor de autorizaciones no puede determinar   Si el atacante o el cliente legítimo está tratando de acceder, en   caso de tal acceso intente el token de actualización válido y el acceso   La autorización asociada con él se revoca.

(Bolds mío)

FWIW, todos los proveedores de OAuth2 que utilicé funcionaron de esta manera.

    
respondido por el GnP 04.09.2016 - 15:35
fuente
0

Probablemente necesite obtener el razonamiento de ellos directamente, pero este diseño cumple con la especificación :

Issuing a refresh token is optional at the discretion of the
authorization server.  If the authorization server issues a
refresh token, it is included when issuing an access token

La propiedad más interesante que puedo pensar es que si un cliente pierde su token de actualización y un atacante lo usa para obtener un nuevo par de token de actualización / acceso, el cliente legítimo no podrá obtener un token la próxima vez que actualizar (a menos que el atacante pueda modificar el estado del cliente legítimo). Esto podría usarse para hacer algo como determinar cuándo deben revocarse todos los tokens emitidos a un cliente en particular (porque se supone que están comprometidos).

    
respondido por el Phil Ames 10.08.2016 - 02:40
fuente

Lea otras preguntas en las etiquetas