Cómo proteger con contraseña archivos de texto usando Vim en Linux (o macOS)

El editor de texto vim, una herramienta estándar incluida en Linux y macOS, puede cifrar rápidamente archivos de texto con una contraseña. Es más rápido y conveniente que cifrar un archivo de texto con una utilidad separada. Aquí se explica cómo configurarlo.

Asegúrese de que Vim de su sistema tenga soporte de cifrado

Algunas distribuciones de Linux, incluido Ubuntu, incluyen una versión mínima de vim de forma predeterminada, pensada solo para la edición básica de texto. Por ejemplo, Ubuntu llama a este paquete «vim-tiny». Si intenta utilizar el cifrado en una versión tan mínima de vim, verá el mensaje «Lo sentimos, este comando no está disponible en esta versión».

Es posible que deba instalar la versión completa de vim para obtener esta función en su distribución de Linux. Por ejemplo, en Ubuntu, puede obtener la versión completa de vim ejecutando el siguiente comando:

sudo apt install vim

La versión de vim incluida de forma predeterminada con macOS incluye soporte de cifrado, por lo que no necesita instalar nada más en una Mac. Simplemente inicie una ventana de terminal desde Finder> Aplicaciones> Utilidades> Terminal y los comandos funcionarán de la misma manera en macOS que en Linux.

Cómo cifrar un archivo con una contraseña

El proceso básico es relativamente simple si sabe cómo usar vi . Si no lo hace, es posible que se cuelgue de la interfaz modal de vi. Cuando abre un archivo de texto en vim, hay dos modos. Por defecto, estás en un «modo de comando» donde puedes usar las teclas de tu teclado para ejecutar comandos. También puede presionar “i” para ingresar al “modo Insertar”, donde puede escribir normalmente y mover el cursor con las teclas de flecha, como lo haría en otros editores de texto. Para salir del modo de inserción, presione «Esc» y volverá al modo de comando.

Primero, inicie vim. Por ejemplo, el siguiente comando lanzará vim y lo apuntará a un archivo llamado «ejemplo» en el directorio actual. Si ese archivo no existe, vim creará un archivo llamado «ejemplo» en el directorio actual cuando lo guarde:

vi ejemplo

También puede apuntar vi a otra ruta con un comando como el siguiente. No es necesario que cree un archivo en el directorio actual.

vi / ruta / a / archivo

Edite el archivo normalmente. Por ejemplo, puede presionar “i” para ingresar al modo de inserción y luego escribir el texto normalmente. Mientras edita un archivo, presione Esc para asegurarse de que está en el modo de comando y no en el modo de inserción. Escribe :X y presiona Enter.

Se le pedirá que ingrese una contraseña, con la que se cifrará el archivo de texto. Escriba la contraseña que desea utilizar, presione Entrar y vuelva a escribirla para confirmar. Deberá ingresar esta contraseña cada vez que desee abrir el archivo en el futuro.

Vim le advertirá que está utilizando un método de cifrado débil de forma predeterminada. Más adelante le mostraremos cómo utilizar un método de cifrado más seguro.

Se asociará una contraseña con el archivo de texto actual en Vim, pero deberá guardar los cambios antes de que la contraseña se asigne realmente al archivo. Para hacer esto, presione Esc para asegurarse de que está en modo de comando, y luego escriba :wqy presione Enter para escribir el archivo en el disco y salir de Vim.

La próxima vez que intente abrir el archivo en Vim, por ejemplo, ejecutando “ vi example“, Vim le pedirá la contraseña asociada con el archivo.

Si ingresa la contraseña incorrecta, el contenido del archivo será un galimatías.

Advertencia : No guarde el archivo si lo abre y ve un galimatías. Esto guardará los datos corruptos nuevamente en el archivo y sobrescribirá sus datos encriptados. Simplemente ejecute :qpara salir de Vim sin guardar el archivo en el disco.

Hay otro atajo que puedes usar aquí. En lugar de crear o abrir un archivo con » vim /path/to/file«, puede ejecutar el siguiente comando para que vim cree o abra un archivo y haga que inmediatamente le pida que cifre el archivo con una contraseña:

vi -x / ruta / a / archivo

Tenga en cuenta que debe usar una x minúscula aquí, mientras que debe usar una X mayúscula al ejecutar el comando de cifrado asociado desde dentro de Vim.

Cómo habilitar un cifrado más sólido en Vim

De forma predeterminada, Vim utiliza un cifrado muy malo para estos archivos. El método de cifrado predeterminado «zip» o «pkzip» es compatible con versiones anteriores de vim. Desafortunadamente, se puede descifrar muy, muy fácilmente, incluso en hardware de los años 90. Como dice la documentación oficial : “El algoritmo usado para ‘cryptmethod’“ zip ”es rompible. Una clave de 4 caracteres en aproximadamente una hora, una clave de 6 caracteres en un día (en una PC Pentium 133) «.

No debe utilizar el cifrado pkzip para sus documentos de texto si desea algo de seguridad. Sin embargo, Vim proporciona mejores métodos de cifrado. La versión 7.3 de Vim lanzada en 2010 agregó un método de cifrado «pez globo», que es mejor. La versión 7.4.399 lanzada en 2014 incluyó un nuevo método de cifrado Blowfish que corrige problemas de seguridad en el método de cifrado original «blowfish» y lo denomina «blowfish2».

El único problema es que los archivos que crea con métodos de cifrado más sólidos requieren estas versiones más nuevas de Vim. Por lo tanto, si desea utilizar el cifrado «blowfish2», solo podrá abrir ese archivo con las versiones de Vim 7.4.399 y superiores. Siempre que esté de acuerdo con eso, debe usar el método de cifrado más fuerte posible.

Para verificar qué método de cifrado está usando un archivo, abra el archivo en vim, presione la tecla Esc para asegurarse de que está en modo de comando, escriba el siguiente comando y presione Entrar.

: setlocal cm?

El «cm» aquí significa «método de cifrado».

Verá el método de cifrado utilizado para el archivo actual que se muestra en la parte inferior de la pantalla vim.

Para elegir un método de cifrado, ejecute uno de los siguientes comandos. El cifrado «blowfish2» es mejor para la seguridad.

: setlocal cm = blowfish2

: setlocal cm = pez globo

: setlocal cm = zip

Una vez que haya seleccionado su algoritmo de cifrado, use el :w comando para escribir el archivo en el disco o el :wq comando para escribir el archivo en el disco y salir.

La próxima vez que vuelva a abrir el archivo en Vim, no se quejará de un algoritmo de cifrado débil. También verá el algoritmo de cifrado que seleccionó en la parte inferior de la pantalla vim cuando abra el archivo.

Cómo cambiar o eliminar una contraseña

Para eliminar una contraseña de un archivo, abra ese archivo en Vim y ejecute el :X comando. Se le pedirá que proporcione una nueva clave de cifrado. Ingrese la nueva contraseña que desea usar aquí. Para eliminar la contraseña por completo, deje el campo de contraseña en blanco y presione Entrar dos veces.

Guarde el archivo y luego salga con :wq . El archivo se descifrará, por lo que no se le pedirá que ingrese una contraseña cuando abra el archivo en el futuro.

Asegúrese de recordar la contraseña que estableció o no podrá acceder al contenido del archivo en el futuro.