Es seguro para exponer refreshtoken API

0

Pregunta

Tengo una aplicación desarrollada utilizando Reaccionar en el front-end y ASP.Net Web API en el backend. Estoy usando JWT para la autorización. El proceso es

  1. Cuando un usuario inicia la sesión y se ha autenticado, 2 tokens son enviados para el front-end, el token de acceso y actualización de la ficha. Un token de acceso es la JWT y refresca un token es una cadena aleatoria y un token de actualización se almacena en una base de datos.
  2. Para cada una de las subsiguientes llamada a la Api token de acceso se adjunta en el encabezado, tengo un filtro de autenticación que valida el token de acceso.
  3. Una vez que el token de acceso está caducado, un plan 401 de estado se produce con el mensaje de error TokenExpired.
  4. Una vez que el front-end recibe 401, llama el token de actualización de la API para obtener el token de actualización

La duda que tengo es que no puedo tener un filtro de autenticación para validar el token de acceso de la actualización de fichas de la API de como se va a tirar 401 debido a que el token de acceso caducado, por lo que necesito para hacer el token de actualización de la API de ser anónimos, a fin de no golpear el filtro de autenticación. Si puedo hacer anónimo estoy haciendo una llamada a la base de datos para obtener la actualización de token almacenado por el usuario y la compara con la que he recibido desde el front-end. Por lo tanto, es seguro hacer el token de actualización de la API en el anonimato, si no ¿cuál es la mejor manera?

asp.net-web-api c# jwt
2021-11-24 05:13:45
2
0

En Auth0, Creó un conjunto de características que contribuyan a mitigar los riesgos asociados con el uso de la actualización de fichas mediante la imposición de salvaguardias y controles en su ciclo de vida. Nuestra identidad es una plataforma que ofrece la actualización de token de rotación, que también viene con la reutilización automática de detección.

Por favor, lea el siguiente tema.

Actualización De Token De Rotación

Actualización De Token De La Reutilización Automática De Detección De

2021-11-24 05:56:21

Estamos haciendo una especie de actualización de token de rotación. Cuando un nuevo token de acceso que se solicita se valida con el token de actualización y proporcionar un nuevo token de acceso y una nueva actualización de token y el token de actualización se actualiza en la base de datos. Sin embargo, yo no creo que podemos almacenar la lista de todos los de actualización de los tokens generados hasta el momento como se mencionó en la reutilización automática de detección de
Raghul Raman
0

La JWT se firma con clave secreta compartida clave. Ya que la API de REST en el backend y apátridas, jwt se utiliza para la autorización y construcción del objeto principal

Como usted dice, el token de acceso representan autorización en su aplicación, si el token de actualización se expone a continuación, la actualización de token puede ser presentado por un mal actor para obtener un token de acceso que se pueden utilizar para la misma autorización.

El uso de una "clave secreta compartida' indica la JWT es una HMAC única variante de JWT, es decir, no hay cifrado, lo que podría indicar privada y la clave pública de par en oposición a una 'clave secreta compartida'. Así que la JWT es esencialmente una firma para el puposes de características de seguridad estamos garantizando la integridad de los que las demandas de los JWT están bien formados y que no se han cambiado desde que se firmó. También significa que se utiliza un mismo secreto para la firma en uno de los extremos como se utilizó para verificar en el otro extremo, el mismo secreto tiene que ser utilizado debido a que la verificación de una firma requiere que ambos extremos generar la firma y de la coincidencia de firma. Así que no hay datos se cifran, por lo que no los datos en la JWT es sensible y necesita ser protegido.

Dado este contexto, la actualización y el token de acceso son un simple JWT que sólo puede ser generado por el titular de la secreta - si son expuestos que puede ser utilizado para hacer malicioso solicitudes de siempre que siguen siendo válidos (nbf reclamación).

Esencialmente, este tipo de JWT pueden ser utilizadas si se expone a suplantar la identidad de los secretos que se firmó el JWT representa, sin saber en realidad el secreto de sí mismo, hasta el nbf demanda el token y un token de actualización es el mecanismo para ampliar la nbf reclamación sin tener el secreto (lo que resultaría en una nueva firma, debido a que el nbf la reclamación podría cambiar cuando se utiliza).

Hay una protección de acceso token de reutilización, es el nonce reclamación. Si actualmente usted no usar un nonce reclamo usted puede leer acerca de cómo OIDC han puesto en práctica y hacer él mismo en su aplicación. Pero como usted dice, su aplicación es apátrida, pero esperemos que el backend tiene una forma de estado para asegurar que no nonce la reutilización y evitar JWT firma de la reutilización. Para cada nonce la JWT los cambios de firma, por lo tanto, el token de acceso de los cambios y puede ser usado sólo 1 vez. Así que en caso de robo es una condición de carrera que se utiliza el símbolo (token) en primer lugar, que en gran medida se minimiza el riesgo, pero no es una solución perfecta.

2021-11-24 09:11:17

En otros idiomas

Esta página está en otros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Slovenský
..................................................................................................................