Amazon์€ Rust ์–ธ์–ด์šฉ ์˜คํ”ˆ ์†Œ์Šค ์•”ํ˜ธํ™” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ฒŒ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค.

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 ํ…Œ์ŠคํŠธ์—์„œ ๋‘ ๋ฐฐ ์ด์ƒ).

Amazon์€ Rust ์–ธ์–ด์šฉ ์˜คํ”ˆ ์†Œ์Šค ์•”ํ˜ธํ™” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ฒŒ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค.


์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€