Sequoia, una biblioteca que implementa estándares OpenPGP

Sequoia es una biblioteca de funciones y un juego de herramientas de línea de comandos que implementa los estándares OpenPGP (RFC-4880), esta biblioteca está siendo desarrollada por tres miembros del proyecto GnuPG, quienes decidieron crear una nueva implementación gratuita de OpenPGP en el lenguaje Rust para mejorar la seguridad y confiabilidad del código base, que proporciona herramientas para trabajar de forma segura con la memoria.

Además de mejorar la seguridad, Sequoia también está tratando de deshacerse de las fallas en GnuPG, que no se pueden arreglar en el proyecto principal sin romper la compatibilidad o reelaborar significativamente la base del código.

Por ejemplo, GnuPG está estrechamente acoplado entre los componentes, lo que dificulta la realización de cambios, confunde la base del código y dificulta la creación de un sistema completo de pruebas unitarias. El kit de herramientas de la línea de comandos gpupg no está funcionalmente sincronizado con la biblioteca de funciones y algunas acciones solo se pueden realizar mediante la utilidad.

Sequoia presenta la utilidad de línea de comando sq con soporte de subcomando de estilo Git y dos opciones de API: nivel bajo y nivel alto. Hay enlaces para los lenguajes C y Python.

La mayoría de las funciones descritas en el estándar OpenPGP son compatibles con el cifrado, el descifrado, la creación y la verificación de firmas digitales.

Entre las características avanzadas, se observa que admite la verificación mediante firmas digitales suministradas por separado, la adaptación para la integración con los administradores de paquetes (APT, RPM, cargo, etc.), la capacidad de limitar las firmas por valores de umbral y tiempo.

La API de bajo nivel reproduce lo más fielmente posible las capacidades de OpenPGP y algunas extensiones relacionadas, como el soporte de ECC y elementos del borrador de la futura edición del estándar. Las únicas excepciones son las partes heredadas de la especificación que pueden afectar negativamente a la seguridad, como la compatibilidad con hash MD5.

La API de bajo nivel también admite el procesamiento de mensajes sin búfer. La API de bajo nivel ya está muy cerca de la cobertura total del estándar OpenPGP y está lista para manipular los datos de OpenPGP a un nivel bajo (se espera la versión estable 1.0 pronto).

Mientras que por otro lado, la API de alto nivel aún está comenzando a evolucionar y hasta ahora solo cubre capacidades como el almacenamiento de claves públicas y el acceso a través de la red. Se agregarán otras capacidades de soporte y específicas del dominio a medida que se desarrolle el proyecto.

El paquete también proporciona potentes herramientas de inspección de paquetes que se pueden utilizar durante el desarrollo, la depuración y el análisis de incidentes. Las herramientas de inspección están integradas con el analizador para analizar visualmente la estructura de mensajes cifrados, firmas digitales y claves.

Actualmente las plataformas compatibles con Sequoia son Linux, FreeBSD, Windows, macOS, Android e iOS, además de que es posible utilizar servicios criptográficos proporcionados por la plataforma, como coprocesadores para el cálculo en enclaves aislados.

Para proporcionar aislamiento adicional, se practica separar los servicios que funcionan con claves públicas y privadas en procesos separados. Por ejemplo, un almacén de claves se desarrolla en forma de un proceso separado. El protocolo Cap’n Proto se utiliza para la interacción de procesos.

Finalmente, queda mencionar que hace poco fue liberada una nueva version de Sequoia, siendo la mas actual la version Sequoia 0.20.0 en la cual se agrega el paquete sequoia-openpgp de bajo nivel, el programa sqv (reemplazo de gpgv) para verificar firmas separadas y la utilidad sqop con la implementación de la interfaz sin estado (Stateless OpenPGP CLI).

Los requisitos para el lenguaje Rust se han elevado a la versión 1.46 y se ha ampliado el uso del sistema de integración continua para comprobar los cambios y se ha mejorado el conjunto de pruebas de compatibilidad con OpenPGP.

Si quieres conocer mas al respecto sobre esta biblioteca, puedes consultar los detalles en su sitio web oficial en el siguiente enlace.


Sé el primero en comentar

Deja tu comentario

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

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.