์•”ํ˜ธํ™” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ WolfSSL 5.0.0 ์ถœ์‹œ

์‚ฌ๋ฌผ ์ธํ„ฐ๋„ท ์žฅ์น˜, ์Šค๋งˆํŠธ ํ™ˆ ์‹œ์Šคํ…œ, ์ž๋™์ฐจ ์ •๋ณด ์‹œ์Šคํ…œ, ๋ผ์šฐํ„ฐ ๋ฐ ํœด๋Œ€ํฐ๊ณผ ๊ฐ™์ด ํ”„๋กœ์„ธ์„œ ๋ฐ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์ œํ•œ๋œ ์ž„๋ฒ ๋””๋“œ ์žฅ์น˜์— ์‚ฌ์šฉํ•˜๋„๋ก ์ตœ์ ํ™”๋œ ์†Œํ˜• ์•”ํ˜ธํ™” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ WolfSSL 5.0.0์˜ ์ƒˆ๋กœ์šด ๋ฆด๋ฆฌ์Šค๊ฐ€ ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ๋Š” C ์–ธ์–ด๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ GPLv2 ๋ผ์ด์„ผ์Šค์— ๋”ฐ๋ผ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.

์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ChaCha20, Curve25519, NTRU, RSA, Blake2b, TLS 1.0-1.3 ๋ฐ DTLS 1.2๋ฅผ ํฌํ•จํ•œ ์ตœ์‹  ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ณ ์„ฑ๋Šฅ ๊ตฌํ˜„์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž์— ๋”ฐ๋ฅด๋ฉด OpenSSL ๊ตฌํ˜„๋ณด๋‹ค 20๋ฐฐ ๋” ์ปดํŒฉํŠธํ•ฉ๋‹ˆ๋‹ค. OpenSSL API์™€์˜ ํ˜ธํ™˜์„ฑ์„ ์œ„ํ•ด ๋‹จ์ˆœํ™”๋œ ์ž์ฒด API์™€ ๋ ˆ์ด์–ด๋ฅผ ๋ชจ๋‘ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ธ์ฆ์„œ ํ•ด์ง€ ํ™•์ธ์„ ์œ„ํ•ด OCSP(์˜จ๋ผ์ธ ์ธ์ฆ์„œ ์ƒํƒœ ํ”„๋กœํ† ์ฝœ) ๋ฐ CRL(์ธ์ฆ์„œ ํ•ด์ง€ ๋ชฉ๋ก)์ด ์ง€์›๋ฉ๋‹ˆ๋‹ค.

WolfSSL 5.0.0์˜ ์ฃผ์š” ํ˜์‹ :

  • ์ถ”๊ฐ€๋œ ํ”Œ๋žซํผ ์ง€์›: IoT-Safe(TLS ์ง€์› ํฌํ•จ), SE050(RNG, SHA, AES, ECC ๋ฐ ED25519 ์ง€์› ํฌํ•จ) ๋ฐ Renesas TSIP 1.13(RX72N ๋งˆ์ดํฌ๋กœ์ปจํŠธ๋กค๋Ÿฌ์šฉ).
  • ์–‘์ž ์ปดํ“จํ„ฐ์—์„œ ์„ ํƒ์— ์ €ํ•ญํ•˜๋Š” ์–‘์ž ํ›„ ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค: TLS 3์šฉ NIST Round 1.3 KEM ๊ทธ๋ฃน ๋ฐ OQS(Open Quantum Safe, liboqs) ํ”„๋กœ์ ํŠธ ๊ธฐ๋ฐ˜ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ NIST ECC ๊ทธ๋ฃน. ์–‘์ž ์ปดํ“จํ„ฐ์—์„œ ์„ ํƒ์— ์ €ํ•ญํ•˜๋Š” ๊ทธ๋ฃน๋„ ๋ ˆ์ด์–ด์— ์ถ”๊ฐ€๋˜์–ด ํ˜ธํ™˜์„ฑ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค. NTRU ๋ฐ QSH ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•œ ์ง€์›์ด ์ค‘๋‹จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • Linux ์ปค๋„์šฉ ๋ชจ๋“ˆ์€ FIPS 140-3 ๋ณด์•ˆ ํ‘œ์ค€์„ ์ค€์ˆ˜ํ•˜๋Š” ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•œ ์ง€์›์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. FIPS 140-3์„ ๊ตฌํ˜„ํ•œ ๋ณ„๋„์˜ ์ œํ’ˆ์ด ์ œ๊ณต๋˜๋ฉฐ, ํ•ด๋‹น ์ฝ”๋“œ๋Š” ์•„์ง ํ…Œ์ŠคํŠธ, ๊ฒ€ํ†  ๋ฐ ๊ฒ€์ฆ ๋‹จ๊ณ„์— ์žˆ์Šต๋‹ˆ๋‹ค.
  • x86 CPU ๋ฒกํ„ฐ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ€์†ํ™”๋œ RSA, ECC, DH, DSA, AES/AES-GCM ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๋ณ€ํ˜•์ด Linux ์ปค๋„์šฉ ๋ชจ๋“ˆ์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฒกํ„ฐ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ธํ„ฐ๋ŸฝํŠธ ํ•ธ๋“ค๋Ÿฌ๋„ ๊ฐ€์†ํ™”๋ฉ๋‹ˆ๋‹ค. ๋””์ง€ํ„ธ ์„œ๋ช…์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“ˆ์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ ํ•˜์œ„ ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. "โ€”enable-linuxkm-pie"(์œ„์น˜ ๋…๋ฆฝ์ ) ๋ชจ๋“œ์—์„œ ๋‚ด์žฅ๋œ WolfCrypt ์•”ํ˜ธํ™” ์—”์ง„์„ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ชจ๋“ˆ์€ Linux ์ปค๋„ 3.16, 4.4, 4.9, 5.4 ๋ฐ 5.10์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • ๋‹ค๋ฅธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ์˜ ํ˜ธํ™˜์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด libssh2, pyOpenSSL, libimobiledevice, rsyslog, OpenSSH 8.5p1 ๋ฐ Python 3.8.5์— ๋Œ€ํ•œ ์ง€์›์ด ๊ณ„์ธต์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • EVP_blake2, WolfSSL_set_client_CA_list, WolfSSL_EVP_sha512_256, wc_Sha512*, EVP_shake256, SSL_CIPHER_*, SSL_SESSION_* ๋“ฑ์„ ํฌํ•จํ•œ ์ƒˆ๋กœ์šด API์˜ ์ƒ๋‹น ๋ถ€๋ถ„์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์–‘์„ฑ์œผ๋กœ ๊ฐ„์ฃผ๋˜๋Š” ๋‘ ๊ฐ€์ง€ ์ทจ์•ฝ์ , ์ฆ‰ ํŠน์ • ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ DSA ๋””์ง€ํ„ธ ์„œ๋ช…์„ ์ƒ์„ฑํ•  ๋•Œ ์ค‘๋‹จ๋˜๊ณ  ์ด๋ฆ„ ์ œํ•œ์„ ์‚ฌ์šฉํ•  ๋•Œ ์—ฌ๋Ÿฌ ๊ฐœ์ฒด ๋Œ€์ฒด ์ด๋ฆ„์ด ์žˆ๋Š” ์ธ์ฆ์„œ๋ฅผ ์ž˜๋ชป ํ™•์ธํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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