¿Hay algún sistema por ahí que use un pad de una sola vez?

22

Todavía soy nuevo en seguridad de la información, pero he leído un poco sobre el pad de una sola vez . El punto que más me llama la atención es que supuestamente es irrompible. ¿Se ha incorporado este método de cifrado en alguna aplicación web de Internet en una escala mayor? ¿Cómo pasarían su llave?

    
pregunta rackonnoiter 27.03.2014 - 17:19
fuente

9 respuestas

28

El problema con un pad de una vez, es que debe tener la misma longitud (o mayor) que los datos que se cifran, y nunca, nunca, debe ser reutilizado.

Tal como indica, how would they send the key? , la OTP debe enviarse de manera segura ... sin embargo, ese es el problema que generalmente se deja al usuario y generalmente es la razón por la cual la OTP es inútil.

Si tiene la capacidad de enviar una OTP grande de forma segura, entonces podría pensar que simplemente podría enviar las cosas que desea cifrar directamente al destinatario a través de ese canal seguro.

Sin embargo, el beneficio de una OTP es mover el secreto a través del tiempo . Si tiene un canal seguro ahora (por ejemplo, una reunión en persona), puede intercambiar una OTP. Has guardado algún secreto para más tarde. Más adelante, cuando no tenga un canal seguro, puede utilizar una parte de su teclado para hacer que su mensaje sea secreto.

La mejora sobre OTP es donde hacen una pequeña semilla (una clave) y usan un expansor llamado PRNG para expandir esa clave a lo que es esencialmente un cifrado de flujo. De esta manera, solo está enviando una pequeña cantidad de datos de forma segura y puede cifrar muchos datos con esa clave expandida. Esto se llama "estiramiento clave".

    
respondido por el random65537 27.03.2014 - 17:37
fuente
19
  

¿Cómo pasarían su llave?

Esto llega a la raíz de dónde provienen las OTP y, de hecho, cómo obtuvieron ese nombre.

Esto es para correspondencia durante tiempos de guerra con barcos u otros agentes similares [*] . Cuando el barco sale del puerto, salen con un bloc de datos aleatorios. Cuando reciben una comunicación encriptada a través de la radio, la decodifican utilizando la hoja indicada de su plataforma aleatoria y luego destruyen esa hoja.

Entonces, ¿cuál es el nivel de secreto de la transmisión? Si el teclado se utiliza e implementa correctamente, entonces el secreto del mensaje es el mismo que el secreto del pad . No tiene nada que ver con el secreto de la transmisión de radio. En cambio, por mucho cuidado que hayan tenido al manipular y almacenar el teclado de descifrado, se determina cuán vulnerable es el mensaje. Están utilizando efectivamente la técnica OTP para conferir el nivel de secreto de un objeto entregado en un punto a un mensaje entregado más adelante.

Ese es el uso y propósito de (solo) de la técnica. Si ve OTP en uso hoy en día para la criptografía general, es casi seguro que el usuario no entiende lo que está haciendo. Esta técnica no se puede incorporar correctamente a la comunicación electrónica común, y es totalmente inadecuada para cosas como aplicaciones web.

[*] No estoy seguro si alguna vez se usó para la comunicación de costa a nave, pero el concepto de un agente que abandona la base por un período de tiempo se ajusta más a la metáfora del "barco". A menudo, los espías usaban OTP.

    
respondido por el tylerl 27.03.2014 - 19:06
fuente
12

No es realmente "Internet", pero se ha documentado que el teclado de una sola vez se usó para el Rojo Teléfono (un nombre con sesgo occidental; no sé cómo lo llamaron en Moscú). Las almohadillas se intercambiaron en cintas magnéticas, enviadas por aviones semanalmente. Es posible que el sistema actual aún utilice un método de cifrado similar.

Esto tiene sentido: aunque el pad de una sola vez requiere una clave tan grande como la información que se va a transmitir, todavía ofrece una ventaja basada en el tiempo: puede intercambiar las claves de antemano, en un momento en el que la transferencia es segura. es factible, y luego úselos cuando el tiempo sea esencial (por ejemplo, diez minutos antes de iniciar el ICBM, no diez minutos después).

    
respondido por el Thomas Pornin 27.03.2014 - 21:22
fuente
5

mensajería instantánea Pidgin tiene un complemento que implementa el cifrado OTP de los mensajes enviados por cable, llamado pidgin-paranoia . Así que hay al menos un sistema de cifrado OTP por ahí.

Sin embargo, de acuerdo con la presentación de USE OTR en FOSDEM 2014, Pidgin no es en absoluto un software seguro porque tiene más de 300,000 líneas de código C mal auditado, muchos de los cuales están relacionados con el análisis de datos binarios. Debería ser bastante explotable de forma trivial, y una vez explotado, el atacante podría simplemente extraer el texto sin cifrar.

La seguridad parece estar mejorando con el próximo Pidgin 3.0, pero si eres lo suficientemente paranoico como para usar OTP, nunca debes usar Pidgin (ni siquiera los sistemas operativos de propósito general).

También OTP en Pidgin no ha tenido un uso amplio porque debe haber un buen sistema de cifrado de mensajería instantánea llamado OTR que es más que suficiente la gran mayoría de los casos de uso.

    
respondido por el Shnatsel 27.03.2014 - 20:14
fuente
4

Supuestamente no; Claude Shannon demostró que la almohadilla de una sola vez tiene un "secreto perfecto" y no se puede romper con un ataque de fuerza bruta.

Pero nadie lo usa en Internet porque resulta que, en la práctica, no se necesita un secreto perfecto. Estoy bien si puedes forzar el cifrado que estoy usando si te va a llevar veinte millones de años.

Y los esquemas alternativos de encriptación tienen una gran ventaja sobre los pads de una sola vez: las claves pueden ser mucho más pequeñas y, por lo tanto, son más fáciles de proteger e intercambiar.

    
respondido por el Graham Hill 27.03.2014 - 17:43
fuente
1

Por ejemplo, El banco finlandés Pohjola usa almohadillas de una sola vez. Obtuve el primero a través del correo normal y recibí nuevos cuando visito el banco. Una lista tiene 350 entradas y necesito una para registrarme y otra para aceptar el pago de las facturas. Si la cantidad es mayor (miles de euros), el banco envía como mensaje de texto la información del número único que elijo. Se siente muy seguro y práctico, al menos mientras no sepa cómo se crean los números. La lista plegada es exactamente del mismo tamaño que una tarjeta de crédito en mi billetera.

    
respondido por el computerilliterate 16.07.2014 - 12:50
fuente
0

El artículo de WikiPedia tiene una buena descripción de las debilidades prácticas de la OTP, y por qué no se usa en la informática moderna.

Solo puedo agregar que incluso en las redes modernas la transmisión no es perfecta y los bits se pueden voltear, y por lo tanto los mensajes se verifican (creo que al incluir un hash del mensaje original) para verificar que el mensaje se entregó intacto. Sin él, no habría manera de validar que el mensaje recibido realmente lo hizo a través del cable intacto y, por lo tanto, es un mensaje válido. Esto, a su vez, eliminaría el secreto perfecto, ya que ahora puede ser forzado brutalmente (con el éxito de la fuerza bruta evaluada al hacer coincidir el hash con el original).

Por ejemplo, veamos el ejemplo en el artículo en la sección "Intento de análisis criptográfico" que ilustra que el atacante no puede saber si "TARDE" es el mensaje original para una clave de potencial forzado brutalmente "TQURI".

Deje que la función hash de validación de transmisión (a.k.a. descifrado) se defina como H = Sum(characters) Mod Count(characters) , que es un resumen de todos los caracteres del mensaje y luego la división de módulo por número de caracteres.

Con dicha función de hash, el mensaje original HELLO se etiquetaría con el código hash (7 + 4 + 11 + 11 + 14) % 5 = 2 . El destinatario del mensaje tomaría un mensaje descifrado, recalcularía el hash sobre los datos recibidos y validaría que el resultado es 2 .

Ahora, evaluando la clave forzada de fuerza bruta TQURI , el texto descifrado es LATER . Sin el código hash para validar el mensaje, el interceptor no tiene forma de saber si la clave TQURI realmente funcionó o no (seguridad perfecta). Con la clave hash, el interceptor ahora puede validar calculando la clave hash para LATER que es (11 + 0 + 19 + 4 + 17) % 5 = 1 . Como el código hash calculado 1 no coincide con el hashcode 2 del mensaje original, el interceptor ahora sabe que el mensaje original no es LATER y que la clave TQURI no es una clave válida, y por lo tanto continúa enumerando y fuerza bruta hasta que una clave produzca un código hash correspondiente (no es una seguridad perfecta debido a la capacidad de fuerza bruta).

    
respondido por el LB2 27.03.2014 - 18:00
fuente
0

El teclado de una sola vez casi nunca se usa por razones ya cubiertas. Como se ha señalado, tiene una seguridad perfecta (suponiendo que se generó a partir de una fuente verdaderamente aleatoria), ya que la "contraseña" tiene la misma longitud que el mensaje, no existe una desviación estadística posible de "perfectamente aleatoria" con la que romper la contraseña.

Los algoritmos de cifrado modernos intentan aproximarse a un pad de una sola vez utilizando lo que se llama key schedule . La programación de teclas se utiliza para generar el "pad" según sea necesario. Sin embargo, no son perfectos, por lo que no se recomienda cifrar los mensajes de un tamaño determinado; por ejemplo, no se recomienda el uso de AES-128 con "mensajes" de más de 1 TB de tamaño.

    
respondido por el Shawn C 28.03.2014 - 21:56
fuente
-1

Antes de cambiarme a una aplicación móvil, mi banco usó algo así para firmar e iniciar sesión. Enviaron una tarjeta (por correo certificado) con códigos de una sola vez que, en combinación con mi PIN, se usó para verificar el inicio de sesión.

    
respondido por el liftarn 28.03.2014 - 12:58
fuente

Lea otras preguntas en las etiquetas