Poniendo a salvo las claves de cifrado de los backups …

kablam_Panic… y es que esta noche he tenido una pesadilla horrorosa. Soñaba que uno de los servidores virtuales se estropeaba, no recuerdo por qué, pero me veía obligado a recuperarlo desde las copias de seguridad.

El lado pesadillesco viene cuando me doy cuenta de que todas las copias de seguridad que llevo realizando durante bastante tiempo, y en varios lugares, no valen absolutamente nada sin las claves de cifrado. Pero nada, nada.

Y esas claves de cifrado se guardan, lógicamente, en la máquina origen, la que ha fallecido y debo recuperar. ¿ Veis el drama ?

Cifrar las copias de seguridad tiene muchas ventajas. La principal para mí es que puedo usar sistemas que no tienen nada que ver entre sí (como los de mi trabajo, los míos personales o los de una amiga) para guardar copias unos de otros con la seguridad de que sólo ocupan espacio y un poco de ancho de banda. Los datos son impenetrables por mucho acceso que se tenga en la máquina que los almacena.

La desventaja, como se deduce, es que sin las claves de descifrado los datos sólo hace eso: ocupar espacio y malgastar ancho de banda. Ponerlas a salvo es una de esas tareas que uno aparta a un lado en el fragor de la batalla y que se resisten al olvido en forma de sueño molesto.

Vamos a ello.

Qué y cómo hay que conservar

En mi caso en concreto empleo -principalmente- el programa attic para realizar las copias. Dado que utiliza una clave criptográfica AES de 256 bits y una HMAC-SHA256 para verificar la autenticidad, conservados en un archivo concreto en la máquina origen, bastará con guardar su contenido para poder acceder a ellas.

Por cierto que el acceso no consiste sólo en la recuperación de datos, también en la manipulación de las copias, por lo que sin ellas no es posible ni añadir nueva información ni efectuar mantenimiento o consulta sobre ellas.

Pero en cualquier caso disponer de la clave no es la única información imprescindible; necesitamos más cosas, especialmente si las conexiones son raritas:

  • La dirección de la máquina origen: aquella de la que se realizan copias.
  • La dirección de la máquina destino: la que guarda las copias.
  • El tipo de acceso al repositorio de copias: usuario y contraseña, puerto, directorio destino, …

Y luego está el problema de dónde guardarlo de forma segura. No hay que olvidar que con esta información se dispone de acceso ilimitado a los datos guardados, a menos que se cuente con un segundo sistema de cifrado o alguna protección similar.

La primera idea es copiarlas a un lugar seguro, entendiendo éste como con uno con un acceso nulo o muy limitado desde el exterior, además de una buena organización para no olvidarse de dónde está. Porque esa es otra, a veces guardo tan bien las cosas que luego me veo obligado a perder el tiempo entre miles y miles de archivos hasta que consigo (o no) encontrarlas.

Seguidamente pienso en lo que puede ocurrir si la máquina donde se guardan las claves se cae o desaparece en el peor momento, y me doy cuenta de que los soportes físicos como el papel siguen siendo fiables y que son los que voy a tener que utilizar como recurso final. Impresos y guardados bajo llave, o escondidos en la cama del perro, a elegir.

Y me pongo manos a la obra

Una vez que sé qué datos debo conservar utilizo un formato de texto simple y llano para guardar una ficha de cada copia de seguridad.

También me planteo que como las claves son secuencias numéricas bastante largas, me vendría bien una forma de incorporarlas con sencillez a un portapapeles. Y pienso que los códigos QR son la solución más adecuada. Y busco y encuentro muchas herramientas para hacerlo; no es un problema.

El plan es el siguiente:

  1. Elegir un lugar (digital) donde guardar todas las claves.
  2. Abrir una ficha por cada una de ellas en un archivo simple.
  3. Crear una imagen QR de la clave y guardarla en un archivo.
  4. Imprimir la ficha junto con la imagen. Bien combinadas en un documento que haga bonito, bien por separado.
  5. Archivar en lugar seguro.

Todavía se puede ajustar un poco más si protejo criptográficamente el almacenamiento de todas las claves; de momento lo dejo así para poder pasar a la siguiente fase: probar las copias.

Un ejemplo

He registrado las copias (retocando algunos datos) en una ficha como la que menciono bajo el nombre de esferas.org.txt con este contenido:

Origen: esferas.org
Destino: backups.taquiones.net
Conexión: ssh://operador@backups.taquiones.net:998
Password: XXXXXXXX
Formato: repositorio attic

Clave: 
ATTIC KEY 61bc62c304cebce47c8a1f96993b7e150b835f5bee42ea104c5ab4c871958d3c
hqRzYWx02gAgW4Dy2kFxvFgHoI8s80j1VcADpuMgQ1KTWv9FibnIksdfdmVyc2lvbgGqaX
RlcmF0aW9uc84AAYagpGRhdGHaANBGjapalu87u8rjJ/FD0lrsdf+PQuffWu5kf3LL1P2Y
ZArrQZ9p/vV7NLLcuxHuN8wS6hqAwYavb7ufasVBFl7lGKv5ja2mJHk2w8irVPYajAVHI+
QwNU9LaWpaKgfcpnEL3tvIG0V2XfweN+ugmJg5dfqaJ4wnJGX6QvPAC9nbXrL7OqzbfnKF
bZn0ESYVjruHYuz1re+wkk6xpXQM5ssNsv8yVlecVKdfZasFgngTYw9crr6RHnpZ3O+O0S
5Xv0KA8x5RQRgOHvDVqqsvpqTkqWFsZ29yaXRobaZzaGEysfakaGFzaNoAIBL/Fvj9Nlci
jQEO2n4eWdhb3TdDWRM33n+ojUQPY5F9

Luego creo una imagen QR con los parámetros mínimos empleando qrencode

$ qrencode -o esferas.org.png < esferas.org.txt

esferas-orgHe probado a leerlo con Barcode Scanner en mi móvil y ha enviarme una copia al correo electrónico con muy buenos resultados (y rápidos).

seleccion_118Imprimirlo es muy sencillo, basta con crear un pequeño documento al que se añadan las dos informaciones y obtener una versión PDF. ¿ Por qué no basta con lo anterior ? Pues porque si tengo que escribir la ristra de cifras sin cometer error voy dado. Es mejor tenerlo todo en una única hoja.

sin-titulo-1-2-libreoffice-writer_120