Primerjava izvedb
Storitev obstaja v dveh izvedbah, l4re in win. Vsaka je samostojen paket Rust; skupne izvorne kode
nimata. Ponujata iste algoritme, razlikujeta pa se v prenosu, obliki sporočil, naboru operacij in kodah
napak. Ta stran vam pomaga pri izbiri in pokaže, kje vgradnje ene izvedbe ni mogoče prenesti na drugo.
Izrazi
- Izvedba: eden od obeh paketov,
l4re-crypto-servicev mapil4re/aliwvds-crypto-service-winv mapiwin/. - Podatkovni prostor (dataspace): pomnilniško območje v L4Re, ki ga hkrati preslikata dve opravili.
DataspaceEndpoint: komponenta dobavitelja platforme, ki dve opravili poveže prek podatkovnih prostorov. Ni del storitve; storitev jo kliče prek vmesnika C.- Imenovana cev (named pipe): poimenovan komunikacijski kanal sistema Windows, tu uporabljen po vrsticah: ena vrstica JSON na zahtevo, ena vrstica JSON na odgovor.
Primerjava
l4re | win |
|
|---|---|---|
| Ciljni sistem | L4Re na x86_64 in aarch64 | Windows x86_64 |
| Različica | 0.2.0 | 0.3.0 |
| Prenos | DataspaceEndpoint, skupni pomnilnik | imenovane cevi, privzeto ime \\.\pipe\wvds_crypto |
| Oblika sporočil | binarna, 16-bajtna glava, little-endian | ena vrstica JSON, binarni podatki v Base64 |
| Največje sporočilo | 64 KiB koristnih podatkov | brez omejitve |
| Operacije | 10 podprtih vrst zahtev, 12 s ChaCha20; 5 rezerviranih | 10 poimenovanih operacij |
| Ustvarjanje ključev | ML-DSA, ML-KEM | AES-256, ML-DSA, ML-KEM |
| Enkratna vrednost pri AES-GCM | jo zagotovi klicatelj | jo ustvari storitev |
| Kode napak | števila, 32-bitna | imena, npr. KEY_NOT_FOUND |
| Zavezujoči opis | l4re/pub/include/wvds_crypto.h | win/src/protocol.rs |
| Uporabniški vmesnik | brez | besedilni vmesnik v terminalu, ga je mogoče izklopiti |
Podrobnosti posameznih vrstic opisujeta Binarni protokol izvedbe L4Re in Protokol JSON izvedbe Windows.
Katero izvedbo izbrati
l4re je namenjena sistemom, v katerih varnostno kritični deli tečejo kot ločena opravila na
mikrojedru L4Re. Kriptografska storitev je tedaj samostojno opravilo; napaka v opravilu, ki pošilja
zahteve, ključev ne doseže, ker mikrojedro naslovne prostore loči.
win je namenjena razvoju, predstavitvam in prehodom v sistemu Windows. Obliko JSON bere in piše
vsako orodje, ki zna odpreti imenovano cev. S konfiguracijsko datoteko lahko odprete več cevi
(»prehodov«), vsako z lastno statistiko; glejte Možnosti gradnje in konfiguracija.
Kako se izvedba L4Re gradi danes
Cilja gradnje v l4re/.cargo/config.toml sta x86_64-unknown-linux-gnu in aarch64-unknown-linux-gnu.
Lasten cilj Rust za L4Re je pripravljen, a zakomentiran, ker zahteva SDK za L4Re.
Iz tega sledi:
- Pot, ki sprejema zahteve prek
DataspaceEndpoint, se prevede le, če je ciljni sistem L4Re (target_os = "l4re"). - Program za cilj Linux namesto tega zažene predstavitev: po enkrat izvede AES-256-GCM, ML-DSA-65, ML-KEM-768 in HKDF-SHA256, izpiše rezultate in se konča.
- V sistemu Windows paket
l4refunkcijeDataspaceEndpointnadomesti z nadomestki, ki vedno spodletijo. Tako je knjižnico in teste mogoče prevesti in preveriti brez L4Re.
Če želite storitev poganjati kot pravo opravilo L4Re, potrebujete SDK za L4Re, cilj Rust za L4Re in
knjižnico DataspaceEndpoint dobavitelja vaše platforme.
Česa ta stran ne obravnava
- Zgradbe posameznih sporočil; za to sta namenjeni referenci obeh protokolov.
- Same gradnje; glejte Gradnja in testiranje.