Amazon ha introdotto aws-lc-rs, una libreria crittografica progettata per l'uso nelle applicazioni Rust e compatibile a livello API con la libreria ring Rust. Il codice del progetto Γ¨ distribuito sotto le licenze Apache 2.0 e ISC. La libreria supporta il lavoro su piattaforme Linux (x86, x86-64, aarch64) e macOS (x86-64).
L'implementazione delle operazioni crittografiche in aws-lc-rs si basa sulla libreria AWS-LC (AWS libcrypto), scritta in C++ e, a sua volta, basata sul codice del progetto BoringSSL (un fork di OpenSSL supportato da Google). Inoltre, vengono proposti due pacchetti crate di basso livello: aws-lc-sys (wrapper di basso livello generati automaticamente su AWS-LC) e aws-lc-fips-sys (wrapper di basso livello basati su FFI (Foreign Function Interface)) , riproducendo l'API AWS-LC.
La libreria AWS-LC include implementazioni formalmente verificate degli algoritmi SHA-2, HMAC, AES-GCM, AES-KWP, HKDF, ECDH ed ECDSA che soddisfano i requisiti per i sistemi crittografici che possono essere utilizzati dalle agenzie governative negli Stati Uniti e Canada. La creazione di un framework per il linguaggio Rust Γ¨ stata guidata dalla necessitΓ di librerie crittografiche conformi a FIPS che potessero essere utilizzate nei progetti Rust. Nella libreria aws-lc-rs, Amazon ha deciso di combinare l'API Ring familiare e diffusa tra i programmatori Rust e implementazioni verificate di algoritmi della libreria AWS-LC conformi ai requisiti FIPS.
L'utilizzo della libreria AWS-LC come base ha permesso inoltre di utilizzare tutte le ottimizzazioni specifiche sviluppate da Amazon in aws-lc-rs. Ad esempio, AWS-LC offre varianti degli algoritmi ChaCha20-Poly1305 e NIST P-256 ottimizzati separatamente per i processori ARM, nonchΓ© ottimizzazioni significative per i sistemi x86 che accelerano l'elaborazione delle firme digitali ECDSA. Durante i test dei protocolli TLS 1.2 e 1.3, la libreria aws-lc-rs ha sovraperformato significativamente il pacchetto russels, dimostrando sia una riduzione dei tempi di configurazione della connessione che un aumento del throughput (piΓΉ che raddoppiato nei test ECDSA).
Fonte: opennet.ru