626 - GPG, firmas, cifrados y Android

626 - GPG, firmas, cifrados y Android

Como firmar, cifrar y descifrar archivos en #Linux y #Android con GPG. Como subir paquetes a tu PPA con #GitHub Actions y mucho mas

1:25
-3:15

Estos días he continuado con el tema de las GitHub Actions que te conté en el anterior podcast. La cuestión es que quería automatizar determinados procesos, para mejorar sensiblemente mi flujo de trabajo con las aplicaciones que durante estos años he venido desarrollando, y para eso he tenido que recurrir a GPG, firmas, cifrados y Android. Esto es uno de los problemas que con mas frecuencia me encuentro. Aquellas operativas que no realizo a menudo. ¿Donde encontrar esa información?. ¿Como se hacía?. ¿Que es lo que tengo que hacer?. En fin, un montón de preguntas que me hago y que me llevan a perder un montón de tiempo. Así que de nuevo, esto me lleva a publicar un nuevo artículo en este caso en el blog, para que no se me olvide y para que en el futuro, si me vuelve a pasar, tenga una referencia rápida y sencilla. Y por su puesto para que tu también lo puedas utilizar. Pero no solo esto, de paso, también he cambiado de cliente de correo electrónico en Android, que me ha permitido mejorar sensiblemente mi flujo de trabajo. Pero bueno, no te adelanto mas, escucha el podcast y me cuentas.

GPG, firmas, cifrados y Android

GitHub Actions

Como te comenté en el episodio anterior, estoy muy emocionado con las posibilidades que me ofrecen las GitHub Actions. Sobre todo para ayudarme a mejorar el flujo de trabajo con las aplicaciones que comencé en su momento para Ubuntu. Aplicaciones que en general mantengo en repositorios de Launchpad, y que te puedes instalar fácilmente a través de la PPA.
Hasta la fecha, esto de subir a una PPA, lo estaba haciendo de forma mas o menos manual, en el sentido de que si bien había implementado algunos scripts que me facilitaban este trabajo, lo cierto, es que parte de la operativa la tenía que ejecutar de forma manual.
Además, y desde un punto de vista más técnico, que no tanto, he estado utilizando, en general, la rama master o main, para el desarrollo. Así, que he decidido hacer algunos cambios que para aprovechar todo lo que me ofrece esta herramienta.
Así, actualmente estoy utilizando estos tres flujos de trabajo que te describo a continuación.

  • Merge a main y actualizar versión. Este primero como te decía me permite trabajar en la rama development en lugar de la rama main. Para mezclar la rama development con la main utilizo palabras clave en el comentario, como path, minor y major. Y con solo esto se encarga de hacer toda la operativa. Aquí a efectos prácticos no mejoro en rapidez, pero si en el flujo de trabajo, quedando mucho mas claro que es lo que ando haciendo.
  • publicar en PPA. Si bien tenía algunos scripts que me facilitaba la publicación en PPA, desde el que te lo puedes instalar las aplicaciones en Ubuntu, Linux Mint, Debian, etc, lo cierto es que al final tenía que dar demasiados pasos para poder avanzar. Ahora con las GitHub Action, lo tengo realmente sencillo. Tan solo tengo que subir a la rama principal del proyecto, y directamente se publica en el PPA, de forma que el consumo es inmediato.
  • asignar issues. Si no conoces que es un issueen GitHub, indicarte que se trata de una forma de informar de un bug, solicitar una mejora, o algo relacionado con el código. La cuestión es que es una forma que tiene los usuarios de avisar a los desarrolladores que hay algo que mejorar. El problema que tenía hasta el momento es que no me enteraba de nada. Cuando alguien habría un issue yo no lo sabía, no me llegaba ni correo, ni aviso, ni nada por el estilo. Ahora he añadido un flujo, de forma que si alguien abre un issue de forma automática me lo asigna, y con esto me llega una notificación de este nuevo problema, y por lo menos estoy al tanto. Lo cierto es que, pedir feedback y luego no leerlo es lo peor de lo peor.

Aplicaciones

En un episodio anterior te indiqué que había hecho algunas modificaciones sobre my-weather-indicator a raíz de un issue que habían abierto. Si no conoces esta aplicación indicarte que se trata de una herramienta que te permite tener la previsión meteorológica de tu ciudad en el escritorio.
He aprovechado para incorporar estas acciones y la cosa ha mejorado sensiblemente, estoy consiguiendo tiempos de entrega, desde que alguien abre una isuue, hasta que se publica en el PPA de auténtico escándalo.
La otra de las aplicaciones que he aprovechado para publicar es CPU-G. Esta aplicación es una herramienta que te permite tener información del hardware de tu PC. Igualmente se trata de una aplicación que está disponible a través de PPA en Ubuntu, Debian, Linux Mint, etc.
De nuevo, reportaron de unos issue que no me enteré en absoluto, hasta que añadí el flujo de trabajo de assignación de issue. Tanto es así que en los próximos días le voy a dar un lavado de cara a la aplicación para aprovechar las características de GTK4.

Firmas y cifrados

Como te decía en la introducción, habitualmente no utilizo las claves GPG de forma habitual, y ni siquiera consciente. Si que tengo unas claves GPG que son las que utilizo para firmar las aplicaciones que distribuyo en mi PPA. Pero, no es algo que haga de forma habitual.
Sin embargo, cuando tengo que hacerlo, no me acuerdo de como se hace. Así que, he decidido crear un artículo en el blog, para que no se me olvide y para que en el futuro, si me vuelve a pasar, tenga una referencia rápida y sencilla. Y por supuesto, para que tu también lo puedas utilizar. En este artículo, te explico como instalar y configurar GPG, como crear una clave, como listar las claves, como exportar e importar una clave pública y privada, como subir tu clave pública a un servidor, como firmar y cifrar un archivo, como verificar una firma y como descifrar un archivo. Todo ello de una forma sencilla y rápida. Y por supuesto, con ejemplos prácticos.
Pero ¿para que vale esto de las claves GPG? Como te decía, básicamente lo estoy utilizando para firmar las aplicaciones que distribuyo desde la PPA, y también para determinadas operaciones en GitHub. Pero también lo puedes utilizar para cifrar y descifrar mensajes, texto, etc.
Por ejemplo, si alguien quiere enviarte un mensaje cifrado, lo que tiene que hacer es utilizar tu clave pública, que como su propio nombre indica está disponible para todo le mundo. Una vez cifrada con tu clave pública, el único que puede descifrar el mensaje eres tu con la clave privada. Esto es algo realmente interesante y potente, pero, que actualmente yo no estoy utilizando, porque lo cierto es que no sabría con quien.
También puedes utilizar tu clave privada para firmar tus correos de forma inequívoca, al igual que firmas las aplicaciones.
En este caso, me he creado una nueva clave público privada, que es la que he puesto como secreto en GitHub, para firmar las aplicaciones que subo a Launchpad. Realmente interesante.

Como verlo en Android

A raíz de esto de la firma y las claves público privada, me ha surgido la duda de si podría consultar los correos cifrados en Android, y efectivamente se puede, pero con una herramienta que no he utilizado hasta el momento. Una aplicación conocida como FairEmail.
Se trata de una aplicación que es realmente sencilla de configurar a la hora de añadir una nueva cuenta y que trabaja con prácticamente, todos los proveedores de correo electrónico que te puedas imaginar.
Ahora bien, tiene mas opciones y posibilidades de las que nunca jamás en la vida te hubieras podido imaginar.
FairEmail es una aplicación de correo electrónico de código abierto y centrada en la privacidad para dispositivos Android. Está diseñada para ser ligera, eficiente y respetuosa con la privacidad del usuario. Algunas características clave de FairEmail incluyen,

  • Privacidad: No almacena ni envía tus datos a servidores de terceros. Los correos se descargan directamente del servidor de correo y solo se almacenan localmente.
  • Compatibilidad: Funciona con casi todos los proveedores de correo electrónico que soportan los protocolos IMAP o POP3, como Gmail, Outlook, Yahoo, etc.
  • Personalización: Permite a los usuarios personalizar muchas configuraciones, como la sincronización de correos, las notificaciones y las firmas.
  • Seguridad: Soporta el uso de OpenPGP para el cifrado de correos electrónicos y tiene características avanzadas de seguridad, como la verificación de la identidad de los servidores.
  • Interfaz minimalista: Aunque es funcionalmente rica, la interfaz de usuario es sencilla y optimizada para ser eficiente sin sacrificar opciones avanzadas.
    FairEmail fue desarrollado por Marcel Bokhorst, quien es conocido por su enfoque en la privacidad y el software libre. Aunque la aplicación es gratuita, también ofrece una versión premium con características adicionales.
    Además para el tema del cifrado y descifrado así como la gestión de claves he instalado OpenKeyChain. OpenKeychain es una aplicación de código abierto para Android que permite a los usuarios gestionar claves criptográficas y cifrar, descifrar, firmar y verificar mensajes y archivos utilizando el estándar OpenPGP (Pretty Good Privacy). Es ampliamente utilizada para garantizar la privacidad y la seguridad en las comunicaciones, especialmente en correos electrónicos. Algunas de las características de esta herramienta son las siguientes,
  • Gestión de claves: Puedes crear, importar y gestionar claves públicas y privadas. Esto es esencial para proteger la confidencialidad de los mensajes y asegurarse de que solo el destinatario correcto pueda leerlos.
  • Integración con otras aplicaciones: OpenKeychain se integra con aplicaciones como FairEmail, K-9 Mail y otras aplicaciones de correo electrónico para facilitar el cifrado y descifrado de correos electrónicos de forma automática.
  • Cifrado y descifrado de mensajes y archivos: Puedes cifrar mensajes o archivos para protegerlos, y luego descifrarlos con tu clave privada. También puedes firmar digitalmente archivos o mensajes para autenticar que eres el remitente.
  • Verificación de identidades: Utiliza firmas digitales para verificar la autenticidad de los remitentes, asegurándote de que el mensaje proviene de la persona que dice ser.
  • Compatibilidad con múltiples formatos: OpenKeychain es compatible con la mayoría de las implementaciones de OpenPGP, lo que lo hace muy versátil para interactuar con otros sistemas y usuarios que utilizan PGP.
  • Seguridad avanzada: Las claves privadas están protegidas por contraseñas fuertes, y la aplicación aprovecha las funcionalidades de seguridad de Android, como el uso del almacenamiento cifrado.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *