Amazon je objavio kriptografsku biblioteku otvorenog koda za Rust jezik

Amazon je predstavio aws-lc-rs, kriptografsku biblioteku dizajniranu za upotrebu u Rust aplikacijama i kompatibilnu na API nivou sa Rust ring bibliotekom. Kod projekta se distribuira pod Apache 2.0 i ISC licencama. Biblioteka podržava rad na Linux (x86, x86-64, aarch64) i macOS (x86-64) platformama.

Implementacija kriptografskih operacija u aws-lc-rs zasniva se na AWS-LC biblioteci (AWS libcrypto), napisanoj u C++ i, zauzvrat, baziranom na kodu iz projekta BoringSSL (fork OpenSSL-a koji podržava Google). Dodatno, predložena su dva paketa za sanduke niskog nivoa: aws-lc-sys (automatski generisani omoti niskog nivoa preko AWS-LC) i aws-lc-fips-sys (niskorazinski omoti zasnovani na FFI (Interfejs stranih funkcija)) , koji reprodukuje AWS-LC API.

AWS-LC biblioteka uključuje formalno verifikovane implementacije SHA-2, HMAC, AES-GCM, AES-KWP, HKDF, ECDH i ECDSA algoritama koje ispunjavaju zahtjeve za kriptografske sisteme koje mogu koristiti vladine agencije u Sjedinjenim Državama i Kanada. Stvaranje okvira za Rust jezik potaknuto je potrebom za kripto bibliotekama kompatibilnim sa FIPS-om koje bi se mogle koristiti u Rust projektima. U biblioteci aws-lc-rs, Amazon je odlučio kombinirati poznati i široko rasprostranjeni Ring API među Rust programerima i provjerene implementacije algoritama iz AWS-LC biblioteke koji su u skladu sa zahtjevima FIPS.

Korištenje AWS-LC biblioteke kao osnove također je omogućilo korištenje svih specifičnih optimizacija koje je razvio Amazon u aws-lc-rs. Na primjer, AWS-LC nudi varijante algoritama ChaCha20-Poly1305 i NIST P-256 koje su posebno optimizovane za ARM procesore, kao i značajne optimizacije za x86 sisteme koji ubrzavaju obradu ECDSA digitalnih potpisa. Prilikom testiranja TLS 1.2 i 1.3 protokola, biblioteka aws-lc-rs je značajno nadmašila rustls paket, pokazujući i smanjenje vremena postavljanja veze i povećanje propusnosti (više nego udvostručenje u ECDSA testovima).

Amazon je objavio kriptografsku biblioteku otvorenog koda za Rust jezik


izvor: opennet.ru

Dodajte komentar