Sequoia 1.0, kirjasto, joka toteuttaa OpenPGP-standardeja

Kolmen ja puolen vuoden kehitystyön jälkeen julkaistiin Sequoia 1.0 -versio , joka kehitti funktioiden ja komentorivityökalujen kirjaston OpenPGP-standardin (RFC-4880) avulla.

Julkaisussa tehtiin yhteenveto matalan tason API:n parissa tehdystä työstä , joka toteuttaa OpenPGP-standardin kattavuuden riittävänä täyteen käyttöön. Projektikoodi on kirjoitettu Rust-kielellä ja jaettu GPLv2+-lisenssillä.

Projektin perustivat kolme GnuPG:n avustajaa g10codesta, joka on GnuPG-lisäosien kehittäjä ja kryptojärjestelmien auditointiyritys. Sequoia-tiimi tunnetaan myös Hagrid-avainpalvelimen luomisesta, jota keys.openpgp.org-palvelu käyttää.

Uuden projektin tavoitteena oli suunnitella arkkitehtuuri uudelleen ja soveltaa uusia tekniikoita koodipohjan turvallisuuden ja luotettavuuden parantamiseksi.

Tietoturvan parantamiseksi Sequoia käyttää paitsi Rust-kieltä hyödyntäviä turvallisia ohjelmointityökaluja myös API-tason virheenkorjausta.

Esimerkiksi API estää sinua vahingossa viemästä salaisia ​​avaintietoja , koska vientitoiminnot vaativat oletusarvoisesti nimenomaisen valinnan. Samoin API varmistaa, ettei digitaalista allekirjoitusta päivitettäessä jää huomaamatta tärkeitä vaiheita; oletusarvoisesti luontiaika, tiivistealgoritmi ja allekirjoituksen myöntäjä päivittyvät automaattisesti.

Sequoia pyrkii myös pääsemään eroon GnuPG:n puutteista , kuten komentorivityökalujen toiminnallisuuden ja funktiokirjaston välisen synkronoinnin puutteesta (jotkut toiminnot voidaan suorittaa vain apuohjelmalla) sekä komponenttien välisestä liian tiukasta kytkennästä, joka vaikeuttaa muutosten tekemistä, hämärtää koodikantaa ja estää täydellisen yksikkötestausjärjestelmän luomisen.

Sequoia kehittää sq-komentorivityökalun Git-tyylisen alikomentotuen avulla , sqv-ohjelman (gpgv:n korvaaja) erillisten allekirjoitusten tarkistamiseen, sqop-apuohjelman (Stateless OpenPGP CLI) ja sequoia-openpgp-kirjaston.

C- ja Python-kielille on linkkejä. Suurin osa OpenPGP-standardissa kuvatuista toiminnoista on yhteensopiva digitaalisten allekirjoitusten salauksen, salauksen purkamisen, luomisen ja tarkistamisen kanssa.

Edistyneiden ominaisuuksien joukossa on huomattava, että se tukee vahvistamista erikseen toimitettavilla digitaalisilla allekirjoituksilla (erillinen allekirjoitus), mukauttamista pakettien hallintaohjelmien kanssa integroimiseksi (APT, RPM, upload jne.), Kykyä rajoittaa allekirjoituksia kynnys- ja aika-arvot.

Kehityksen, virheenkorjauksen ja tapahtumien analysoinnin yksinkertaistamiseksi tarjotaan pakettitarkistustyökaluja, jotka integroituvat analysaattoriin ja joiden avulla voit analysoida visuaalisesti salattujen viestien, digitaalisten allekirjoitusten ja avainten rakennetta.

Turvallisuussyistä kryptografisten palveluiden, kuten erillisten enklaavien laskentaan tarkoitettujen apuprosessorien, käyttö on sallittua. Eristämisen tehostamiseksi julkisten ja yksityisten avainten kanssa toimivat palvelut on erotettu erillisiksi prosesseiksi (prosessien vuorovaikutus on järjestetty Cap'n Proto -protokollan avulla). Esimerkiksi avainsäilö on toteutettu erillisenä prosessina.

API-vaihtoehtoja on kaksi: matala ja korkea. Matalan tason API jäljittelee mahdollisimman tarkasti OpenPGP:n ja joidenkin siihen liittyvien laajennusten ominaisuuksia, kuten ECC-tukea, notaaritodennusta (signature-on-signature) ja standardin tulevan version luonnoksen elementtejä.

Suunnitellun toiminnallisuuden mukaisesti Sequoia saavutti valmiuden versioon 1.0 jo vuosi sitten, mutta kehittäjät päättivät olla kiirehtimättä ja sen sijaan käyttää enemmän aikaa virheiden etsimiseen ja täydellisen, korkealaatuisen dokumentaation kirjoittamiseen, joka sisältää linkkejä OpenPGP-standardin tietoihin ja käyttöesimerkkejä.

Versio 1.0 kattaa tällä hetkellä vain sequoia-openpgp-laatikon ja sqv-digitaalisen allekirjoituksen varmennustyökalun. "sq"-komentoliittymää ja korkean tason API-rajapintoja viimeistellään edelleen, eivätkä ne ole vielä vakiintuneet.

Rajoituksiin, jotka on tarkoitus poistaa tulevissa julkaisuissa, sisältyvät yksityisten ja julkisten avainten tallentamiseen tarkoitettujen palvelujen käyttöönotto, selkeiden teksti-digitaalisten allekirjoitusten tuki ja kyky käyttää säännöllisiä lausekkeita luotettujen allekirjoitusten määrittämiseen.


Lisää ensisijaiseksi lähteeksi Googlessa