En los tiempos que corren, una persona promedio debe recordar decenas de contraseñas (passwords). Esto se debe a que es el método de autenticación más utilizado en sistemas informáticos de todo tipo. Imaginen entonces el caso de los Sysadmins, que además de ser personas comunes y corrientes, deben recordar cientos de pares usuario/contraseña para acceder a todos los sistemas informáticos que administran con privilegios elevados: sistemas operativos, bases de datos, aplicaciones de alto nivel, correo, sistemas de virtualización, herramientas de backup, y un largo etcétera.

Lo que sucede comúnmente cuando uno debe recordar tantas contraseñas es que la seguridad va disminuyendo cada vez más. Un ser humano no es capaz de recordar tantas contraseñas, entonces puede que haga uno (o varias) de tres alternativas: 1- utilizar contraseñas débiles; 2- repetir contraseñas entre sistemas; ó 3- guardar las contraseñas en un medio inseguro. No hace falta que diga que utilizar contraseñas débiles (de poca longitud, palabras de diccionarios, predecibles) es una mala opción. Tampoco es una buena idea guardarlas en un medio no seguro (el clásico del post it pegado en el escritorio).

El problema de repetir contraseñas entre sistemas sin embargo, es más sutil. Uno puede aducir que no importa si repite una misma contraseña entre varios sistemas, siempre que esta tenga una complejidad prácticamente indescifrable. El error en esta forma de pensar es que uno no tiene en cuenta el problema del almacenamiento seguro de contraseñas. ¿Qué pasa si uno de los sistemas ve vulnerada su seguridad y divulga las claves de los usuarios (pasa todo el tiempo, hay cientos de ejemplos, nadie de salva). Claramente quien logre acceder a nuestra clave replicada, podrá acceder a todos los sistemas que la comparten.

La situación es esta, necesitamos claves fuertes y únicas para todos los sistemas a los que accedemos, pero nuestra memoria no alcanza para recordar tantas. Es allí cuando surgen las herramientas de gestión y almacenamiento de contraseñas de forma segura. La idea detrás de estas aplicaciones es guardar todas nuestras contraseñas en una base de datos encriptada (almacenada en un archivo generalmente) mediante una clave maestra. De esta forma necesitamos recordar una única clave, la de encriptación de la base de datos, y resguardar el archivo generado en un lugar seguro (o varios lugares diferentes) para que no se pierda ni se corrompa.

Cuando comenzó mi carrera de Sysadmin lo primero que utilicé fue un volumen encriptado con TrueCrypt, el cual contenía archivos con los pares usuario/contraseña para cada sistema. El día que TrueCrypt se auto declaró vulnerable por razones desconocidas (no divulgadas, lo cual invita a pensar que fue algo extremadamente grave) simplemente dejé de usarlo. Para ese momento ya lo había reemplazado por Password Gorilla gracias a un colega. Esta herramienta funciona muy bien y corre tanto en Windows como GNU/Linux. No tengo queja alguna y nunca me ha dado problemas, pero ver ese gorila con un candado siempre me pareció poco serio (:S). Cuestiones de gustos. Por eso me decidí a probar definitivamente KeePass.



KeePass es un gestor de contraseñas open source que sirve para almacenar las contraseñas de manera segura. Es posible guardar todas nuestras contraseñas en una única base de datos, la cual es encriptada con una clave maestra o un archivo de clave (clave privada). De esta forma es necesario recordar sólo una contraseña o seleccionar el archivo de clave privada para desbloquear la base de datos, las cuales son encrptadas utilizando los algoritmos de cifrado más seguros actualmente conocidos: AES y Twofish.

KeePass está desarrollado utilizando el .NET Framework de Microsoft, ya que inicialmente fue pensado para sistemas Windows, pero actualmente funciona también en GNU/Linux gracias a Mono.

Como saben algunos, mi computadora personal corre Slackware 14.1, por ello en este artículo voy a explicar cómo instalar KeePass en Slackware 14 de 64 bits a partir de su SlackBuild.

http://slackbuilds.org/repository/14.1/misc/KeePass/

KeePass requiere de mono y libgdiplus para su funcionamiento. Descargar los fuentes y SlackBuilds de mono y libgdiplus:

$ wget http://origin-download.mono-project.com/sources/libgdiplus/libgdiplus-3.12.tar.gz
$ wget http://slackbuilds.org/slackbuilds/14.1/libraries/libgdiplus.tar.gz
$ wget http://download.mono-project.com/sources/mono/mono-3.10.0.tar.bz2
$ wget http://slackbuilds.org/slackbuilds/14.1/development/mono.tar.gz

Generar el paquete para mono:

$ tar xf mono.tar.gz
$ cd mono
$ sudo ./mono.SlackBuild
$ sudo mv /tmp/mono-3.10.0-x86_64-1_SBo.tgz ..
$ cd ..
$ rm -fr mono

Generar el paquete para libgdiplus:

$ tar xf libgdiplus.tar.gz
$ cp libgdiplus-3.12.tar.gz libgdiplus
$ cp libgdiplus-3.12.tar.gz libgdiplus
$ sudo ./libgdiplus.SlackBuild
$ sudo mv /tmp/libgdiplus-3.12-x86_64-1_SBo.tgz ..
$ rm -fr libgdiplus

Descargar los fuentes y SlackBuild de KeePass:

$ wget http://downloads.sourceforge.net/keepass/KeePass-2.30.zip
$ wget http://downloads.sourceforge.net/keepass/KeePass-2.30-Source.zip
$ wget http://slackbuilds.org/slackbuilds/14.1/misc/KeePass.tar.gz
$ tar xf KeePass.tar.gz 
$ cp KeePass-2.30.zip KeePass-2.30-Source.zip KeePass
$ cd KeePass
$ sudo ./KeePass.Slackbuild
$ sudo mv /tmp/KeePass-2.30-x86_64-1_SBo.tgz ..
$ cd ..
$ rm -fr KeePass

Instalar "libgdiplus", "mono" y luego "KeePass":

$ sudo installpkg libgdiplus-3.12-x86_64-1_SBo.tgz
$ sudo installpkg mono-3.10.0-x86_64-1_SBo.tgz
$ sudo installpkg KeePass-2.30-x86_64-1_SBo.tgz

Una vez instalado, lazar KeePass ejecutando:

$ keepass

En mi caso, la aplicación encontró un error causado por Mono:

System.TypeInitializationException: An exception was thrown by the type initializer for Mono.Unix.Native.Syscall ---> System.DllNotFoundException: /usr/lib/libMonoPosixHelper.so

Para solucionarlo, seguí los pasos de este artículo. Editar el archivo de configuración de Mono:

$ sudo nano /etc/mono/config

Y comentar la línea de configuración de "libMonoPosixHelper.so" utilizando sintaxis HTML:

<!--    <dllmap dll="MonoPosixHelper" target="/usr/lib/libMonoPosixHelper.so" os="!windows" />-->

Ahora KeePass funciona correctamente:

$ keepass

El primer paso pregunta si se desea verificar automáticamente por nuevas actualizaciones:

Una vez que se abre la ventana principal, es posible crear una nueva base de datos utilizando el primer icono desde la izquierda:

Especificar un nombre de archivo y ubicación:

Ingresar la clave maestra (debe ser lo más fuerte posible, de gran longitud, incluyendo letras mayúsculas, minúsculas, números y símbolos):

En la siguiente ventana es posible configurar algunos parámetros opcionales:

Finalmente tenemos nuestra base de datos inicializada con algunos valores de ejemplo:

En la columna de la izquierda se encuentran los datos de acceso a diferentes sistemas organizados por grupos, los cuales se pueden modificar/agregar/eliminar. En la ventana principal se configuran los datos de acceso para un sistema o grupo en particular.

Al terminar de cargar nuestras contraseñas, al momento de cerrar la aplicación, guardar los cambios en la base de datos.

Ahora nuestras contraseñas están seguras. Eso sí: ¡no olvidar la clave maestra por nada del mundo!


Tal vez pueda interesarte


Compartí este artículo