stringtranslate.com

Nonce criptográfico

Comunicación típica entre cliente y servidor durante un proceso de autenticación basado en nonce que incluye tanto un nonce de servidor como un nonce de cliente

En criptografía , un nonce es un número arbitrario que se puede utilizar solo una vez en una comunicación criptográfica. [1] A menudo es un número aleatorio o pseudoaleatorio emitido en un protocolo de autenticación para garantizar que cada sesión de comunicación sea única y, por lo tanto, que las comunicaciones antiguas no se puedan reutilizar en ataques de repetición . Los nonces también pueden ser útiles como vectores de inicialización y en funciones hash criptográficas .

Definición

Un nonce es un número arbitrario que se utiliza solo una vez en una comunicación criptográfica, en el espíritu de una palabra nonce . A menudo son números aleatorios o pseudoaleatorios . Muchos nonces también incluyen una marca de tiempo para garantizar la puntualidad exacta, aunque esto requiere la sincronización de relojes entre organizaciones. La adición de un nonce de cliente (" cnonce ") ayuda a mejorar la seguridad de algunas maneras, como se implementa en la autenticación de acceso de resumen . Para garantizar que un nonce se use solo una vez, debe ser variable en el tiempo (incluyendo una marca de tiempo de grano fino adecuado en su valor), o generado con suficientes bits aleatorios para garantizar una probabilidad insignificantemente baja de repetir un valor generado previamente. Algunos autores definen la pseudoaleatoriedad (o imprevisibilidad) como un requisito para un nonce. [2]

Nonce es una palabra que se remonta al inglés medio y que se utiliza para designar algo que solo se usa una vez o temporalmente (a menudo con la construcción "for the nonce"). Desciende de la construcción "then anes" ("then anes" ("the one [purpose]"). [3] Una etimología falsa que afirma que significa "número usado una vez" es incorrecta. [4] En Gran Bretaña, el término puede evitarse, ya que "nonce" en inglés británico moderno significa pedófilo. [3] [5]

Uso

Autenticación

Los protocolos de autenticación pueden utilizar nonces para garantizar que las comunicaciones antiguas no se puedan reutilizar en ataques de repetición . Por ejemplo, los nonces se utilizan en la autenticación de acceso mediante resumen HTTP para calcular un resumen MD5 de la contraseña . Los nonces son diferentes cada vez que se presenta el código de respuesta de desafío de autenticación 401, lo que hace que los ataques de repetición sean prácticamente imposibles. El escenario de pedir productos a través de Internet puede proporcionar un ejemplo de la utilidad de los nonces en los ataques de repetición. Un atacante podría tomar la información cifrada y, sin necesidad de descifrarla, podría seguir enviando un pedido en particular al proveedor, pidiendo así productos una y otra vez con el mismo nombre e información de compra. El nonce se utiliza para dar "originalidad" a un mensaje determinado de modo que si la empresa recibe otros pedidos de la misma persona con el mismo nonce, los descartará como pedidos no válidos.

Se puede utilizar un nonce para garantizar la seguridad de un cifrado de flujo . Cuando se utiliza la misma clave para más de un mensaje, se utiliza un nonce diferente para garantizar que el flujo de claves sea diferente para los distintos mensajes cifrados con esa clave; a menudo se utiliza el número de mensaje.

El esquema de firma de Lamport utiliza valores nonce secretos como un secreto del lado del firmante que se puede revelar de forma selectiva para compararlos con hashes públicos para la creación y verificación de firmas.

Vectores de inicialización

Los vectores de inicialización pueden denominarse nonces, ya que suelen ser aleatorios o pseudoaleatorios.

Hash (hash)

Los nonces se utilizan en sistemas de prueba de trabajo para variar la entrada de una función hash criptográfica de modo de obtener un hash para una determinada entrada que cumpla ciertas condiciones arbitrarias. Al hacerlo, se vuelve mucho más difícil crear un hash "deseable" que verificarlo, lo que desplaza la carga de trabajo a un lado de la transacción o el sistema. Por ejemplo, la prueba de trabajo, mediante funciones hash, se consideró un medio para combatir el correo basura al obligar a los remitentes de correo electrónico a encontrar un valor hash para el correo electrónico (que incluía una marca de tiempo para evitar el cálculo previo de hashes útiles para su uso posterior) que tuviera una cantidad arbitraria de ceros a la izquierda, mediante el hash de la misma entrada con una gran cantidad de valores hasta que se obtuviera un hash "deseable".

De manera similar, el algoritmo de hash de la cadena de bloques de Bitcoin se puede ajustar a una dificultad arbitraria modificando el valor mínimo/máximo requerido del hash, de modo que la cantidad de bitcoins otorgados por nuevos bloques no aumente linealmente con el aumento de la potencia computacional de la red a medida que se incorporan nuevos usuarios. Esto también se logra obligando a los mineros de Bitcoin a agregar valores nonce al valor que se está codificando para cambiar la salida del algoritmo hash. Como los algoritmos hash criptográficos no se pueden predecir fácilmente en función de sus entradas, esto hace que el acto de codificar en la cadena de bloques y la posibilidad de recibir bitcoins sea una especie de lotería, donde el primer "minero" que encuentre un nonce que proporcione un hash deseable recibe bitcoins.

Véase también

Referencias

  1. ^ "nonce - Glosario | CSRC". csrc.nist.gov . Instituto Nacional de Estándares y Tecnología . Consultado el 24 de octubre de 2021 .
  2. ^ Rogaway, P. (2004). "Cifrado simétrico basado en nonce" (PDF) . En Bimal Roy; Willi Meier (eds.). Cifrado rápido de software . Apuntes de clase en informática. Vol. 3017. págs. 348–358. doi :10.1007/978-3-540-25937-4_22. ISBN . 978-3-540-25937-4.
  3. ^ ab Oxford Dictionary of English [versión incluida con macOS] . Oxford University Press. 2021. Inglés medio: de then anes 'el único (propósito)' (de then, forma oblicua obsoleta de the + ane 'uno' + -s), alterada por división incorrecta
  4. ^ Needham, Roger M.; Schroeder, Michael D. (1978-12-01). "Uso de cifrado para autenticación en grandes redes de computadoras". Comunicaciones de la ACM . 21 (12): 993–999. doi :10.1145/359657.359659. ISSN  0001-0782.
  5. ^ "nonce", Wikcionario, el diccionario libre , 2024-04-06 , consultado el 2024-04-15

Enlaces externos