Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

236
Vistas
¿Cuál debería ser el "secreto" en JWT?

Voy a aplicar JWT en mi API REST desarrollada con Java-Jersey. Estoy usando esta biblioteca para JWT - https://github.com/auth0/java-jwt

Tengo algunas preguntas sobre el JWT - Secreto

  1. ¿Este Secret tiene que ser único?
  2. ¿Debo usar la versión codificada de la contraseña del usuario para el secreto? (Entonces no es único de todos modos) Esto se debe a que cuando el usuario cambia su contraseña, su token automáticamente no será válido.
about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

  1. ¿Este Secret tiene que ser único?

Debe ser único para su aplicación (después de todo, debe ser un secreto ), pero no será único para cada token. Más bien, debe tener una cantidad relativamente pequeña de claves secretas en un momento dado (p. ej., generalmente solo tiene una clave, pero tiene períodos breves en los que tiene dos claves a medida que cambia de una a la siguiente).

  1. ¿Debo usar la versión codificada de la contraseña del usuario para el secreto?

No, por dos razones:

  1. Suponga que su usuario tiene una contraseña relativamente insegura, como GoPackers123 . Usar la contraseña en su secreto significa que alguien puede probar fácilmente una contraseña potencial determinada para ver si da como resultado la firma correcta; y, más concretamente, pueden probar fácilmente una gran cantidad de contraseñas potenciales para ver si alguna de ellas da la firma correcta. Este es un ataque fuera de línea, por lo que nunca sabrás que sucedió.
  2. Esto requeriría que distribuya todos los hash de contraseñas de sus usuarios a todos los sistemas que necesitan mantener el secreto. Si tiene más que un número trivial de usuarios, esto puede convertirse en una carga bastante seria para su mecanismo de distribución de secretos.
about 4 years ago · Santiago Trujillo Denunciar

0

JWT y la biblioteca java-jwt admiten algoritmos simétricos y asimétricos para la firma:

  • Si elige algoritmos simétricos como HS256, solo tendrá una clave para firmar y verificar la firma.

  • Si considera algoritmos asimétricos como RS256, tendrá una clave pública y otra privada. Mantenga la clave privada segura en el servidor y utilícela para firmar el token. Use la clave pública para verificar la firma (también se puede compartir con quien necesite verificar la firma).

¡ Nunca comparta la clave utilizada para firmar el token!

Y nada te impide tener un conjunto de claves diferentes para firmar tus tokens. En esta situación, el parámetro de encabezado kid se puede usar para indicar qué clave se usó para firmar el token. Se supone que esta notificación lleva un identificador de clave y no la clave en sí.

Consulte esta respuesta para obtener más detalles sobre el reclamo de kid .

about 4 years ago · Santiago Trujillo Denunciar

0

Utilice RSA256, es decir, un par de claves privada/pública (no se requiere 'secreto'). De esa manera, puede mantener la clave privada en secreto y segura (solo se usará para firmar el token) y puede usar la clave pública para verificar que la firma sea correcta.

Puede dar la clave pública a cualquier persona o servicio que necesite verificar que la firma del token sea correcta.

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda