
Die Sequoia 0.20.0- Paketversion wurde gestern eingeführt . Es bietet eine Bibliothek mit Funktionen und Befehlszeilen-Tools mit einer Implementierung der OpenPGP-Standards (RFC-4880). Das Projektteam besteht aus drei Personen - Mitgliedern des OpenPGP-Projekts (RFC-4880). Um die Sicherheit und Zuverlässigkeit der Codebasis zu verbessern, haben sie beschlossen, eine neue kostenlose Implementierung von OpenPGP in Rust zu erstellen. Der Projektcode wird unter der GPLv2 + -Lizenz verteilt.
Das Ziel der Entwickler ist es, nicht nur die Sicherheit des Produkts zu verbessern, sondern auch die Mängel von GnuPG zu beseitigen. Ohne die Kompatibilität zu beeinträchtigen oder die Codebasis grundlegend zu überarbeiten, können sie im Hauptprojekt nicht beseitigt werden. Beispielsweise ist die Verbindung zwischen den einzelnen Komponenten von GnuPG so stark, dass es schwierig ist, Änderungen vorzunehmen, geschweige denn ein Unit-Testing-System zu erstellen. Das Befehlszeilen-Toolkit gpupg ist in Funktionalität und Funktionsbibliothek nicht synchronisiert, sodass eine Reihe von Aktionen nur mit dem Dienstprogramm ausgeführt werden können.
Sequoia verfügt über ein SQL- Befehlszeilenprogramm mit Unterbefehlsunterstützung im Git-Stil sowie zwei API-Optionen - Low-Level und High-Level. Es gibt Bindungen für C- und Python-Sprachen. Die meisten im OpenPGP-Standard beschriebenen Funktionen werden für die Verschlüsselung, Entschlüsselung, Erstellung und Überprüfung digitaler Signaturen unterstützt.
Weitere Funktionen sind die Unterstützung der Überprüfung für separat bereitgestellte digitale Signaturen, die Anpassung für die Integration mit Paketmanagern und die Möglichkeit, Signaturen durch Schwellenwerte und Zeit zu begrenzen.
Die Low-Level-API gibt die Funktionen von OpenPGP und einigen verwandten Erweiterungen, einschließlich ECC-Unterstützung und Elementen aus dem "Entwurf" der zukünftigen Ausgabe des Standards, sehr genau wieder. In Bezug auf Ausnahmen sind dies nur veraltete Teile der Spezifikation, die sich negativ auf die Sicherheit auswirken können - beispielsweise die Unterstützung von MD5-Hashes. Die API unterstützt auch die Behandlung ungepufferter Nachrichten. In Bezug auf seine Funktionen entspricht es nahezu der vollständigen Abdeckung des OpenPGP-Standards und ist vollständig bereit, mit OpenPGP-Daten zu arbeiten. Eine stabile Version 1.0 sollte in naher Zukunft veröffentlicht werden.
Die High-Level-API entwickelt sich gerade erst weiter und umfasst bisher Funktionen wie das Speichern öffentlicher Schlüssel und den Zugriff auf Funktionen über das Netzwerk. Weitere Support- und domänenspezifische Funktionen sollen im Verlauf des Projekts hinzugefügt werden.
Darüber hinaus verfügt das Paket über sehr leistungsstarke Tools zur Paketinspektion, die für die Entwicklung, das Debuggen und die Analyse von Vorfällen verwendet werden können. Inspektionswerkzeuge werden mit einem Parser kombiniert, damit der Benutzer die Struktur verschlüsselter Nachrichten, digitaler Signaturen und Schlüssel analysieren kann.
sq packet dump --hex message.pgp
New CTB, 13 bytes: One-Pass Signature Packet
Version: 3
Type: Binary
Pk algo: EdDSA Edwards-curve Digital Signature Algorithm
Hash algo: SHA512
Issuer: 83F8 2E4F E9A5 E098
Last: true
00000000 c4 0d frame
00000002 03 version
00000003 00 sigtype
00000004 0a hash_algo
00000005 16 pk_algo
00000006 83 f8 2e 4f e9 a5 e0 98 issuer
0000000e 01 last
In Bezug auf die Plattformunterstützung funktioniert das Paket derzeit mit Linux-, FreeBSD-, Windows-, MacOS-, Android- und iOS-Plattformen. Es besteht auch die Möglichkeit, mit den von diesen Plattformen bereitgestellten kryptografischen Diensten zu arbeiten, einschließlich Coprozessoren für die Berechnung in isolierten Enklaven. Um eine zusätzliche Isolation zu gewährleisten, werden Dienste in separate Prozesse unterteilt, die mit öffentlichen und privaten Schlüsseln arbeiten. Beispielsweise wird ein Schlüsselspeicher in Form eines separaten Prozesses entwickelt. Das Cap'n Proto-Protokoll wird verwendet, um die Interaktion einzelner Prozesse sicherzustellen.
Die vorgestellte neue Version enthält ein Low-Level-Paket sequoia-openpgp , das sqv- Programm (Ersatz von gpgv)), um getrennte Signaturen und ein sqop- Dienstprogramm mit einer Implementierung der Stateless OpenPGP-CLI zu überprüfen . Die Rostanforderungen wurden auf Version 1.46 angehoben. Die Verwendung des kontinuierlichen Integrationssystems zur Überprüfung von Änderungen wurde erweitert und der Satz zum Testen der Kompatibilität mit OpenPGP wurde verbessert.
In naher Zukunft planen die Entwickler die Veröffentlichung von Version 1.0, die auch eine High-Level-API enthalten wird, und nicht nur eine Low-Level-API, wie sie jetzt ist.
