ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ Amazon ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠ»Π° ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ aws-lc-rs, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΡ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ Π½Π° ΡΠ·ΡΠΊΠ΅ Rust ΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ API Ρ Rust-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ ring. ΠΠΎΠ΄ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΡΠΌΠΈ Apache 2.0 ΠΈ ISC. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ°Π±ΠΎΡΡ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ Linux (x86, x86-64, aarch64) ΠΈ macOS (x86-64).
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π² aws-lc-rs Π±Π°Π·ΠΈΡΡΠ΅ΡΡΡ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ AWS-LC (AWS libcrypto), Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠΉ Π½Π° ΡΠ·ΡΠΊΠ΅ Π‘++ ΠΈ, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π½Π° ΠΊΠΎΠ΄Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° BoringSSL (ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Google ΠΎΡΠ²Π΅ΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΎΡ OpenSSL). ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ Π΄Π²Π° Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΡ crate-ΠΏΠ°ΠΊΠ΅ΡΠ°: aws-lc-sys (Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠ΅ ΠΎΠ±Π²ΡΠ·ΠΊΠΈ Π½Π°Π΄ AWS-LC) ΠΈ aws-lc-fips-sys (Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠ΅ ΠΎΠ±Π²ΡΠ·ΠΊΠΈ Π½Π° Π±Π°Π·Π΅ FFI (Foreign Function Interface)), Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠΈΠ΅ API AWS-LC.
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° AWS-LC Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ Π²Π΅ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² SHA-2, HMAC, AES-GCM, AES-KWP, HKDF, ECDH ΠΈ ECDSA, ΠΎΡΠ²Π΅ΡΠ°ΡΡΠΈΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌ ΠΊ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² Π³ΠΎΡΡΠ΄Π°ΡΡΡΠ²Π΅Π½Π½ΡΡ ΡΡΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡΡ Π‘Π¨Π ΠΈ ΠΠ°Π½Π°Π΄Ρ. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±Π²ΡΠ·ΠΊΠΈ Π΄Π»Ρ ΡΠ·ΡΠΊΠ° Rust ΠΎΠ±ΡΡΡΠ½ΡΠ΅ΡΡΡ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡΡ Π² Π½Π°Π»ΠΈΡΠΈΠΈ ΠΊΡΠΈΠΏΡΠΎΠ±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ°ΠΌ FIPS, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ Π½Π° ΡΠ·ΡΠΊΠ΅ Rust. Π Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ aws-lc-rs ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ Amazon ΡΠ΅ΡΠΈΠ»Π° ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΡΡ ΠΏΡΠΈΠ²ΡΡΠ½ΡΠΉ ΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΡΠΉ ΡΡΠ΅Π΄ΠΈ Rust-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ² API Ring ΠΈ Π²Π΅ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ AWS-LC, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌ FIPS.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΡΠ½ΠΎΠ²Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ AWS-LC ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Π² aws-lc-rs Π²ΡΠ΅ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ, ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Amazon. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² AWS-LC Π΄ΠΎΡΡΡΠΏΠ½Ρ Π²Π°ΡΠΈΠ°Π½ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² ChaCha20-Poly1305 ΠΈ NIST P-256, ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π΄Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² ARM, Π° ΡΠ°ΠΊΠΆΠ΅ Π²Π½Π΅ΡΠ΅Π½Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π΄Π»Ρ ΡΠΈΡΡΠ΅ΠΌ x86, ΡΡΠΊΠΎΡΡΡΡΠΈΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΡΠΈΡΡΠΎΠ²ΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠ΅ΠΉ ECDSA. ΠΡΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² TLS 1.2 ΠΈ 1.3 Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° aws-lc-rs Π·Π°ΠΌΠ΅ΡΠ½ΠΎ ΠΎΠΏΠ΅ΡΠ΅Π΄ΠΈΠ»Π° ΠΏΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΠ°ΠΊΠ΅Ρ rustls, ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°Π² ΠΊΠ°ΠΊ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ, ΡΠ°ΠΊ ΠΈ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΏΡΡΠΊΠ½ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ (Π² ΡΠ΅ΡΡΠ°Ρ ECDSA Π±ΠΎΠ»Π΅Π΅, ΡΠ΅ΠΌ Π² Π΄Π²Π° ΡΠ°Π·Π°).
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru