Nach dreieinhalb Jahren Entwicklungszeit wurde das Sequoia 1.0 Edition-Paket veröffentlicht , das eine Bibliothek von Funktionen und Kommandozeilen-Tools mit der Implementierung des OpenPGP-Standards (RFC-4880) bereitstellt.
Die Veröffentlichung fasst die Arbeiten an der Low-Level-API zusammen , die eine für die vollständige Nutzung ausreichende OpenPGP-Standardabdeckung implementiert. Der Projektcode ist in Rust geschrieben und wird unter der GPLv2+-Lizenz vertrieben.
Das Projekt wurde von drei GnuPG-Mitwirkenden von g10code, einem Entwickler von GnuPG-Plugins und einer Firma für Kryptosystemprüfung, gegründet . Das Sequoia-Team ist außerdem für die Entwicklung des Hagrid-Schlüsselservers bekannt, der vom Dienst keys.openpgp.org verwendet wird.
Ziel des neuen Projekts war es, die Architektur neu zu gestalten und neue Techniken anzuwenden, um die Sicherheit und Zuverlässigkeit der Codebasis zu verbessern.
Zur Verbesserung der Sicherheit verwendet Sequoia nicht nur sichere Programmierwerkzeuge , die die Programmiersprache Rust nutzen, sondern auch einen Fehlerschutz auf API-Ebene.
Die API verhindert beispielsweise das versehentliche Exportieren von geheimen Schlüsseldaten , da Exportvorgänge standardmäßig eine explizite Auswahl erfordern. Ebenso stellt die API sicher, dass beim Aktualisieren einer digitalen Signatur keine wichtigen Schritte ausgelassen werden; Erstellungszeitpunkt, Hash-Algorithmus und Aussteller der Signatur werden standardmäßig automatisch aktualisiert.
Sequoia versucht außerdem, die Schwächen von GnuPG zu beseitigen , wie etwa die Desynchronisierung der Funktionalität der Kommandozeilen-Tools mit der Funktionsbibliothek (einige Aktionen können nur mit Hilfe des Dienstprogramms durchgeführt werden) und die übermäßig enge Kopplung zwischen den Komponenten, die Änderungen erschwert, die Codebasis verschleiert und die Erstellung eines vollständigen Unit-Testing-Systems verhindert.
Sequoia entwickelt das Befehlszeilenprogramm sq mit Git-ähnlicher Unterbefehlsunterstützung , das Programm sqv (ein Ersatz für gpgv) zur Überprüfung separater Signaturen, das Dienstprogramm sqop (Stateless OpenPGP CLI) und die Bibliothek sequoia-openpgp.
Es gibt Links für die Sprachen C und Python. Die meisten im OpenPGP-Standard beschriebenen Funktionen unterstützen die Verschlüsselung, Entschlüsselung, Erstellung und Überprüfung digitaler Signaturen.
Unter den erweiterten Funktionen wird darauf hingewiesen, dass es die Überprüfung mit separat bereitgestellten digitalen Signaturen (separate Signatur), die Anpassung an die Integration mit Paketmanagern (APT, RPM, Upload usw.) sowie die Möglichkeit unterstützt, Signaturen durch Schwellen- und Zeitwerte zu begrenzen.
Um die Entwicklung, das Debuggen und die Ereignisanalyse zu vereinfachen, werden Tools zur Paketinspektion bereitgestellt, die in den Analysator integriert sind und es Ihnen ermöglichen, die Struktur verschlüsselter Nachrichten, digitaler Signaturen und Schlüssel visuell zu analysieren.
Aus Sicherheitsgründen ist die Nutzung kryptografischer Dienste, wie z. B. Koprozessoren für Berechnungen in isolierten Umgebungen, zulässig. Zur weiteren Isolation werden Dienste, die mit öffentlichen und privaten Schlüsseln arbeiten, in separate Prozesse aufgeteilt (die Prozessinteraktion wird mithilfe des Cap'n-Proto-Protokolls organisiert). Beispielsweise wird ein Schlüsselspeicher als separater Prozess implementiert.
Es gibt zwei API-Optionen: eine Low-Level- und eine High-Level-API. Die Low-Level-API bildet die Funktionen von OpenPGP und einigen zugehörigen Erweiterungen, wie z. B. ECC-Unterstützung, Notarisierung (Signatur-auf-Signatur) und Elemente aus dem Entwurf der zukünftigen Standardausgabe, so genau wie möglich nach.
Es wurde festgestellt, dass Sequoia gemäß der geplanten Funktionalität bereits vor einem Jahr die Versionsreife für Version 1.0 erreicht hatte. Die Entwickler entschieden sich jedoch dafür, nichts zu überstürzen und stattdessen mehr Zeit in die Fehlersuche und das Schreiben einer vollständigen, qualitativ hochwertigen Dokumentation mit Verweisen auf Informationen im OpenPGP-Standard sowie Anwendungsbeispielen zu investieren.
Version 1.0 umfasst derzeit nur die Sequoia-OpenPGP-Box und das SQV-Tool zur Überprüfung digitaler Signaturen. Die „sq“-Befehlszeilenschnittstelle (CLI) und die High-Level-APIs werden noch finalisiert und sind noch nicht stabil.
Zu den Einschränkungen, die in zukünftigen Versionen entfernt werden sollen, gehören die Implementierung von Diensten zum Speichern privater und öffentlicher Schlüssel, die Unterstützung digitaler Klartextsignaturen und die Möglichkeit, reguläre Ausdrücke zur Ermittlung vertrauenswürdiger Signaturen zu verwenden.