Una agenda de contactos cifrada
2022-09-01
#contactos #cifrado #bash #terminal #linux
Quería una agenda de contactos cifrada y extremadamente sencilla apoyada en un archivo de fácil cifrado y descifrado. Para ello me he apoyado en estos comandos:
- select, para crear un menú.
- ccrypt, para cifrar. Si no lo tienes, instálalo.
- less, para visualizar el contenido de la salida de ccat (ccrypt) y hacer búsquedas en los contactos
- sed, para poder eliminar contactos a partir de su nombre.
- sort, para ordenar alfabéticamente la salida.
- column, para que la visualización de columnas sea adecuada.
En el proceso de entrada y eliminación de contactos he reducido a un instante el tiempo durante el cual el archivo de contactos existe descifrado en el pc, y para la visualización y búsqueda de contactos, con ccat y less ni tan siquiera llega a generarse el archivo descifrado. Es lo más cercano que he encontrado a lo que sería eso que llaman "cifrado homomórfico", que todavía parece que no existe.
Primeros pasos
Para empezar deberás crear el archivo de contactos y cifrarlo manualmente con ccencrypt, por ejemplo el archivo ~/Documentos/contactos, tras cifrarlo el archivo quedará como contactos.cpt
Para que ccrypt lea automáticamente la contraseña de cifrado para la creación o eliminación de contactos, deberás crear un archivo cuya primera línea será la contraseña, en mi caso es el archivo ~/Documentos/clave.key. A ese archivo dale permiso de lectura y escritura sólo para tu usuario, con "chmod 600 clave.key". Para la lectura y búsqueda de contactos sí que deberás introducir la contraseña. No es del todo seguro pero si nadie se loguea por tí en tu PC supongo que no habrá ningún problema, y si extraen tu archivo de contactos, pues estará cifrado.
Si seleccionas la opción de visualizar contactos, la pantalla se pondrá en negro, introduce entonces la contraseña de cifrado y visualizarás el contenido del archivo de contactos. También podrás buscar y moverte por el listado de contactos con estas opciones, que son las del comando less:
- /palabra Para hacer una búsqueda, se resaltarán los resultados
- n Se va al siguiente resultado de búsqueda
- N Se va al anterior resultado de búsqueda
- q Salimos al prompt
- g Ir al principio
- 20g Ir a la línea 20
- G Ir al final del documento
- 45p o 45% Ir al 45% del documento
- j,k, 10j,5j,3k... Como en VIM, j,k nos movemos hacia abajo o arriba
Script en bash de una agenda de contactos cifrada:
Este es el script, crea un archivo en un directorio que esté incluido en el $PATH para que sea ejecutable desde cualquier directorio. En mi caso tengo el script en el archivo ~/bin/contactos . Copia el contenido del script en ese archivo y haz el archivo ejecutable con 'chmod +x contactos'.
Y ya está, ejecuta 'contactos' y ya tienes una agenda telefónica cifrada.