La solución al problema de las claves seguras: NullPass+

En la actualidad utilizamos tantos servicios on-line diferentes y heterogéneos que es muy complicado gestionar todas las claves que debemos manejar. Yo mismo manejo varios centenares de claves diferentes, lo cual por si mismo es todo un reto. Pero es que además, si realmente quieres que sean seguras, deberías usar una clave compleja, larga y diferente para cada uno de los servicios que utilices.

La realidad es que, al final, la mayor parte de los usuarios hacen justo lo que jamás deberían hacer: utilizar una misma clave, sencilla y fácil de recordar, para todos los servicios. Problema resuelto para ellos, pero luego pasan “cosas extrañas”.

Algunas opciones para guardar tus claves de manera segura

Lo de las claves es algo que ha mejorado bastante en los últimos años gracias a la posibilidad de loguearse en muchos sitios usando tu cuenta en algún servicio popular como GMail, Facebook o Twitter. Lo bueno de eso es que solo tienes que preocuparte de una cuenta, así que puedes tener una clave robusta que recordar. Lo malo es que en muchos sitios no es posible hacerlo, y en otros simplemente no te da la gana de darles acceso a tus datos personales en la red social de turno. Así que es poco más que un paliativo.

Otra opción cada vez más popular es usar un gestor de claves on-line como LastPass o similar. Yo personalmente no lo veo una opción. Ningún sistema está blindado en lo que respecta a seguridad y me da igual que solo se puedan descifrar las claves usando tu clave principal: tarde o temprano aparecen problemas.

También existen gestores de claves seguros que funcionan off-line (en local) y que permiten sincronizar las claves entre equipos a través de alguna “nube” de archivos como Dropbox. A mi personalmente me gusta bastante KeePass, que encima es gratuito y funciona en casi cualquier dispositivo que te puedas imaginar. Lo que me ocurre con este tipo de servicios es que los veo poco operativos: tienes que mantener las claves bien clasificadas, localizarlas para leerlas, cambiarlas, etc… Y es un engorro mayor si tienes que acceder a ellas desde el móvil.

Al final tradicionalmente he venido utilizando un enorme archivo de texto que guardo en una unidad encriptada con una clave fuerte, que es la única que debo recordar. Esta unidad encriptada la sincronizo entre los diferentes equipos usando un disco “cloud”. Me facilita la vida porque el manejo del archivo de texto es muy sencillo y ágil, pero sigue siendo un verdadero engorro, sobre todo -nuevamente- en el móvil :-S

Una solución mejor

Hace un par de semanas estaba en un restaurante con unos amigos, cuando surgió el tema de las malditas claves. Ellos son usuarios “de a pié”, pero usan multitud de cuentas de todo tipo y deben recordar decenas de claves. Al final acababan haciendo lo de todo el mundo: usan una o dos claves sencillas en todas partes. ¡Error!.

Así que a raíz de esa conversación y de ver las malas prácticas que la situación está provocando, se me ocurrió pensar si habría algún sistema mejor para solucionar el problema, algo que no me había planteado antes.

Lo que pensé es que el sistema ideal debería cumplir los siguientes requisitos:

  1. Solo sería necesario recordar una única clave.
  2. Las claves no deberían almacenarse en ningún lado. Esto nos evita tener que andar almacenándolas en la nube, sincronizar archivos o dar la posibilidad de que alguien pueda acceder a ellas. Simplemente no estarían guardadas.
  3. Debería valer para cualquier tipo de servicio, aunque tengan requisitos de complejidad o longitud muy altos.

Y se me vino a la cabeza enseguida un sistema bastante sencillo pero efectivo capaz de conseguir todo lo anterior. Se trataba de crear un generador de claves que, a partir de una única clave larga y segura y el nombre del servicio, sería capaz de generar siempre la misma clave compleja, sin necesidad de anotarla en ningún lado.

SIGUE LEYENDO para obtener la solución y poder usar NullPass+, que te permitirá hacer todo lo que se indica más arriba, sin conexión a Internet y desde cualquier móvil, tablet o escritorio.

Módulo para notificaciones web desde el navegador con HTML5

campusMVP_Notification

Estos días he estado creando un módulo JavaScript para facilitar el uso de las notificaciones del navegador usando la API estándar "Web Notifications" del World Wide Web Consortium (W3C).

La idea es poder mostrar notificaciones nativas al usuario (de las que aparecen al lado del reloj en Windows, por ejemplo) pero desde aplicaciones web. Por ejemplo, cuando llega un nuevo correo (como hace GMail), o cualquier otra circunstancia que necesitemos notificar en segundo plano al usuario, pero desde el navegador.

Actualmente el único navegador que NO las soporta es Internet Explorer / Edge, y no parece que tengan intención de soportarlas tampoco, pero en todos los demás funcionarán sin problemas.

En su día escribí un artículo explicando con detalle cómo utilizarlas "a pelo", sin usar ninguna biblioteca intermedia. Esto es una especie de continuación. Lo que he hecho es crear una biblioteca que, en mi opinión, hace más sencillo el uso de esta característica. Además homogeniza cuestiones como el tiempo de mostrar una notificación o el estado actual de permisos para mostrarlas.

Se trata de un modulo dual y se puede utilizar tanto directamente, incluyéndolo con una etiqueta <script> normal y corriente, como mediante inyección de dependencias con AMD (por ejemplo con Require.js).

He creado un repositorio en GitHub que incluye:

  • Documentación completa del módulo, con explicaciones de las funciones expuestas, su funcionamiento, etc… De momento está solo en inglés, pero entiendo que no debería suponer demasiado problema.
  • El código fuente completo (WebNotifications.js). Incluye comentarios explicativos para entender mejor cómo funciona.
  • La versión minimizada del módulo (WebNotifications.min.js), para usarlo con la mínima carga posible (962 bytes). Incluye un archivo de mapa (WebNotifications.min.js.map) para ayudar a la depuración en producción si fuera necesario.
  • Un archivo de ejemplo de uso (WebNotificationsTest.htm) que implementa todas las funcionalidades para comprobar que funcionan (debe usarse desde un servidor web: en local no funcionará).

¡Espero que lo encuentres útil!