Sequoia 1.0, knjižnica, ki izvaja standarde OpenPGP

Po treh letih in pol razvoja je bil izdan paket Sequoia 1.0 , ki je razvil knjižnico funkcij in orodij ukazne vrstice z implementacijo standarda OpenPGP (RFC-4880).

Izdaja je povzela delo na nizkonivojskem API-ju , ki implementira standardno pokritost OpenPGP, zadostno za polno uporabo. Koda projekta je napisana v Rustu in distribuirana pod licenco GPLv2+.

Projekt so ustanovili trije sodelavci GnuPG iz podjetja g10code, ki se ukvarja z razvojem vtičnikov GnuPG in revizijo kriptosistemov. Ekipa Sequoia je znana tudi po ustvarjanju strežnika ključev Hagrid, ki ga uporablja storitev keys.openpgp.org.

Cilj novega projekta je bil preoblikovati arhitekturo in uporabiti nove tehnike za izboljšanje varnosti in zanesljivosti kodne baze.

Za izboljšanje varnosti Sequoia ne uporablja le varnih programskih orodij , ki uporabljajo jezik Rust, temveč tudi zaščito pred napakami na ravni API-ja.

API na primer preprečuje nenameren izvoz gradiva tajnega ključa , saj izvozne operacije privzeto zahtevajo eksplicitno izbiro. Podobno API zagotavlja, da pri posodabljanju digitalnega podpisa ne spregledate nobenih pomembnih korakov; privzeto se čas nastanka, algoritem zgoščevanja in izdajatelj podpisa posodobijo samodejno.

Sequoia se poskuša znebiti tudi pomanjkljivosti GnuPG-ja , kot sta desinhronizacija funkcionalnosti orodij ukazne vrstice s knjižnico funkcij (nekatera dejanja je mogoče izvesti le s pomočjo pripomočka) in pretesna povezava med komponentami, kar otežuje spreminjanje, zamegljuje kodno osnovo in preprečuje ustvarjanje celovitega sistema za enotno testiranje.

Sequoia razvija pripomoček ukazne vrstice sq s podporo za podukaze v slogu Gita , program sqv (nadomestek za gpgv) za preverjanje ločenih podpisov, pripomoček sqop (Stateless OpenPGP CLI) in knjižnico sequoia-openpgp.

Obstajajo povezave za jezike C in Python. Večina funkcij, opisanih v standardu OpenPGP, je združljivih s šifriranjem, dešifriranjem, ustvarjanjem in preverjanjem digitalnih podpisov.

Med naprednimi funkcijami je omenjeno, da podpira preverjanje z uporabo ločeno dobavljenih digitalnih podpisov (ločen podpis), prilagoditev za integracijo z upravitelji paketov (APT, RPM, nalaganje itd.), Možnost omejevanja podpisov z vrednosti praga in časa.

Za poenostavitev razvoja, odpravljanja napak in analize incidentov so na voljo orodja za pregled paketov, ki se integrirajo z analizatorjem in omogočajo vizualno analizo strukture šifriranih sporočil, digitalnih podpisov in ključev.

Zaradi varnostnih razlogov je dovoljena uporaba kriptografskih storitev, kot so koprocesorji za računanje v izoliranih enklavah. Za nadaljnjo izolacijo so storitve, ki delajo z javnimi in zasebnimi ključi, ločene v ločene procese (interakcija procesov je organizirana z uporabo protokola Cap'n Proto). Na primer, shramba ključev je implementirana kot ločen proces.

Na voljo sta dve možnosti API-ja: nizka in visoka raven. Nizkonivojski API čim bolj natančno podvaja zmogljivosti OpenPGP in nekaterih sorodnih razširitev, kot so podpora za ECC, notarska overitev (podpis na podpis) in elementi iz osnutka prihodnje izdaje standarda.

Opaženo je, da je Sequoia glede na načrtovano funkcionalnost dosegla pripravljenost za različico 1.0 že pred enim letom, vendar so se razvijalci odločili, da ne bodo hiteli in bodo namesto tega več časa posvetili iskanju napak in pisanju popolne, visokokakovostne dokumentacije s povezavami do informacij v standardu OpenPGP in primeri uporabe.

Različica 1.0 trenutno pokriva samo polje sequoia-openpgp in pripomoček za preverjanje digitalnega podpisa sqv. CLI »sq« in visokonivojski API-ji so še vedno v fazi dokončevanja in še niso stabilizirani.

Omejitve, ki jih je treba odpraviti v prihodnjih izdajah, vključujejo izvajanje storitev za shranjevanje zasebnih in javnih ključev, podporo za digitalne podpise z jasnim besedilom in možnost uporabe regularnih izrazov za določanje zaupanja vrednih podpisov.


Dodaj kot prednostni vir v Googlu