Distintos modelos de seguridad son garantizados por distintos esquemas y a la vez, todos ellos son susceptibles a vulnerabilidades y ataques. A continuación algunos de los elementos, conceptos y principios que están presentes en la seguridad de la información.
De todas formas, cuando los ordenadores cuánticos sean realmente operativos, los siguiente conceptos dejarán de tener validez y deberán ser modificados o reemplazados por otros, un ejemplo que originará la modificación de estas ideas es el ataque de Shor (algoritmo de factorización cuántica). Por tanto, la criptografía dejará de tener sentido, la Seguridad Computacional no tendrá aplicación tal como está escrita, etc. Para abordar este futuro se está pensando en soluciones basadas en criptografía de retículos (Lattice), hablaremos más adelante.
Elementos.
Existen muchos componentes que afectan y deben estar alineados para suministrar seguridad. Los términos que son básicos en el lenguaje utlizado son los siguientes:
Texto en claro o plano. Es la información o mensaje que se desea transmitir y/o cifrar. Con toda seguridad la trasladaremos a un formato digital para ser cifrada y luego enviada.
Clave o llave. Es la palabra o conjunto de caracteres necesarios para cifrar/descifrar el mensaje. En algunos casos la clave es apoyada por otros elementos como la S-BOX, nonce, Vector de inicialización (IV), etc.
Cifrado / Descifrado. Son los algoritmos que convierten la información Tc (Texto en claro) en ininteligible, está es enviada al receptor que utilizará otro algoritmo (Descifrado) para convertirla nuevamente en texto en claro. Fundamentalmente nos podemos encontrar con dos tipos de cifrados:
- Según su clave.
- Simétrico. Cuando ambos interlocutores (Emisor y Receptor) conocen la clave privada con la cual se ha cifrado el mensaje.
- Asimétrico o de clave pública. Se manejan dos claves una pública y otra privada.
- Según el algoritmo.
- Cifrado por bloques. La información se divide en partes de un tamaño específico (Bloques), cifrándose cada bloque por separado.
- Cifrado en flujo. La información se cifra de forma continua, sin dividirla.
Código / Criptograma. Es el texto cifrado que utilizará el receptos para descifralo.
Conceptos.
Clásicos
- Disponibilidad. La información y los recursos que intervienen en su tratamiento y flujo sólo deben estar disponibles para los usuarios, entidades, procesos y programas autorizados.
- Integridad. Garantiza que los datos y/o información que fueron enviados y/o estaban almacenados son los originales y no se han falseado. Podemos garantizarlo con una herramienta Hash o función resumen.
- Confidencialidad. Es la propiedad que garantiza quién puede acceder a la información y en qué momento.
Modernos
- Autentificación. Mediante este mecanismo un individuo, ordenador u organización es capaz de probar su identidad, de esta forma cualquiera de las partes puede saber si la otra parte es quien dice ser. La autenticación se lleva a cabo verificando información que el usuario proporciona con la que previamente se conocía de él. Los métodos existentes se basan en los siguientes factores:
- Demostración del conocimiento de algún tipo de información propietaria, como las palabras de paso / contraseñas.
- Posesión de algún tipo de objeto propietario como una llave o tarjeta.
- Demostración de alguna característica biométrica : huella digital, retina.
- Evidencia que un tercera entidad certificadora ha establecido previamente la identidad del demandante
- Autorización. Es el control de acceso a una determinada información, una vez que la identidad ha sido comprobada. Consiste en limitar las acciones y operaciones que un usuario identificado es capaz de realizar en el entorno basándose en los niveles de seguridad. Algunos ejemplos son : creación y destrucción, lectura, escritura, exportación, importación y ejecución. Los privilegios pueden ser controlados por los administradores de sistemas mediante las listas de control de acceso (ACL — access control list). La autorización está asociada estrechamente a la publicación electrónica y protección de los derechos de propiedad intelectual.
- No rechazo. Esta propiedad permite y asegura que cualquier entidad que envía o recibe información no puede alegar ante terceros que no la envió o la recibió. Una forma de garantizarlo es mediante el uso de firmas digitales.
Definiciones.
Seguridad perfecta. Un sistema de cifrado logra ser perfecto si, dada una clave k ∈ K, y un atacante que obtiene un texto cifrado “c” ∈ C, es incapaz de obtener información relevante sobre el texto en claro “m” ∈ M que lo produjo. En este caso es posible comprobar la seguridad de forma matemática y no se ponen restricciones en cuanto al poder de cómputo del atacante. Expuesto tal como lo dijo Claude E. Shannon:
Un esquema de cifrado (KG,Enc(k),Dec(k)) sobre un espacio de mensajes M tal que |M| = |K| = |C| es considerado perfectamente seguro si y solo si:
- La clave k ∈ K es elegida con igual probabilidad 1/K por el algoritmo generador de llaves KG
- Para cada mensaje m ∈ M y cada texto cifrado c ∈ C, existe una única clave k ∈ K tal que Enc(k,m) = c
Este planteamiento tiene un par de problemas y nos obligan a buscar soluciones más prácticas:
- Cada clave k debe ser utilizada una única vez.
- El espacio de claves K debe ser tan grande, como mínimo, como el espacio de mensajes M.
Seguridad Computacional. Nos proporciona la seguridad de que un sistema de cifrado puede ser roto, pero el tiempo que necesita el atacante es tan grande (con los medios actuales 2.016), que se hace inviable. Se origina para resolver el problema de claves de la seguridad perfecta. Toma los principios de Kerckhoffs, fundamentalmente el 1º, que indica que el sistema debe ser en la práctica indescifrable, en caso de que no lo sea matemáticamente. Permiten cifrar mensajes extensos con claves relativamente pequeñas, comparamos Mensaje =Mega o Gibabytes con Kclave = bits.
Podemos verla desde dos enfoques distintos:
- Concreto. Especifica los límites exactos sobre la probabilidad de éxito y el tiempo utilizado por el atacante. Es decir (t, p), un atacante utilizando un tiempo t tiene una probabilidad p de éxito. El problema con esta visión es que no sabemos si el atacante utiliza el doble o la mitad del tiempo t, ni tampoco su capacidad tecnológica.
- Asintótico. En esta visión el tiempo como la probabilidad de éxito son vistos como funciones de un parámetro de seguridad, un entero n, establecido por los intervinientes que se supone será conocido por el atacante. El ataque es un algoritmo probabilístico de tiempo polinomial (con dos constantes a y p, el algoritmo se ejecuta en tiempo a ∗ np). La probabilidad de rotura será mínima cuando su valor sea menor a cualquier inverso polinomial en n, es decir, dada la constante p la probabilidad de éxito es menor que n-p.
Seguridad demostrable. La seguridad “demostrable” se refiere a si es posible mostrar de alguna forma que romper un código es tan difícil como resolver un problema conocido que se supone intratable. Se supone difícil porque aunque no existe un método de resolverlo en un tiempo razonable, tampoco existe una prueba de que en realidad lo sea. Ejemplos no faltan:
- La factorización de grandes enteros. En 1.998 D. Boneh y R. Venkatesan mostraron que para un exponente pequeño de cifrado e, la existencia de una reducción algebraica eficiente implicaría que la factorización entera es un problema fácil y sabemos que no lo es, no lo es debido al problema de la inversión de la función y = xe (mod N) de RSA, los autores indican que es muy probable que no exista solución.
- La resolución de logaritmos discretos. Es igual que falsificar las firmas Schnorr que han sido propuestas como mejora de Bitcoin ó los problemas computacionales y decisional de Diffie-Hellman.
Ambas situaciones son tremendamente difíciles de resolver.
Seguridad semántica (SS). Es un análogo de complejidad computacional, de la definición de privacidad perfecta de Shannon, y representa la imposibilidad de aprender algo sobre el texto plano del texto cifrado. Fue presentada por S. Goldwasser y S. Micali en 1982 y dice: “Para que un criptosistema sea semánticamente seguro no debe ser viable para un atacante, computacionalmente vinculado, obtener información significativa sobre un mensaje (texto claro) cuando se le da solo su texto cifrado y la clave de cifrado pública correspondiente. La seguridad semántica considera solo el caso de un atacante “pasivo”.
Indistinguibilidad (IND). Es la imposibilidad de distinguir entre encriptaciones de un par de mensajes determinados. La seguridad semántica (SS) es equivalente a la propiedad de Indistinguibilidad (IND), esta equivalencia hace que la definición de indistinguibilidad se use más comúnmente que la definición original de seguridad semántica.
No maleabilidad (NM). El concepto fue introducido por D. Dolev, C. Dwork y M. Naor en 1991, dice: obtenido un texto cifrado, no debería ser viable generar textos cifrados cuyos descifrados estén relacionados con el descifrado del texto cifrado obtenido.
Ataques.
Estas son algunas de las formas más conocidas de romper las medidas que se han puesto para garantizar el envío de información, según los conceptos expuestos anteriormente. Normalmente se utlizan a través herramientas automatizadas que debido a su cantidad y diversidad no las relacionamos aquí.
Análisis de frecuencia o ataque de texto cifrado.
Este ataque se produce cuando la información conocida es sólo el texto cifrado. En este caso, el análisis de frecuencia es la única herramienta con la que se cuenta, es decir, contar el número de veces que cada letra aparece en el texto cifrado, para ello deberemos obtener las letras más comunes del idioma en el cual está escrito el texto. Existen variantes en función del tipo de cifrado utilizado:
- Si identificamos las letras comunes, posiblemente el texto cifrado sea de transposición.
- Si las letras comunes no son las más comunes en el texto cifrado, posiblemente el texto cifrado sea de sustitución.
- El más difícil de los casos es encontrarnos cifrados sofisticados o que utilicen cifrados polialfabéticos
Ataque de fuerza bruta. Es el más elemental de todos los ataques, intenta producir todas las combinaciones posibles para generar la contraseña, esto implica el uso de rápidos procesadores, proceso en paralelo o gran disponibilidad de tiempo-máquina. También puede utilizar diccionarios que ayudan a reducir el tiempo necesario. Respecto al tiempo necesario, este es directamente proporcional a la longitud de la clave y cada bit añadido al tamaño de la clave duplica el tiempo para realizar el ataque. Las herramientas que relacionamos sólo son la punta del lápiz, existen muchas que trataremos más adelante:
- Crunch. Genera diccionarios con las palabras (Claves) que el atacante considera más adecuadas.
- Hydra. Utiliza diccionarios para tratar de romper el inicio de sesión de protocolos y herramientas tipo: Cisco AAA, FTP, POP3, Samba, etc.
- Nikto. Es una herramienta de muestreo y detección de configuraciones incorrectas y vulnerabilidades en servidores web.
De repetición. Se utiliza contra algoritmos que no incorporan protecciones temporales. El modo de actuación es el siguiente: Una vez interceptado el mensaje cifrado se repite el envío del mensaje capturado al destinatario, tratando de abrir una nueva sesión. Este ataque puede ser mitigado al incorporar una marca de tiempo o período de vencimiento en cada mensaje.
De implementación. El objetivo es identificar las debilidades en la implementación del sistema de criptografía, enfocándose tanto al código de software, como a los errores y vulnerabilidades identificadas.
Estadístico. Se fija en las debilidades estadísticas del sistema y en la capacidad de producir verdaderos números aleatorios.
Intermediario. El atacante fiscaliza la comunicación, captura los mensajes y la información de la sesión, el atacante responde a las solicitudes de inicialización del emisor y configura una sesión segura con el emisor. Acto seguido establece una segunda sesión segura con el destinatario utilizando una clave diferente y haciéndose pasar por el emisor.
Texto sin formato conocido. El atacante tiene una copia del texto cifrado junto con el texto en claro. Aplicable a los cifrados más simples.