Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

240
Views
¿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.
over 4 years ago · Santiago Trujillo
3 answers
Answer question

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.
over 4 years ago · Santiago Trujillo Report

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 .

over 4 years ago · Santiago Trujillo Report

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.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!