Cómo un hacker recuerda un PIN

Si tiene más de algunas tarjetas bancarias, códigos de teclas de entrada a la puerta u otras pequeñas contraseñas numéricas para recordar, eventualmente llega a ser una molestia. Lo peor, para mí, es una tarjeta bancaria para una cuenta de negocios que uso una vez en una luna azul. Probablemente lo usé ocho veces en cinco años, y luego me dieron una nueva tarjeta con un nuevo PIN. Suspiro.

Rápido, ¿cuál es mi PIN?
¿Cómo se enfrentaría una persona normal con una proliferación de pasadores? Habían anotado los números en un pedazo de papel y lo mantendrían en su billetera. Todos sabemos cómo finaliza eso, ¿verdad? Una billetera perdida y múltiples cuentas bancarias vacías. ¿Cómo lo manejaría un hacker? Escriba cada número en la tarjeta en sí, pero cifrada, naturalmente, con el único esquema de cifrado inquebrantable que está por ahí: la almohadilla de una sola vez (OTP).

La OTP es un pato extraño entre los métodos de cifrado. Están destinados a ser descifrados en su cabeza, pero mientras la clave secreta permanezca segura, son sólidos de roca. Si alguna vez ha intentado codificar los cuadros S y todo lo que agregue, cambie y la mezcla que sucede con un método de cifrado normal, las OTP son actualmente simples. La compensación es una clave “larga”, pero una OTP es absolutamente perfecta para cifrar a sus pines.

La primera parte de este artículo parece ser el amigable “Hack” Hack “Pablum que obtendrás en otro lugar, pero no te desesperes, también es una introducción de la puerta trasera a la OTP. La segunda mitad se sumerge en la almohadilla de una sola vez con una profunda intuición de cripto, algunas matemáticas amigables y, con suerte, un argumento convincente de que reduzca sus pines encriptados es lo correcto. En el camino, enumero las tres cosas que puede hacer mal al implementar una OTP. (¡Y ninguno de ellos te sorprenderá!) Pero al final, mi solución de cifrado PIN romperá uno de los tres y, sin embargo, permanecerá un sonido. ¿Curioso todavía? Sigue leyendo.

La solución PIN

Así que primero la solución al problema de la tarjeta bancaria: escriba su PIN cifrado con un secreto que solo usted sabe. En lugar de necesitar recordar un número de cuatro dígitos para cada nueva tarjeta, solo necesitará un número de cuatro dígitos para siempre. La clave es elegir un esquema de cifrado que sea lo suficientemente fácil como para deshacer para que no se vea demasiado extraño cuando se le solicite que escriba el PIN en la ventana del cajero de banco. Este es el uso clásico de la OTP, un cifrado que puede deshacer en su cabeza.

Primero, seleccione aleatoriamente un número secreto de cuatro dígitos. Luego, reste ese número de su PIN y escriba el resultado en su tarjeta. Para obtener su PIN, cuando esté parado frente al cajero bancario, simplemente mire la tarjeta y agrega el número secreto. El cajero pensará que ha escrito su PIN en la tarjeta. Siéntase libre de sentirse presumido, porque ha usado un esquema de cifrado inquebrantable.

En lugar de la adición y la resta normal, con el transporte y los préstamos a través de los dígitos, querrá usar Modulo-10 Matemáticas: agregar o restar diez desde el resultado en cualquier momento que salga del rango 0-9. Hablaremos de por qué a continuación, pero por ahora, aquí hay un ejemplo de trabajo.

Supongamos que el PIN es 1234, tiene que suceder, así que alguien, ¿verdad? – Y mi número secreto al azar es de 1337, naturalmente. Vamos a cifrar Restar 1 de 1 da un cero, así que lo escribo. Restar 3 de 2 da -1, que es donde se encuentra la aritmética modulo-10. En este caso, se convierte en 9 en 9 agregando diez. 3 – 3 = 0, y 4 – 7 = 7, MOD-10. Mi tarjeta ahora tiene 0907 escrita en ella.

Ahora vamos a descifrar. Mirando hacia abajo en la tarjeta, veo un 0 y agrego 1. 9 + 3 = 12, sin embargo, por lo que deberemos restar diez para obtener 2. (Esa es la razón para elegir la adición para la etapa de descifrado, es fácil simplemente soltar cualquier 1s de salida). 0 + 3 = 3 y 7 + 7 = 14 -> 4 <. ¡Escribo en 1234, y el dinero es mío! Una vez que obtenga la caza de agregar su número secreto a cualquier otro número, DIGIT-WISE MOD-10, se sorprenderá de lo rápido que funcionará. Pruébelo y vea si te pones bueno en ello dentro de los diez minutos. Almohadillas de una sola vez Un almohadilla de una sola vez es el esquema de cifrado simétrico más simple y también completamente irrompible. Tiene tres características cruciales, dos de las cuales se demostraron anteriormente, y que cualquiera de ellos incorrecta puede ser catastrófico. La característica más importante de una OTP es que la contraseña debe ser aleatoria y la misma longitud que el texto que encripta, de ahí el secreto de cuatro dígitos para el PIN. En una OTP, todo gira en torno al secreto, que también es el talón de Aquiles. Para un número de cuatro dígitos, mantener un secreto de cuatro dígitos no es un problema. Pero imagine que desea enviar gigabytes de fotos encriptadas de sus vacaciones a un amigo. Eso es mucho material clave para mantenerse en la mano y en secreto. Original por [MATT_CRYPTO], Domainsecond Público, el método de combinar el mensaje con el secreto debe ser similar a la aritmética de Modulo, ya que el conjunto de caracteres cifrados y el conjunto de caracteres de texto simple: el PIN en nuestro ejemplo: tiene que mapear doce y cincuenta y nueve de la noche. MOD-10 garantiza esto fácilmente: ambos están en el rango 0-9. Tal vez esté familiarizado con el uso del operador XOR en datos binarios, que es lo mismo que AdditiON O LA SUSTRUCCIÓN, MOD-2. (0 + 0 = 0, 0 + 1 = 1, 1 + 0 = 1, y 1 + 1 = 2 -> 0. QED.) También puede usar letras y envolver el alfabeto alrededor de “Z” como el cifrado Caesar. o la rot13, que solo está asignando el alfabeto en números y haciendo Math Mod-26.

Tercero, y tal vez este sea un corolario de la primera, no debe volver a usar el secreto en un almohadilla de una sola vez. Pensarías que esto era obvio, ya que incluso en nombre del método de cifrado, pero es difícil hacerlo en la práctica. Y, de hecho, mi esquema de cifrado de PIN rompe esta regla utilizando el mismo secreto en múltiples claves. Entraremos en eso pronto.

Arruinar el cifrado perfecto

¿Por qué es una OTP irrompible? La mayoría de los esquemas de cifrado a menudo se reducen a la probabilidad y las estadísticas. Por ejemplo, si cifra un texto con el cifrado Caesar anterior, cada letra del texto simple se asigna a otra letra única cada vez que ocurre en el texto cifrado. Si sabe que el texto original está en inglés, donde la letra más utilizada es “E”, es una buena apuesta que, si “Q” es la letra más común en el texto cifrado, representa “E”. Es decir, encontramos similitudes estadísticas entre el texto plante y el texto cifrado, y úsalos para hacer un puente entre los dos.

Usando una clave secreta que es tan larga como el texto plano, y elegido al azar, rompe cualquier relación estadística con el texto cifrado. Dado un texto cifrado específico escrito en mi tarjeta, es posible cada PIN de 0000 a 9999, y si la clave se eligió al azar, es igualmente probable. No hay información sobre el texto plante en el texto cifrado, que es esencialmente la prueba de Claude Shannon (PDF absolutamente clásico) en pocas palabras. Y es por eso que una OTP es irrompible.

Diana One-Toy Pad [US NSA], Doma de Doma de los Estados Unidos es en realidad la clave para entender el campo de la criptografía: es un intento de revelar la información sobre el texto plano durante el proceso de cifrado para que se use una tecla más corta, no Permanecen rastros estadísticamente relevantes del texto plano. Este deseo de las teclas cortas tampoco es solo una cuestión de conveniencia: imagine que usted y Hackaday tenían que intercambiar más 500 KIB de datos aleatorios solo para descargar este artículo y leerlo. ¡Imagina la longitud de la contraseña WiFi que tendría que escribir para los huéspedes! Este es el sentido en que la OTP es trivial y poco interesante, puede ser irrompible, pero los secretos son demasiado largos para la mayoría de las aplicaciones. El verdadero Crypto se trata de encontrar algoritmos que rompen la relación estadística con un mínimo de material clave.

Con eso en mente, puede arruinar una implementación de OTP utilizando una contraseña corta o no aleatoria. Imagínese usando 1 como su contraseña y repitiéndolo según sea necesario; Nuestro texto cifrado leería 2345, y el PIN se adivinaría en el segundo intento. También desea utilizar una contraseña aleatoria; Picking 0000 porque hace que la matemática sea fácil es lo único peor que lo anterior. (Aunque, estrictamente hablando, volvería a rodar si obtuve 0000, 1111, 9999, 1234, 4321, o similar.) De todos modos, no uses tu cumpleaños. Los viejos números de teléfono de amigos de la infancia pueden ser aceptables.

El papel del módulo aritmético es un poco más sutil. Se utiliza cualquier función, el conjunto de posibles caracteres en el texto simple debe asignar uno a uno con el texto cifrado. ¿Por qué? Imagina que usaste una adición simple en lugar de la adición mod-10. Para obtener el último dígito de nuestro PIN cifrero, usamos 4 – 7 = -3 -> 7 y descifrado con 7 + 7 = 14 -> 4. Si escribimos -3 en su lugar, un atacante sabría que nuestro último dígito no pudo ‘T Ser mayor que 6 porque agregar 9, el valor máximo, proporciona solo 6. Hemos filtrado información al tener un conjunto más grande en el texto cifrado que en el texto plano.

Y eso deja la última forma de arruinarse: reutilizar la almohadilla de “una sola vez”. Obvio, ¿verdad? Incorrecto.

Máquina de Lorenz, dominio público.
Por un lado, la reutilización es una responsabilidad definida. Reinicio de una contraseña en un esquema de cifrado muy similar. Tunny “, un código importante durante la Segunda Guerra Mundial. Se envió un mensaje cifrado de 4,000 caracteres pero no recibido correctamente. El remitente reenvió el mensaje, con el mismo secreto, pero hizo pequeños cambios en el texto, utilizando diferentes abreviaturas y así sucesivamente. Esto le dio a los aliados lo suficiente como para romper la tubería y el ingeniero inverso de la máquina que lo cifró. juego terminado.

Aquí están las matemáticas que hicieron que la tugada descifrar el trabajo, y debería convencerte de que casi nunca reutilice una clave. Si codificamos los mensajes A y B con la clave secreta C, y alguien escucha a ambos, solo pueden modificarlos para obtener (A MOD C) MOD (B MOD C) = (A MOD B) MOD C MOD C = A MOD B, donde MOD es el operador de módulo de numeridades o bit-sabio que ahora estamos acostumbrados. Dado que tomar el módulo binario es su propio reverso, el resultado es algo relacionado con ambos detalles y la clave secreta.

Desde aquí, comparando conjeturas inteligentes para A y B y comparándolas con el resultado de un MOD B puede romper el código. Entonces, si está bastante seguro de que aparece “Ataque” en ambos textos (los tipos de Crypto siempre encriptan “Ataque al amanecer”),Luego, puede intentar modificar “Attack” juntos en diferentes posiciones hasta que reciba una coincidencia con un Mod B.

Un final sorpresa

¡Pero aquí está el giro final! Podemos alejarnos de reutilizar la clave secreta en todas nuestras tarjetas bancarias, incluso a pesar de las matemáticas anteriores. ¿Por qué? Porque los pines son aleatorios. En contraste con los mensajes de lenguaje natural enviados durante la guerra, un MOD B es tan aleatorio como MOD C si tanto A como B son pines aleatorios.

Así que así es como un hacker recuerda los pins: al aprender mucho sobre el almohadilla de una sola vez, cómo romperlo, y cómo es útil si el mensaje que necesita proteger es corto. Y cómo, para los mensajes particulares, incluso puede romper las reglas.

Leave a Reply

Your email address will not be published. Required fields are marked *