Autenticación y Seguridad

By: David Aldana

Seguridad Información


blog/ Autenticación y Seguridad
04 April 2022


Autenticación y Seguridad


En este blog abordaremos conceptos fundamentales de autenticación y seguridad. Exploraremos qué es el password hashing, el salting, el algoritmo bcrypt, y el conjunto de estándares conocido como JOSE (JSON Object Signing and Encryption).


¿Qué es Password Hashing y Salting?


Cuando almacenamos contraseñas en una base de datos, no deben guardarse en texto plano, ya que, si la base de datos es comprometida, el atacante tendría acceso directo a todas las contraseñas.

Para protegerlas se utilizan dos técnicas esenciales:


Password Hashing


password hashing


El hashing es el proceso de aplicar una función matemática que convierte la contraseña en una cadena irreversible de caracteres (un hash).

Ejemplo:

  • Contraseña: Contraseña123
  • Hash (SHA-256):
    f9b4d7b76c3b3650a29ec1e8377e6732459ba12f3d8df5cde0d50de2c14e5e24

Características:

  • No se puede revertir para obtener la contraseña original.
  • Al iniciar sesión, se hace hashing de la contraseña ingresada y se compara con el hash almacenado.


Password Salting


Un salt es una cadena aleatoria que se añade a la contraseña antes de aplicar el hash. Esto garantiza que dos usuarios con la misma contraseña no tengan el mismo hash.

¿Por qué es importante?

  • Protege contra ataques con rainbow tables (tablas precalculadas de hashes).
  • Aumenta la entropía del hash.

Ejemplo:

  • Contraseña: Contraseña123
  • Salt aleatorio: Xy7z!2
  • Entrada real al hash: Contraseña123Xy7z!2
  • Resultado: Un hash único.


¿Qué es bcrypt?


bcrypt


Bcrypt es un algoritmo de hashing diseñado específicamente para proteger contraseñas de manera segura.

Ventajas clave:

  • Genera y aplica un salt automáticamente.
  • Permite ajustar el nivel de seguridad mediante el cost factor (ej. 10, 12, 14).
  • Su lentitud intencional dificulta ataques de fuerza bruta.

La salida del hash incluye:

  • El algoritmo usado.
  • El cost factor.
  • El salt.
  • El hash resultante.


¿Qué es JOSE (JSON Object Signing and Encryption)?


jose 2


JOSE es un conjunto de estándares que permiten firmar, cifrar y proteger datos en formato JSON, asegurando su integridad, autenticidad y confidencialidad.

Componentes clave:

  • JWS: Firmas digitales (JSON Web Signature).
  • JWE: Cifrado de datos (JSON Web Encryption).
  • JWK: Claves criptográficas (JSON Web Key).
  • JWA: Algoritmos estándar (JSON Web Algorithms).

Funciones principales:

  • Autenticación: Verifica la identidad del emisor.
  • Integridad: Detecta modificaciones no autorizadas.
  • Confidencialidad: Cifra los datos para acceso exclusivo del receptor.

¿ Quieres conocer más sobre seguridad en aplicaciones web?
¡ Agenda una llamada !
¡ Contáctanos en WhatsApp