CipherSaber es un protocolo de cifrado simétrico simple basado en el cifrado de flujo RC4 . Sus objetivos son tanto técnicos como políticos : proporciona una protección razonablemente fuerte de la confidencialidad de los mensajes, pero está diseñado para ser lo suficientemente simple como para que incluso los programadores novatos puedan memorizar el algoritmo e implementarlo desde cero. Según el diseñador, una versión de CipherSaber en el lenguaje de programación QBASIC requiere solo dieciséis líneas de código. Su aspecto político es que, debido a que es tan simple, se puede volver a implementar en cualquier lugar y en cualquier momento, por lo que proporciona una forma de que los usuarios se comuniquen de forma privada incluso si el gobierno u otros controles hacen que la distribución de software criptográfico normal sea completamente imposible.
Historia y propósito
Arnold Reinhold inventó CipherSaber para mantener la criptografía segura en manos del público. Muchos gobiernos han implementado restricciones legales sobre quién puede usar la criptografía, y muchos más las han propuesto. Al publicar detalles sobre un algoritmo de cifrado seguro y fácil de programar, Reinhold espera mantener la tecnología de cifrado accesible para todos.
A diferencia de programas como PGP , que se distribuyen como software preescrito y fácil de usar, Reinhold publica CipherSaber sólo como una especificación. La especificación está pensada para ser tan simple que incluso un programador principiante pueda implementarla fácilmente. Como explica el sitio web de CipherSaber [1]:
- En la trilogía de La guerra de las galaxias de George Lucas , se esperaba que los caballeros Jedi fabricaran sus propios sables de luz . El mensaje era claro: un guerrero que se enfrenta a un imperio poderoso empeñado en el control totalitario debe ser autosuficiente. En vista de que nos enfrentamos a una amenaza real de prohibición de la distribución de criptografía fuerte, en los Estados Unidos y posiblemente en todo el mundo, deberíamos emular a los maestros Jedi y aprender a construir programas de criptografía fuerte por nuestra cuenta. Si esto se puede hacer, la criptografía fuerte será imposible de suprimir.
El sitio web tiene un archivo gráfico que se muestra como un certificado "CipherKnight"; sin embargo, ese archivo está cifrado utilizando CipherSaber con una clave conocida publicada junto con el archivo. Los usuarios pueden ver el gráfico (y opcionalmente imprimirlo para enmarcarlo) escribiendo primero su propia implementación de CipherSaber para descifrar el archivo. Al escribir su propia implementación y realizar algunas otras pequeñas tareas, el usuario se convierte en un CipherKnight y el certificado descifrado da fe de su condición de caballero. Por lo tanto, en lugar de proporcionar una herramienta lista para usar, el diseñador de CipherSaber espera ayudar a los usuarios de computadoras a comprender que son capaces de crear sus propios programas de criptografía sin tener que depender de desarrolladores profesionales o del permiso del gobierno.
Descripción técnica
En la versión original de CipherSaber (ahora llamada CipherSaber-1 o CS1), cada mensaje cifrado comienza con un vector de inicialización aleatorio de diez bytes (IV). Este IV se añade a la clave de CipherSaber para formar la entrada al algoritmo de configuración de clave RC4. El mensaje, al que se le aplica la operación XOR con el flujo de claves RC4 , sigue inmediatamente.
El ataque de Fluhrer, Mantin y Shamir a RC4 ha dejado a CipherSaber-1 vulnerable si se envía una gran cantidad (>1000) de mensajes con la misma clave de CipherSaber. Para solucionar este problema, el diseñador de CipherSaber ha creado un protocolo modificado (llamado CipherSaber-2) en el que el bucle de configuración de la clave RC4 se repite varias veces (se recomiendan 20). Además de acordar una clave secreta, las partes que se comunican con CipherSaber-2 deben acordar cuántas veces repetir este bucle.
La salida del texto cifrado es un flujo de bytes binarios que está diseñado para ser "indistinguible del ruido aleatorio". [1] Para su uso con sistemas de comunicaciones que sólo pueden aceptar datos ASCII , el autor recomienda codificar el flujo de bytes como dígitos hexadecimales. Esto es menos eficiente que, por ejemplo, la codificación MIME base64 , pero es mucho más simple de programar, lo que se ajusta al objetivo de CipherSaber de máxima facilidad de implementación.
Seguridad y usabilidad
CipherSaber es lo suficientemente fuerte y utilizable como para hacer valer su punto de vista político de manera efectiva. Sin embargo, se queda muy lejos de la seguridad y conveniencia que uno normalmente esperaría de un criptosistema de este tipo. Mientras que los CipherKnights pueden usar CipherSaber para intercambiar mensajes ocasionales entre sí de manera razonablemente segura, ya sea por diversión o en tiempos de gran angustia, CipherSaber despoja a la criptografía de sus elementos esenciales y no ofrece suficientes características para ser adecuado para una amplia implementación y un uso diario rutinario. De hecho, el autor de CipherSaber pide a los usuarios que descarguen e instalen PGP como uno de los pasos para convertirse en un CipherKnight. CipherSaber puede verse como un sistema de reserva de último recurso para usar si se prohíben programas como PGP . Algunos, pero no todos, los sacrificios y deficiencias de CipherSaber son exclusivos de RC4.
- CipherSaber no proporciona autenticación de mensajes . Esta vulnerabilidad, compartida por todos los cifrados de flujo puros, es fácil de explotar. Por ejemplo, un atacante que sabe que el mensaje contiene " Nos vemos con Jane y conmigo mañana a las 3:30 pm " en un punto determinado puede recuperar el flujo de claves en ese punto a partir del texto cifrado y el texto sin formato. Luego, el atacante puede reemplazar el contenido original con cualquier otro contenido de exactamente la misma longitud, como " La reunión de las 3:30 se cancela, quédese en casa " cifrándolo con el flujo de claves recuperado, sin conocer la clave de cifrado.
- Al igual que la mayoría de los sistemas de cifrado que se utilizan actualmente para la transferencia masiva de datos, CipherSaber es un sistema de cifrado de clave simétrica. Por lo tanto, cada par de usuarios que se comunican debe acordar de algún modo de forma segura una clave de cifrado, y cada usuario debe almacenar de forma segura las claves de cifrado de aquellos con los que se va a comunicar. Acordar claves de cifrado cuando los únicos canales de comunicación disponibles no son seguros es el clásico problema del huevo y la gallina que se resuelve mediante la criptografía de clave pública que ofrecen los programas tipo PGP. Evitar la necesidad de acuerdos seguros de clave simétrica entre cada par de usuarios es muy conveniente y, en general, mejora la seguridad. Un protocolo que se suele utilizar para lograr una buena eficiencia y comodidad es utilizar un sistema de cifrado de clave pública, como RSA, para el intercambio de claves y, a continuación, un sistema de cifrado de clave simétrica, como CipherSaber, para la transferencia masiva de datos utilizando la clave negociada.
- La configuración de claves corta RC4 utilizada en CipherSaber-1 está rota: ahora se sabe que la programación de claves original de RC4 es demasiado débil para proteger una gran cantidad de textos cifrados utilizando la misma clave. CipherSaber-2 modifica el procedimiento de configuración de claves de CipherSaber-1 repitiéndolo varias veces con la esperanza de mejorar su seguridad (el resultado es equivalente a utilizar RC4 convencional comenzando con una clave que ha sido preprocesada por un algoritmo complejo). Si bien se cree que este procedimiento cierra la vulnerabilidad de programación de claves de RC4, su efectividad no ha sido probada.
- Al igual que cualquier cifrado de clave elegida, ambas versiones de CipherSaber son vulnerables a ataques de diccionario si la clave elegida (que normalmente sería una contraseña o frase de contraseña) no tiene suficiente entropía . Las implementaciones de criptografía de clave simétrica suelen incluir una función para generar claves aleatorias cuando se requiere alta seguridad. El sitio de CipherSaber recomienda generar frases de contraseña aleatorias de alta entropía utilizando Diceware .
- Al igual que la mayoría de los demás sistemas criptográficos (incluido PGP ), CipherSaber no tiene ninguna previsión para evitar que los atacantes detecten (en lugar de descifrar) los mensajes cifrados. Este es un problema potencialmente grave en algunas situaciones para las que se diseñó CipherSaber: si el gobierno ha prohibido la distribución de software criptográfico, probablemente también querrá atacar a cualquiera que encuentre enviando mensajes cifrados. Consulte el análisis de tráfico y la esteganografía para obtener más información sobre estos problemas y sus contramedidas.
Referencias
- ^ Arnold Reinhold, página de inicio de CipherSaber
Lectura adicional
- Levine, John R. , ed. (2000). Secretos de Internet (2.ª ed.). IDG Books . ISBN 0-7645-3239-1.