Ghost in the Machines
On septiembre 23, 2021 by adminUtilizo el software GPG (también conocido como GnuPG) para cifrar archivos que contienen información sensible (principalmente contraseñas). Como ingeniero de sistemas, hago la mayor parte de mi trabajo en servidores remotos, accesibles a través de la interfaz de línea de comandos. Naturalmente, me resulta más fácil utilizar la versión de línea de comandos de GPG para cifrar y descifrar directamente los documentos.
GPG (GNU Privacy Guard) es una versión gratuita de código abierto del software de cifrado PGP (Pretty Good Privacy). Conceptualmente, ambos utilizan el mismo enfoque de criptografía (es decir, cifrado y descifrado). Sin embargo, cada uno es diferente en su implementación.
Lo que sigue es un rápido manual sobre cómo instalar las herramientas de línea de comandos de GPG, así como una lista de comandos básicos que probablemente necesitará.
Instalación de GPG
GPG puede instalarse de diferentes maneras. Las instrucciones aquí instalarán el núcleo de las herramientas de línea de comandos de GPG, que están pensadas para ser utilizadas en un terminal.
Si, por el contrario, prefieres una interfaz gráfica de usuario (o GUI) para acceder a la funcionalidad de GPG (por ejemplo, cifrar las comunicaciones por correo electrónico, o cifrar documentos en un editor de texto GUI), consulta los enlaces al final de este artículo.
Red Hat / CentOS
yum install gnupg
Ubuntu / Debian
apt-get install gnupg
Mac OS X
La forma más sencilla de instalar las herramientas de línea de comandos GPG en tu Mac es instalar primero Homebrew, un sistema de gestión de paquetes que pone a tu disposición miles de paquetes de software para instalar en tu Mac.
Abra una ventana de Terminal (menú Aplicaciones > Utilidades), e introduzca el siguiente comando.
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew install gnupg
GPG Quick How To
Lo que sigue es una introducción muy breve al uso de GPG en la línea de comandos. Piensa en ello como una «referencia rápida» o una «hoja de trucos». Ciertamente deberías aprender más sobre GPG de lo que se explica en este post. La intención es sólo para empezar. Si esperas usar GPG más extensamente, te aconsejo encarecidamente que leas más documentación (ver la sección de Enlaces más abajo).
GPG es un poderoso software de encriptación, pero también puede ser fácil de aprender – una vez que entiendas algunos aspectos básicos. GPG utiliza un método de cifrado conocido como criptografía de clave pública, que proporciona una serie de ventajas y beneficios. Sin embargo, para obtener estas ventajas, se requiere un nivel mínimo de complejidad para que todo funcione. Para obtener una visión general de cómo funciona la criptografía de clave pública, lea la Introducción a la Criptografía (enlace al final de este post).
Convenciones tipográficas utilizadas en los comandos:
En todos los ejemplos que aparecen a continuación, el texto que tendrá que reemplazar con sus propios valores (por ejemplo, nombres de usuario, direcciones de correo electrónico, nombres de archivos) se muestra en «cursiva gris». El texto que escribirás literalmente (sin cambios) se indica con «ancho constante negro».
"gray italic""black constant width"
Crea tu clave GPG:
Para empezar con GPG, primero tienes que generar tu par de claves. Es decir, generarás una clave privada y una pública con un solo comando. Introduzca su nombre y dirección de correo electrónico en las instrucciones, pero acepte las opciones predeterminadas por lo demás.
gpg --gen-key
La primera clave es su clave privada (o secreta). Debes mantener esta clave privada a salvo en todo momento, y no debes compartirla con nadie. La clave privada está protegida por una contraseña. Intenta que la contraseña sea lo más larga posible, pero algo que no olvides. Si olvidas la contraseña, no hay forma de recuperarla. Por la misma razón, también deberías hacer una copia de seguridad de tu clave privada. (Considere el uso de Time Machine para las copias de seguridad en Mac OS X.)
La segunda clave es su clave pública, que puede compartir de forma segura con otras personas.
La relación de la clave privada y la pública es en realidad muy sencilla. Todo lo que se cifra con la clave pública sólo puede descifrarse con la clave privada correspondiente. Por lo tanto, usted proporcionará su clave pública a otra persona, y ésta le proporcionará su clave pública. Todo lo que se cifre con tu clave pública sólo podrás descifrarlo tú. Todo lo que se cifre con la clave pública de la otra persona sólo podrá ser descifrado por ella.
Exporta tu clave pública:
El siguiente paso es exportar tu clave pública y compartirla con otra persona. Esa persona debe hacer lo mismo, y exportar su clave pública.
gpg --export --armor [email protected] > mypubkey.asc
Importar la clave pública de otra persona:
Cuando importas una clave pública, la estás colocando en lo que comúnmente se conoce como tu «llavero» GPG.»
gpg --import theirpubkey.asc
Lista de claves públicas en tu llavero:
Ahora puedes ver una lista de claves públicas en tu llavero, así como el nombre y la dirección de correo electrónico asociados a cada clave.
gpg --list-keys
Lista de claves privadas en tu llavero:
El siguiente comando listará las claves privadas en tu llavero. Esto mostrará su propia clave privada, que creó anteriormente.
gpg --list-secret-keys
Confiar en una clave pública:
Una vez que haya importado la clave pública de la otra persona, ahora debe establecer el nivel de confianza de la clave. Esto evita que GPG le avise cada vez que cifre algo con esa clave pública.
Especifique el nombre o el correo electrónico de la otra persona en el comando.
gpg --edit-key glenntrust (invoke trust subcommand on the key)5 (ultimate trust)y (if prompted)quit
Comandos útiles de GPG
GPG tiene muchas opciones, la mayoría de las cuales nunca necesitará. Aquí hay una lista rápida de los comandos más útiles que probablemente necesite.
Encriptar un archivo:
Para encriptar un archivo llamado filename.txt para un solo individuo, especifique ese individuo como destinatario.
gpg --encrypt --recipient glenn filename.txt
Esto creará un nuevo archivo encriptado llamado filename.txt.gpg.
Si quiere encriptar un archivo para que sólo usted pueda desencriptarlo, entonces especifíquese como destinatario.
gpg --encrypt --recipient 'my_name' filename.txt
Si quiere encriptar un archivo para que tanto usted como otra persona puedan desencriptarlo, especifique tanto usted como la otra persona como destinatarios.
gpg --encrypt --recipient glenn --recipient 'my_name' filename.txt
Si quiere encriptar un archivo para un grupo de personas, defina el grupo en su archivo gpg.conf (vea la sección más abajo), y luego especifique el grupo como destinatario.
gpg --encrypt --recipient journalists filename.txt
Después de un tiempo, querrá ser más conciso y usar la versión corta de las opciones de la línea de comandos. Aquí está el mismo comando.
gpg -e -r journalists filename.txt
Descifra un archivo a la terminal (salida estándar):
La primera versión de este comando mostrará el contenido de un archivo dentro de la propia ventana de la terminal.
gpg --decrypt filename.txt.gpg
Usa la opción --decrypt
sólo si el archivo es un archivo de texto ASCII. Si es un archivo binario, omita la opción --decrypt
, que escribirá el archivo descifrado en el disco. En ese momento, puede abrir el archivo binario en cualquier aplicación que se utilice para ver el archivo.
Descifrar un archivo en el disco:
Sea el archivo ASCII o binario, si desea realizar cambios en el contenido de un archivo cifrado, primero debe descifrarlo, realizar los cambios y volver a cifrar el archivo. Como mencioné en el párrafo anterior, se escribe la versión desencriptada de un archivo en el disco, omitiendo la opción --decrypt
del comando.
gpg filename.txt.gpg
Si el archivo encriptado se llamaba filename.txt.gpg, el comando anterior creará una versión descifrada llamada filename.txt (con la extensión .gpg eliminada).
Cree grupos de personas en su archivo de configuración GPG
Para mayor comodidad, puede predefinir un grupo de personas en su archivo de configuración GPG. Esto tiene la ventaja de permitirle cifrar un archivo a cada miembro del grupo especificando sólo el nombre del grupo como destinatario, en lugar de especificar tediosamente cada miembro individual del grupo.
La configuración de su software GPG se almacena en su directorio personal dentro del archivo ~/.gnupg/gpg.conf
. Edite este archivo utilizando su editor de texto de línea de comandos favorito (vim, nano, pico, emacs, etc). Aunque hay numerosos ajustes disponibles en el archivo de configuración, vaya a la sección pertinente a la definición de grupos.
Cuando se define un grupo, se enumeran los miembros del grupo. Cada miembro es referenciado por algún atributo de su clave pública que se encuentra en su llavero GPG – típicamente el nombre de una persona (o un nombre parcial, como el nombre o el apellido) o una dirección de correo electrónico (o una dirección de correo electrónico parcial).
Si usted es un miembro del grupo, ¡recuerde incluirse en el grupo! Si no te incluyes en el grupo, no podrás descifrar los archivos que encriptes al grupo.
Aquí tienes un ejemplo de un grupo llamado «periodistas», en el que aparece el nombre de cada persona.
group journalists = glenn laura ewan barton
A dónde ir desde aquí
Te animo a que aprendas más sobre GPG. Vea los enlaces más abajo.
También puede querer aprender sobre métodos seguros para borrar archivos del disco duro de su ordenador. Mac OS X tiene la opción «Vaciar la papelera de forma segura» dentro del Finder. También hay numerosas herramientas de terceros que puede instalar.
Ya que estamos en el tema de aprender a usar GPG en la línea de comandos, es posible que desee probar «bcwipe» – un programa para borrar de forma segura los archivos dentro de la línea de comandos.
En Mac OS X, puede instalar bcwipe a través de Homebrew.
brew install bcwipe
Enlaces
General
- Introducción a la criptografía (PDF)
- Sitio web del software GnuPG
- GnuPG en Wikipedia
- Homebrew (Gestor de paquetes para Mac OS X)
Herramientas de la interfaz de usuario
- GPG Suite (GUI para Mac OS X)
- Cómo utilizar GPG Suite en Mac OS X (Electronic Frontier Foundation)
- Gpg4win (GUI para Windows)
- Cómo utilizar Gpg4Win en Windows (Electronic Frontier Foundation)
Deja una respuesta