💾 Archived View for jdrm.info › articulos › cifrado-rage.gmi captured on 2024-08-18 at 17:06:55. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2024-07-08)
-=-=-=-=-=-=-
Age es una herramienta de cifrado, un formato de archivo y una librería desarrollada en Go.
Repositorio oficial del proyecto Age.
En torno a este proyecto han surgido utilidades y otras implementaciones como rage, una herramienta de cifrado desarrollada en Rust compatible con age.
Ambas están orientadas a hacer más sencillo el cirado de información mediante un sistema de llaves públicas y privadas. En mi caso he estado probando rage en entornos Linux, FreeBSD y OpenBSD para cifrado de archivos que sincronizo en mi nube. Casi todos los comandos, si no todos, que componen rage están implementados también en age.
Nota previa: rage utiliza pinentry, si está instalado, para mostrar el prompt de la contraseña. Age no lo utiliza en su última versión.
Aunque rage se puede usar también con llaves ssh para el cifrado y decodificado, podemos generar un par de llaves pública y privada con el comando
rage-keygen -o llave.txt Clave pública: age1apdp0zkr3pqs0kz4r62x0lg00sms9xhe9xf9p5q5rhfc6jd7qq8qjr2scu cat llave.txt # creada: 2024-06-23T18:52:02+02:00 # clave pública: age1apdp0zkr3pqs0kz4r62x0lg00sms9xhe9xf9p5q5rhfc6jd7qq8qjr2scu AGE-SECRET-KEY-15W0MZWPZJ3YD7JXYYLV8N26DPU7NX9UJT0CVQT5LSM03X7W34AXS4AU03V
La acción por defecto de rage es cifrar los ficheros, por lo que no es necesario especificar la opción "-e", aunque la voy a poner en los ejemplos para que se vea más claro.
Podemos cifrar indicando las llaves públicas de dos formas: introduciéndola en el comando:
rage -e -r age1apdp0zkr3pqs0kz4r62x0lg00sms9xhe9xf9p5q5rhfc6jd7qq8qjr2scu fichero.txt -o fichero.age cat fichero.age age-encryption.org/v1 -> X25519 pxTn67huDq6SRNO/BRZCzNphu970Ed+auxFwpMt/kgU SJH415MhxqffE7PbZdCbDoeHNJ6gK+1ca9gqSY75ZKQ -> puce-grease O/}?cGx9 Rh qVN zjdrqlwHZAL0RGw8tbTIUFNoDQ --- rqJwEmcH68YzBr4a/q7R8Nv0igw4Dd0LPSU2q6hiIz0 �2�=�R]�f��}���S��QP%Dqd���ԔTO���� ��j�DX�����ďdC�����=��)M� %
O guardando las llaves en un fichero de texto, una llave por línea:
rage -e -R llaves.txt fichero.txt -o fichero.age
Los parámetros "-r" y "-R" se pueden repetir en la misma línea de comando.
Para decodificar usando nuestra llave privada es tan sencillo como en los ejemplos anteriores:
rage -d -i llave.txt fichero.age -o fichero.txt cat fichero.txt Esta es una prueba de cifrado con rage/age
Rage también permite el cifrado simétrico mediante una contraseña:
rage -p fichero.txt -o fichero.simetrico.age # Aquí pinentry me ha pedido la contraseña cat fichero.simetrico.age age-encryption.org/v1 -> scrypt 6QadM2Z8jEP0BKFGxTSaVA 17 Bz/MaBXRdeEU6f2UeFRjBZD3NtNXOW1G6nhze+M7PfA --- cRL0jZX0aPrKvsCwyjR7xy0S8oD6Qds757j8wL8Ibwg �V�L�V�G'U�Tΰ�N���WR�i��� ��J���x� ����8@�j���"�B���l0&Q���e�,%
Rage detecta cuando un fichero tiene cifrado simétrico por lo que no es necesario añadir ningún tipo de parámetro:
rage -d fichero.simetrico.age # Aquí pinentry me ha pedido la contraseña Esta es una prueba de cifrado con rage/age
Si no especificamos un fichero de salida con el parámetro "-p" nos muestra el resultado por pantalla.
Y, obviamente, podemos combinar los dos métodos cifrando de forma simétrica nuestra llave privada:
rage -p llave.txt -o llave.age # Aquí pinentry me ha pedido la contraseña rage -d -i llave.age fichero.age # aquí nos ha pedido contraseña Esta es una prueba de cifrado con rage/age
Existe un último repositorio donde hay enlaces a implementaciones que utilizan age como base: