OAuth: ¿Qué sucede si se roba el token de actualización?

4

Parece que todavía no entiendo la idea detrás del token de actualización.

Suponiendo que se utiliza un token de acceso de corta duración. Este token podría ser robado, permitiendo que el atacante acceda al recurso hasta que experimente (quizás 3600 segundos).

¿Pero qué pasa si se las arregla para robar el token de actualización (no debería ser más difícil, ya que no está más protegido que el token de acceso, verdad?)? ¿No podrá simplemente obtener un nuevo token de acceso ya que no se requiere autenticación para actualizar el token de acceso cuando alguien posee un token de actualización?

    
pregunta user66875 14.06.2017 - 10:16
fuente

2 respuestas

2

TL; DR: Sí, los tokens de actualización son token de portador y, por lo tanto, deben estar protegidos.

Los tokens de actualización son potentes porque en general son:

  • largo plazo: lo que significa que tienen largos tiempos de caducidad
  • capacidad privilegiada: lo que significa que le permiten al portador renovar su token de acceso.
Los tokens de actualización

también son tokens portadores , lo que significa que el servicio que consume el token dará acceso al portador del token, sin preguntas. Esto es similar a los tokens de acceso.

Por lo tanto, es muy importante asegurarse de que las fichas de portador estén protegidas y almacenadas de forma segura. Cuanto más crítico sea un token, mejor debe estar protegido.

Como ejemplo en OAuth2, el flujo implícito que generalmente se usa con las aplicaciones móviles, la aplicación del lado del cliente tiene un token de acceso de corta duración. Por lo general, tampoco reciben un token de actualización. Dado que una aplicación del lado del cliente se puede comprometer fácilmente y cualquier dato / tokens puede verse comprometido, sus tokens de portador tienen privilegios y vida útil limitados.

En contraste, en el flujo de código de autorización OAuth2 que generalmente se usa con las aplicaciones del lado del servidor, la aplicación del servidor recibe un token de acceso de mayor duración y / o un token de actualización. Esto se debe a que se supone que el lado del servidor es más confiable y menos probable que se vea comprometido. Dicho esto, los tokens del lado del servidor todavía deben almacenarse de forma segura dado su patrón de uso.

Para resumir, al decidir qué tipo de tokens necesita, marque: - el nivel de confianza de su cliente y el flujo más apropiado para ese nivel de confianza - ¡Protege tus fichas!

    
respondido por el channel 20.06.2017 - 18:30
fuente
0

Tienes razón, es por esto que el token de actualización debe almacenarse de forma segura. Tal vez cifrarlo dentro de una cookie con el indicador de seguridad habilitado, por lo que solo se transfiere a través de HTTPS.

    
respondido por el Simon Bar 14.06.2017 - 10:30
fuente

Lea otras preguntas en las etiquetas