La seguridad en KMKey Makhno

Hemos puesto especial empeño en hacer hacer de KMKey Makhno un producto con el máximo de garantías en cuanto a seguridad. Para ello hemos llevado a cabo diversas mejoras, que junto con las ya existentes en versiones anteriores y las propias de la plataforma Zope, ofrecen el máximo de protección frente a posibles intrusiones. Pasamos a detallar a continuación el funcionamiento de los distintos componentes implicados:

1) Seguridad de los datos. Para garantizar que cada objeto es visible únicamente para aquellos usuarios que dispongan de los permisos pertinentes, KMKey confía en la probada robustez de Zope (el servidor de aplicaciones) y su immejorable sistema de permisos y control de accesos sobre ZODB, que permiten granular al máximo la definición de los accesos.

2) Seguridad en la autentificación. Uno de los puntos vulnerables de cualquier aplicación web o cliente/servidor es aquel en que el usuario se autentifica, es decir, proporciona su usuario y su password, y éste viaja a través de la red. Este proceso es susceptible de ser interceptado por terceros (por ejemplo mediante el uso de sniffers), cosa que les permitiría conocer el usuario y la clave. En este sentido, KMKey proporciona dos niveles de seguridad:

3) Seguridad de la sesión. Una vez el usuario ha sido autentificado, para mantener la sesión mientras se usa la aplicación, KMKey utiliza una cookie de sesión. Sabiendo que este sistema puede también ser vulnerable a ataques mediante sniffers, se ha implementado un modelos de sesiones que ofrezca las máximas garantías. Para ello se utiliza una cookie de sesión totalmente aleatoria, imposible de calcular, se hace caducar la sesión a los 20 minutos de inutilización, y se verifica en cada petición que la IP de origen coincide con la del usuario que ha abierto la sesión. De esta forma, aunque una cookie de una sesión en curso fuera "robada", el atacante sería rechazado por la verificación de IP's de origen. La única alternativa más segura que este sistema es el uso de certificados de cliente, pero son usados en muy pocas ocasiones por su complejidad de desplegado (generación de certificados para cada usuario e instalación en todos sus puestos de trabajo).

4) Seguridad de las comunicaciones. Todos los datos que circulan a través de internet sin una conexión segura HTTPS de las descritas anteriormete son susceptibles de ser interceptados y leídos por personas expertas en tráfico de redes. Por ello, si los datos contenidos en KMKey son de elevada confidencialidad, es recomendable el uso de alguna de las siguientes opciones:
5) Seguridad en el software base. Todo lo anterior puede no servir de nada si nuestro sofware de base, léase el sistema operativo o el servidor de aplicaciones, tiene errores graves de seguridad que permitan un acceso directo al servidor. Por ello recomendamos siempre instalar KMKey sobre servidores GNU/Linux con distribución Debian versión stable, usando apache 2 como servidor web y un firewall como iptables. Con una correcta configuración, son una muy buena protección contra ataques de intrusos.

Consejos prácticos: La seguridad es algo a tener muy en cuenta en la implementación de cualquier herramienta web, y tanto los servidores web como las aplicaciones deben ofrecer las máximas garantías. Ahora bien, debemos tener muy presente que el 90% de los ataques se realizan siempre sobre PC's de escritorio, que suelen ser infinitamente más vulnerables, y una vez conseguido el control del PC local, se actúa contra servidores que lo consideren "de confianza", o incluso se pueden encontrar documentos de usuarios y claves de acceso, o datos confidenciales en los escritorios de trabajo. Por ello, una buena política de cambio de passwords, o una correcta supervisión de los puestos de trabajo pueden ser tanto o más importantes que la seguridad del servidor.

Etiquetas: ,