En 1833 publicó un ensayo sobre criptografía militar, y estableció los principios, que debe reunir un sistema criptográfico. Hoy día, incluso tras la tremenda evolución técnica y matemática, todavía se consideran vigentes.
Principalmente el segundo principio de los enunciados. Este tiene tanta transcendencia, respecto a sistemas de cifrado, que él solo recibe el nombre de Principio de Kerckhoffs.
Dice así: 2º Il faut qu'il n'exige pas le secret, et qu'il puisse sans inconvénient tomber entre les mains de l'ennemi.
Que traducido: No debe ser secreto, y puede caer en manos enemigas sin inconveniente
Lo único que se debe mantener secreto es la clave.
De esta forma si el algoritmo de cifra cae en manos enemigas, no se ve comprometido el sistema de cifra, pues la seguridad del mismo recae sobre la seguridad de la clave. Es decir, de la calidad y secreto de la clave.
Si en un sistema de código abierto, la clave cae en manos enemigas, el daño es limitado, pues queda comprometida solo a la mensajería enviada con esa clave.
Se mantiene la seguridad de la mensajería enviada con claves anteriores y futuras, pues se puede cambiar rápidamente la clave.
Pues un sistema informático moderno, tanto el Hardware (PC, router o móvil) como el Software (sistema operativo o cualquier otra aplicación). es un edificio enorme con muchas puertas que guardar.
Para agravar el problema: No todas las puertas son conocidas por el creador-propietario de la casa.
Tenga en cuenta que el software moderno es muy complejo. Eso hace que pueda presentar fallos que son aprovechados para introducirse en él de forma inadvertida.
Para proteger la casa y permitir la entrada, solo a quien deseemos, tenemos dos opciones:
Así quedan expuestas todas las puertas, las que conocemos y las que no. De esta forma, al ser usadas y estudiadas públicamente, se terminan conociendo todas las puertas y todos los posibles agujeros.
En este caso, el enemigo puede entretenerse en ir examinando las paredes (ingeniería inversa) hasta encontrar las puertas blancas. Por ahora están protegidas porque tienen también cerradura. Se la hemos puesto nosotros y solo nosotros podemos usarlas.
El problema surge de esas puertas que no conocemos (puerta trasera). Como no las conocemos, no les hemos puesto cerradura, y pueden ser usadas por el enemigo sin que nosotros lo percibamos (dia cero).
De esta forma, se emiten los parches de seguridad que hace que el software madure rápidamente y sea estable en poco tiempo. Esto es, la seguridad del software no depende de la calidad del mismo, ya que rápidamente alcanza un nivel de seguridad elevado. Rápidamente se convierte en un software maduro.
Por su claridad y sencillez, ha alcanzado un grado de seguridad tal, que es el más usado hoy día por todos los sistemas cripto del mundo. Tanto a nivel estatal, militar, comercial, etc.
Podemos aventurar que la mayoría de la economía mundial, depende de este sistema de cifra abierto (ver artículo: Firma y certificado digital).
Por contrapartida, un software oculto presenta incertidumbres para garantizar su seguridad:
Sin embargo, Si se produce una filtración del código, queda comprometido todo el sistema, pasado, presente y futuro. No así cuando se produce una filtración de la clave en un sistema abierto.
Esto se debe a que se produce un estudio intenso por el enemigo de todas las posible fallas del código, descubriendo debilidades que no conoce el propio programador. Lo que no garantiza que los parches de seguridad del creador solucionen todos los fallos.
Sin embargo, en la práctica, para redes de seguridad, los ingenieros mantienen los dos sistemas. Usan un sistema abierto y bien conocido, al que le añaden una pequeña modificación del algoritmo. De esta forma garantizan que solo ellos conocen el algoritmo real de cifra.
Debido a las complejidades matemáticas, la modificación que añaden debe ser lo suficientemente sencilla para no generar nuevas puertas desconocidas. De otro modo, tendrían las vulnerabilidades del sistema cerrado.
Sin embargo, tras ver los pros y contras, no hay más que mencionar las fugas de software que se han producido, casi siempre por el factor humano, para saber cual es y será más seguro. Siempre habrá empleados descontentos.
Haga Vd. mismo una búsqueda en Internet con las palabras "filtración código fuente" de cualquier sistema operativo, de cifrado, administración, etc; todos los sistemas tienen fugas.
Debemos también concretar el significado del término seguro y seguro para quién. Para la empresa propietaria que vende el sistema, por supuesto es más seguro, económicamente.
Para el usuario, es más seguro un sistema abierto.
Seguridad informática por
juan@segura.pro
está bajo licencia
CC BY-NC-SA 4.0
Propiedad intelectual registrada