๐Ÿ” NSS์™€ OpenSSL์˜ ์ฐจ์ด์  โ€” ๋ฆฌ๋ˆ…์Šค ๋ณด์•ˆ ํ†ต์‹  ๊ตฌ์„ฑ์—์„œ์˜ NSS์˜ ์œ„์น˜

1. ๋“ค์–ด๊ฐ€๋ฉฐ

HTTPS, TLS, ์ธ์ฆ์„œ ๋“ฑ์€ ์šฐ๋ฆฌ๊ฐ€ ๋งค์ผ ์ ‘ํ•˜๋Š” ๋ณด์•ˆ ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ โ€œ์ด ๋ชจ๋“  ๊ฑธ ์‹ค์ œ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋ฌด์—‡์ผ๊นŒ?โ€๋ฅผ ๋ฌป๋Š”๋‹ค๋ฉด, ๋Œ€๋ถ€๋ถ„์˜ ๋ฆฌ๋ˆ…์Šค ๊ฐœ๋ฐœ์ž๋Š” ๋‘ ๊ฐ€์ง€ ์ด๋ฆ„์„ ๋– ์˜ฌ๋ฆฝ๋‹ˆ๋‹ค.

๋ฐ”๋กœ OpenSSL๊ณผ NSS(Network Security Services) ์ž…๋‹ˆ๋‹ค.

์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ์ด ๋‘ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅด๊ณ , ํŠนํžˆ ๋ฆฌ๋ˆ…์Šค ๋ณด์•ˆ ํ†ต์‹  ๊ตฌ์„ฑ์—์„œ NSS๊ฐ€ ์–ด๋–ค ์œ„์น˜๋ฅผ ์ฐจ์ง€ํ•˜๋Š”์ง€๋ฅผ ์ •๋ฆฌํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.


2. OpenSSL๊ณผ NSS๋ž€?

๐Ÿ”ธ OpenSSL

  • ๊ธฐ์›: 1998๋…„, SSLeay ํ”„๋กœ์ ํŠธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์‹œ์ž‘๋œ ์˜คํ”ˆ์†Œ์Šค ์•”ํ˜ธํ™” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
  • ์—ญํ• : TLS/SSL ํ”„๋กœํ† ์ฝœ ๊ตฌํ˜„ + ๋Œ€์นญ/๋น„๋Œ€์นญ ์•”ํ˜ธํ™”, ํ•ด์‹œ, ์ธ์ฆ์„œ ์ฒ˜๋ฆฌ ๋“ฑ
  • ์–ธ์–ด/๋ผ์ด์„ ์Šค: C ์–ธ์–ด ๊ธฐ๋ฐ˜, Apache-style License
  • ๋Œ€ํ‘œ ์‚ฌ์šฉ์ž: Linux ์„œ๋ฒ„, Nginx, Apache, cURL, Python ๋“ฑ ๋Œ€๋ถ€๋ถ„์˜ ์˜คํ”ˆ์†Œ์Šค ์†Œํ”„ํŠธ์›จ์–ด

โžก๏ธ OpenSSL์€ โ€œTLS ํ†ต์‹ ์„ ์œ„ํ•œ ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌโ€๋กœ์„œ ์‚ฌ์‹ค์ƒ ๋ฆฌ๋ˆ…์Šค ์„ธ๊ณ„์˜ ๊ธฐ๋ณธ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.


๐Ÿ”ธ NSS (Network Security Services)

  • ๊ธฐ์›: ๋„ท์Šค์ผ€์ดํ”„(Netscape)์—์„œ Mozilla ํ”„๋กœ์ ํŠธ๋กœ ์ด์–ด์ง„ ๋ณด์•ˆ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
  • ์—ญํ• : TLS/SSL, S/MIME, PKCS#11, X.509 ์ธ์ฆ์„œ ๊ด€๋ฆฌ ๋“ฑ
  • ํŠน์ง•:
    • FIPS 140-2 ์ธ์ฆ์„ ํš๋“ํ•œ ์•”ํ˜ธํ™” ๋ชจ๋“ˆ ์ œ๊ณต (๊ณต๊ณต๊ธฐ๊ด€, ๊ธˆ์œต๊ธฐ๊ด€์—์„œ ์„ ํ˜ธ)
    • ๋ชจ๋“ˆํ™” ๊ตฌ์กฐ (softoken, freebl, libnssutil ๋“ฑ์œผ๋กœ ๋ถ„๋ฆฌ)
    • PKCS#11 ๊ธฐ๋ฐ˜ ํ‚ค ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณด์•ˆ ํ† ํฐ, HSM๊ณผ ํ˜ธํ™˜

โžก๏ธ NSS๋Š” โ€œ๋ณด์•ˆ ๊ทœ๊ฒฉ ์ค€์ˆ˜๋ฅผ ์œ„ํ•œ ์‹œ์Šคํ…œ ๋ ˆ๋ฒจ ์•”ํ˜ธํ™” ์Šคํƒโ€์œผ๋กœ ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.


3. OpenSSL vs NSS โ€” ์ฃผ์š” ์ฐจ์ด์  ๋น„๊ต

๊ตฌ๋ถ„OpenSSLNSS
๊ฐœ๋ฐœ ์ฃผ์ฒดOpenSSL ์žฌ๋‹จMozilla ์žฌ๋‹จ
์ฃผ์š” ์‚ฌ์šฉ์ฒ˜๋ฆฌ๋ˆ…์Šค ์„œ๋ฒ„, CLI ํˆด, ๋ฐฑ์—”๋“œ ์„œ๋น„์ŠคFirefox, Chrome(์ผ๋ถ€), Red Hat, Fedora
ํ‚ค ๊ด€๋ฆฌ ๋ฐฉ์‹PEM ํŒŒ์ผ ๊ธฐ๋ฐ˜PKCS#11 ๊ธฐ๋ฐ˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (cert8.db, key4.db ๋“ฑ)
FIPS ์ธ์ฆ์„ ํƒ์  ๋ชจ๋“ˆ๊ธฐ๋ณธ์ ์œผ๋กœ FIPS 140-2 ์ธ์ฆ ์ง€์›
API ํ˜ธํ™˜์„ฑOpenSSL ์ „์šฉ APINSS API + PKCS#11 ์ธํ„ฐํŽ˜์ด์Šค
์ดˆ์ ์†๋„, ๋ฒ”์šฉ์„ฑ๋ณด์•ˆ ์ •์ฑ…, ์ธ์ฆ ์ค€์ˆ˜
์˜ˆ์‹œ ๋ช…๋ น์–ดopenssl s_client -connect host:443certutil, modutil, pk12util

๐Ÿ’ก ์š”์•ฝํ•˜์ž๋ฉด,

OpenSSL์€ โ€œ์†๋„์™€ ๋ฒ”์šฉ์„ฑโ€ ์ค‘์‹ฌ,

NSS๋Š” โ€œ๋ณด์•ˆ ๊ทœ๊ฒฉ๊ณผ ์ •์ฑ… ์ค€์ˆ˜โ€ ์ค‘์‹ฌ์ž…๋‹ˆ๋‹ค.


4. ๋ฆฌ๋ˆ…์Šค ๋ณด์•ˆ ํ†ต์‹  ๊ตฌ์„ฑ์—์„œ NSS์˜ ์œ„์น˜

๋ฆฌ๋ˆ…์Šค๋Š” ํ•˜๋‚˜์˜ SSL/TLS ์Šคํƒ๋งŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค.

๊ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋‚˜ ๋ฐฐํฌํŒ๋งˆ๋‹ค ๋‹ค๋ฅธ ๋ณด์•ˆ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ”น ๊ตฌ์„ฑ ๊ฐœ๋…๋„

[ Application Layer ]
โ”œโ”€โ”€ Firefox / Thunderbird / Chromium โ†’ NSS
โ”œโ”€โ”€ curl / wget / Python / nginx / Apache โ†’ OpenSSL / GnuTLS
โ””โ”€โ”€ RPM, Yum, DNF ๋“ฑ โ†’ NSS

[ Security Library Layer ]
โ”œโ”€โ”€ OpenSSL (libssl, libcrypto)
โ”œโ”€โ”€ NSS (libnss3, libsoftokn3)
โ”œโ”€โ”€ GnuTLS (libgnutls)
โ””โ”€โ”€ WolfSSL, mbedTLS ๋“ฑ

[ Kernel / System Layer ]
โ””โ”€โ”€ /dev/random, HSM, PKCS#11 ๋ชจ๋“ˆ

๐Ÿ”น NSS์˜ ์—ญํ• 

  • ๋ ˆ๋“œํ–‡(RHEL), Fedora ๊ณ„์—ด์—์„œ๋Š” ์‹œ์Šคํ…œ ๊ธฐ๋ณธ ๋ณด์•ˆ ์Šคํƒ์œผ๋กœ NSS๊ฐ€ ์ฑ„ํƒ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์˜ˆ: DNF ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž, RPM ์„œ๋ช… ๊ฒ€์ฆ ๋“ฑ
  • ๋ธŒ๋ผ์šฐ์ € ๋ฐ ์ธ์ฆ์„œ ๊ด€๋ฆฌ์—์„œ NSS๊ฐ€ ์ธ์ฆ์„œ ์ €์žฅ์†Œ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
    • ์˜ˆ: certutil -L -d sql:$HOME/.pki/nssdb ๋กœ NSS DB๋ฅผ ์กฐํšŒ ๊ฐ€๋Šฅ
  • **๋ณด์•ˆ์ •์ฑ…์ด ์—„๊ฒฉํ•œ ํ™˜๊ฒฝ(FIPS ๋ชจ๋“œ)**์—์„œ๋Š” NSS ๊ธฐ๋ฐ˜ ์•”ํ˜ธํ™”๋งŒ ํ—ˆ์šฉ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค.

์ฆ‰, NSS๋Š” ๋ฆฌ๋ˆ…์Šค์˜ โ€œ๋ณด์•ˆ ๊ทผ๊ฐ„โ€์„ ๋‹ด๋‹นํ•˜๋Š” ์‹œ์Šคํ…œ ๋ ˆ๋ฒจ ์•”ํ˜ธํ™” ์ธํ”„๋ผ๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


5. ๊ฒฐ๋ก 

OpenSSL์€ ์„œ๋ฒ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ค‘์‹ฌ์˜ ๋ณด์•ˆ ๋„๊ตฌ์ด๊ณ ,

NSS๋Š” ์‹œ์Šคํ…œ ๋ณด์•ˆ ์ •์ฑ…๊ณผ ์ธ์ฆ์„œ ๊ด€๋ฆฌ๋ฅผ ๋‹ด๋‹นํ•˜๋Š” ๋ณด์•ˆ ํ”Œ๋žซํผ ๊ณ„์ธต์ž…๋‹ˆ๋‹ค.

๋‘˜์€ ๊ฒฝ์Ÿ ๊ด€๊ณ„๋ผ๊ธฐ๋ณด๋‹ค ์„œ๋กœ ๋‹ค๋ฅธ ์˜์—ญ์˜ ๋ณด์•ˆ์„ ์ฑ…์ž„์ง€๋Š” ํ˜‘๋ ฅ ๊ตฌ์กฐ๋กœ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ์ •ํ™•ํ•ฉ๋‹ˆ๋‹ค.

โœ… ์ •๋ฆฌ

  • OpenSSL โ†’ ํ†ต์‹  ๋ณด์•ˆ (์„œ๋ฒ„, CLI, API)
  • NSS โ†’ ์‹œ์Šคํ…œ ๋ณด์•ˆ ์ •์ฑ…, ์ธ์ฆ์„œ ์ €์žฅ์†Œ, FIPS ๋ชจ๋“ˆ

Posted in

๋Œ“๊ธ€ ๋‚จ๊ธฐ๊ธฐ