Amazon์ Rust ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ฌ์ฉํ๋๋ก ์ค๊ณ๋์์ผ๋ฉฐ API ์์ค์์ Rust ๋ง ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํธํ๋๋ ์ํธํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ aws-lc-rs๋ฅผ ์ถ์ํ์ต๋๋ค. ํ๋ก์ ํธ ์ฝ๋๋ Apache 2.0 ๋ฐ ISC ๋ผ์ด์ผ์ค์ ๋ฐ๋ผ ๋ฐฐํฌ๋ฉ๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ Linux(x86, x86-64, aarch64) ๋ฐ macOS(x86-64) ํ๋ซํผ์์์ ์์ ์ ์ง์ํฉ๋๋ค.
aws-lc-rs์ ์ํธํ ์์ ๊ตฌํ์ C++๋ก ์์ฑ๋ AWS-LC ๋ผ์ด๋ธ๋ฌ๋ฆฌ(AWS libcrypto)์ BoringSSL ํ๋ก์ ํธ(Google์์ ์ง์ํ๋ OpenSSL ํฌํฌ)์ ์ฝ๋๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค. ๋ํ aws-lc-sys(AWS-LC๋ฅผ ํตํด ์๋์ผ๋ก ์์ฑ๋ ํ์ ์์ค ๋ํผ) ๋ฐ aws-lc-fips-sys(FFI(์ธ๋ถ ํจ์ ์ธํฐํ์ด์ค) ๊ธฐ๋ฐ ํ์ ์์ค ๋ํผ)์ ๋ ๊ฐ์ง ํ์ ์์ค ํฌ๋ ์ดํธ ํจํค์ง๊ฐ ์ ์๋ฉ๋๋ค. , AWS-LC API๋ฅผ ์ฌํํฉ๋๋ค.
AWS-LC ๋ผ์ด๋ธ๋ฌ๋ฆฌ์๋ ๋ฏธ๊ตญ ์ ๋ถ ๊ธฐ๊ด์์ ์ฌ์ฉํ ์ ์๋ ์ํธํ ์์คํ ์ ๋ํ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ๋ SHA-2, HMAC, AES-GCM, AES-KWP, HKDF, ECDH ๋ฐ ECDSA ์๊ณ ๋ฆฌ์ฆ์ ๊ณต์์ ์ผ๋ก ๊ฒ์ฆ๋ ๊ตฌํ์ด ํฌํจ๋์ด ์์ต๋๋ค. ์บ๋๋ค. Rust ์ธ์ด์ฉ ํ๋ ์์ํฌ ์์ฑ์ Rust ํ๋ก์ ํธ์์ ์ฌ์ฉํ ์ ์๋ FIPS ํธํ ์ํธํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ์์ฑ์ ์ํด ์ถ์ง๋์์ต๋๋ค. aws-lc-rs ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ Amazon์ Rust ํ๋ก๊ทธ๋๋จธ๋ค ์ฌ์ด์์ ์น์ํ๊ณ ๋๋ฆฌ ํผ์ง Ring API์ FIPS ์๊ตฌ ์ฌํญ์ ์ค์ํ๋ AWS-LC ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๊ฒ์ฆ๋ ์๊ณ ๋ฆฌ์ฆ ๊ตฌํ์ ๊ฒฐํฉํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค.
AWS-LC ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ฌ์ฉํ๋ฉด Amazon์ด aws-lc-rs์์ ๊ฐ๋ฐํ ๋ชจ๋ ํน์ ์ต์ ํ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์๋ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, AWS-LC๋ ARM ํ๋ก์ธ์์ ๋ํด ๋ณ๋๋ก ์ต์ ํ๋ ChaCha20-Poly1305 ๋ฐ NIST P-256 ์๊ณ ๋ฆฌ์ฆ์ ๋ณํ์ ์ ๊ณตํ ๋ฟ๋ง ์๋๋ผ ECDSA ๋์งํธ ์๋ช ์ฒ๋ฆฌ ์๋๋ฅผ ๋์ด๋ x86 ์์คํ ์ ๋ํ ์ค์ํ ์ต์ ํ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. TLS 1.2 ๋ฐ 1.3 ํ๋กํ ์ฝ์ ํ ์คํธํ ๋ aws-lc-rs ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ Rustls ํจํค์ง๋ณด๋ค ์ฑ๋ฅ์ด ํฌ๊ฒ ํฅ์๋์ด ์ฐ๊ฒฐ ์ค์ ์๊ฐ์ด ๋จ์ถ๋๊ณ ์ฒ๋ฆฌ๋์ด ์ฆ๊ฐํ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค(ECDSA ํ ์คํธ์์ ๋ ๋ฐฐ ์ด์).
์ถ์ฒ : opennet.ru