Sequoia 1.0, una biblioteca que implementa estándares OpenPGP
Después de tres años y medio de desarrollo se publicó el paquete de edición Sequoia 1.0, desarrollando una biblioteca de funciones y herramientas de línea de comandos con la implementación del estándar OpenPGP (el RFC-4880).
El lanzamiento resumió el trabajo en la API de bajo nivel, que implementa la cobertura del estándar OpenPGP, suficiente para un uso completo. El código del proyecto está escrito en Rust y se distribuye bajo la licencia GPLv2 +.
El proyecto fue fundado por tres colaboradores de GnuPG de g10code, un desarrollador de complementos de GnuPG y auditoría de criptosistemas. El equipo de Sequoia también es conocido por crear el servidor de claves Hagrid, que es utilizado por el servicio keys.openpgp.org.
El objetivo del nuevo proyecto era rediseñar la arquitectura y aplicar nuevas técnicas para mejorar la seguridad y confiabilidad del código base.
Para mejorar la seguridad, Sequoia utiliza no solo herramientas de programación seguras que utilizan el lenguaje Rust, sino también protección contra errores a nivel de API.
Por ejemplo, la API no le permite exportar accidentalmente material de clave secreta, ya que, por defecto, las operaciones de exportación requieren una selección explícita. Asimismo, la API asegura que no se pierdan pasos importantes al actualizar una firma digital; de manera predeterminada, el tiempo de creación, el algoritmo de hash y el emisor de la firma se actualizan automáticamente.
Sequoia también está tratando de deshacerse de las deficiencias de GnuPG, como la desincronización de la funcionalidad de las herramientas de línea de comando con la biblioteca de funciones (algunas acciones solo se pueden realizar usando la utilidad) y el acoplamiento demasiado estrecho entre componentes, lo que dificulta la realización de cambios, ofusca la base del código e impide la creación de un sistema de unidades completo. -pruebas.
Sequoia desarrolla la utilidad de línea de comando sq con soporte de subcomando de estilo Git, el programa sqv (reemplazo de gpgv) para verificar firmas separadas, la utilidad sqop (Stateless OpenPGP CLI) y la biblioteca sequoia-openpgp.
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 (firma separada), la adaptación para la integración con los administradores de paquetes (APT, RPM, carga, etc.), la capacidad de limitar las firmas por valores de umbral y tiempo.
Para simplificar el desarrollo, depuración y análisis de incidencias, se ofrecen herramientas de inspección de paquetes, que se integran con el analizador y permiten analizar visualmente la estructura de mensajes cifrados, firmas digitales y claves.
Por motivos de seguridad, se admite el uso de servicios criptográficos, como coprocesadores para computación en enclaves aislados. Para un aislamiento adicional, se practica la separación en procesos separados de los servicios que trabajan con claves públicas y privadas (la interacción de los procesos se organiza utilizando el protocolo Cap’n Proto ). Por ejemplo, un almacén de claves se desarrolla en forma de un proceso separado.
Hay dos opciones de API: nivel bajo y nivel alto. La API de bajo nivel reproduce lo más fielmente posible las capacidades de OpenPGP y algunas extensiones relacionadas, como soporte ECC, notarización (firma sobre firma) y elementos del borrador de la futura edición del estándar.
Se observa que de acuerdo con la funcionalidad planificada, Sequoia alcanzó la preparación para la versión 1.0 hace un año, pero los desarrolladores decidieron no apresurarse y dedicar más tiempo a buscar errores y escribir documentación completa y de alta calidad con enlaces a información en el estándar OpenPGP y ejemplos de uso.
La versión 1.0 hasta ahora solo cubre la caja sequoia-openpgp y la utilidad de verificación de firma digital sqv. La CLI «sq» y las API de alto nivel aún no se han estabilizado y se están finalizando.
Entre las limitaciones que se planea eliminar en versiones futuras, se destacan la implementación de servicios para almacenar claves privadas y públicas, el soporte para firmas digitales de texto sin cifrar y la capacidad de usar expresiones regulares para determinar firmas confiables.