โ„น๏ธ testssl.sh ๋ณด์•ˆ ๊ฒ€์‚ฌ
SSL/TLS ์ธ์ฆ์„œ, ์•”ํ˜ธํ™” ํ”„๋กœํ† ์ฝœ, ๋ณด์•ˆ ์ทจ์•ฝ์ ์„ ์ข…ํ•ฉ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค. ๊ฒ€์‚ฌ ์‹œ๊ฐ„์€ ์•ฝ 5-10๋ถ„ ์†Œ์š”๋ฉ๋‹ˆ๋‹ค.

SSL ๊ธฐ๋ณธ ํ…Œ์ŠคํŠธ๋ž€?

testssl.sh๋Š” SSL/TLS ๊ตฌ์„ฑ์„ ์ข…ํ•ฉ์ ์œผ๋กœ ๊ฒ€์‚ฌํ•˜๋Š” ์˜คํ”ˆ์†Œ์Šค ๋„๊ตฌ๋กœ, ์›น์‚ฌ์ดํŠธ์˜ HTTPS ๋ณด์•ˆ ์„ค์ •์„ ์ •๋ฐ€ํ•˜๊ฒŒ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ”ง testssl.sh๋ž€?

  • ์˜คํ”ˆ์†Œ์Šค SSL/TLS ํ…Œ์Šคํ„ฐ: GitHub์—์„œ 10,000+ ์Šคํƒ€๋ฅผ ๋ฐ›์€ ์—…๊ณ„ ํ‘œ์ค€ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.
  • ํฌ๊ด„์  ๊ฒ€์‚ฌ: SSL Labs์™€ ์œ ์‚ฌํ•˜์ง€๋งŒ ๋” ์ƒ์„ธํ•œ ๊ธฐ์ˆ ์  ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ์‹ค์‹œ๊ฐ„ ๋ถ„์„: ์„œ๋ฒ„์— ์ง์ ‘ ์—ฐ๊ฒฐํ•˜์—ฌ ์‹ค์ œ SSL/TLS ์„ค์ •์„ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค.
  • ์ทจ์•ฝ์  ํƒ์ง€: Heartbleed, POODLE, BEAST ๋“ฑ ์ฃผ์š” SSL/TLS ์ทจ์•ฝ์ ์„ ์ž๋™ ๊ฒ€์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“‹ ์ฃผ์š” ๊ฒ€์‚ฌ ํ•ญ๋ชฉ

๐Ÿ” SSL/TLS ํ”„๋กœํ† ์ฝœ
  • ์ง€์› ํ”„๋กœํ† ์ฝœ ๋ฒ„์ „ (SSL 2.0/3.0, TLS 1.0~1.3)
  • ์ทจ์•ฝํ•œ ๊ตฌ๋ฒ„์ „ ํ”„๋กœํ† ์ฝœ ํƒ์ง€
  • ์ตœ์‹  TLS 1.3 ์ง€์› ์—ฌ๋ถ€
๐Ÿ“œ SSL ์ธ์ฆ์„œ
  • ์ธ์ฆ์„œ ์œ ํšจ์„ฑ ๋ฐ ๋งŒ๋ฃŒ์ผ
  • ์ธ์ฆ์„œ ์ฒด์ธ ์™„์ „์„ฑ
  • Subject Alternative Names (SAN)
  • OCSP Stapling ์ง€์›
๐Ÿ”’ ์•”ํ˜ธํ™” ์Šค์œ„ํŠธ
  • ์ง€์›ํ•˜๋Š” ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • Perfect Forward Secrecy (PFS)
  • ์•ฝํ•œ ์•”ํ˜ธํ™” ์Šค์œ„ํŠธ ํƒ์ง€
๐Ÿ›ก๏ธ ๋ณด์•ˆ ์ทจ์•ฝ์ 
  • Heartbleed, POODLE, BEAST
  • CRIME, BREACH, FREAK
  • DROWN, LOGJAM, SWEET32
  • HTTP ๋ณด์•ˆ ํ—ค๋” (HSTS ๋“ฑ)

๐ŸŽฏ ์™œ SSL/TLS ๊ฒ€์‚ฌ๊ฐ€ ์ค‘์š”ํ•œ๊ฐ€?

  • ๋ฐ์ดํ„ฐ ๋ณดํ˜ธ: ์‚ฌ์šฉ์ž์™€ ์„œ๋ฒ„ ๊ฐ„ ์ „์†ก๋˜๋Š” ๋ชจ๋“  ๋ฐ์ดํ„ฐ์˜ ์•”ํ˜ธํ™” ํ’ˆ์งˆ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.
  • ์‹ ๋ขฐ์„ฑ ํ™•๋ณด: ๋ธŒ๋ผ์šฐ์ € ๊ฒฝ๊ณ  ์—†์ด ์•ˆ์ „ํ•œ HTTPS ์—ฐ๊ฒฐ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ๊ทœ์ • ์ค€์ˆ˜: GDPR, PCI-DSS ๋“ฑ ๋ณด์•ˆ ๊ทœ์ • ์š”๊ตฌ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•ฉ๋‹ˆ๋‹ค.
  • SEO ํ–ฅ์ƒ: Google ๋“ฑ ๊ฒ€์ƒ‰์—”์ง„์—์„œ HTTPS ์‚ฌ์ดํŠธ๋ฅผ ์šฐ๋Œ€ํ•ฉ๋‹ˆ๋‹ค.
  • ์ทจ์•ฝ์  ์˜ˆ๋ฐฉ: ์•Œ๋ ค์ง„ SSL/TLS ์ทจ์•ฝ์ ์œผ๋กœ๋ถ€ํ„ฐ ์‚ฌ์ „ ๋ณดํ˜ธํ•ฉ๋‹ˆ๋‹ค.
๋“ฑ๊ธ‰ ์ ์ˆ˜ ๋ณด์•ˆ ๊ธฐ์ค€
A+ 90~100 ์ตœ์‹  TLS๋งŒ ์‚ฌ์šฉ, ์ทจ์•ฝ์  ์—†์Œ
๊ฐ•๋ ฅํ•œ ์•”ํ˜ธํ™” ์Šค์œ„ํŠธ ์ ์šฉ
์ธ์ฆ์„œ ๋ฐ ์ฒด์ธ ์™„์ „ ์ •์ƒ
HSTS ๋“ฑ ๋ณด์•ˆ ์„ค์ • ์šฐ์ˆ˜
A 80~89 TLS 1.2/1.3 ์ง€์›, ๊ตฌ๋ฒ„์ „ ์ฐจ๋‹จ
์ฃผ์š” ์ทจ์•ฝ์  ์—†์Œ
์ผ๋ถ€ ์•ฝํ•œ ์•”ํ˜ธ๋‚˜ ์„ค์ • ๋ฏธํก ๊ฐ€๋Šฅ
์ „๋ฐ˜์ ์œผ๋กœ ์•ˆ์ „ํ•œ ์ˆ˜์ค€
B 70~79 ์•ˆ์ „ํ•œ ํ”„๋กœํ† ์ฝœ ์œ„์ฃผ
์•ฝํ•œ ์•”ํ˜ธ ์Šค์œ„ํŠธ ์ผ๋ถ€ ์กด์žฌ
testssl.sh ๊ฒฝ๊ณ (WEAK) ๋‹ค์ˆ˜
๊ฐœ์„  ํ•„์š”
C 60~69 ๊ตฌ๋ฒ„์ „ TLS ์ผ๋ถ€ ํ™œ์„ฑ
์ทจ์•ฝ ์•”ํ˜ธํ™” ์‚ฌ์šฉ๋ฅ  ๋†’์Œ
์ธ์ฆ์„œ ๋งŒ๋ฃŒ ์ž„๋ฐ•/๋‹จ์ˆœ DV
์ทจ์•ฝ์  ์†Œ์ˆ˜ ๋ฐœ๊ฒฌ
D 50~59 SSLv3/TLS 1.0 ํ—ˆ์šฉ
์ทจ์•ฝ ์•”ํ˜ธ ๋‹ค์ˆ˜ ํ™œ์„ฑ
์ธ์ฆ์„œ ์ฒด์ธ ์˜ค๋ฅ˜/๋งŒ๋ฃŒ ์ž„๋ฐ•
๋‹ค์ˆ˜ ์ทจ์•ฝ์  ์กด์žฌ
F 0~49 SSL/TLS ์„ค์ • ๊ทผ๋ณธ์  ๊ฒฐํ•จ
์ทจ์•ฝ ํ”„๋กœํ† ์ฝœ ์ „๋ฉด ํ—ˆ์šฉ
์ธ์ฆ์„œ ๋งŒ๋ฃŒ/์ž๊ฐ€์„œ๋ช…
testssl.sh FAIL/VULNERABLE ๋‹ค์ˆ˜
๐Ÿ“‹ ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ์กฐ๊ฑด:
โ€ข B๋“ฑ๊ธ‰ ์ด์ƒ ๋‹ฌ์„ฑ
โ€ข ์ฃผ์š” ๋ณด์•ˆ ์ทจ์•ฝ์  ์—†์Œ
โ€ข ์œ ํšจํ•œ SSL ์ธ์ฆ์„œ ๋ณด์œ 
โ€ข ๋กœ๊ทธ์ธ ํ•„์š”

โฐ ๊ฒ€์‚ฌ ์‹œ๊ฐ„: ์•ฝ 5-10๋ถ„ (์„œ๋ฒ„ ์‘๋‹ต์†๋„์— ๋”ฐ๋ผ ์ฐจ์ด)
๐Ÿ”„ ๊ถŒ์žฅ ์ฃผ๊ธฐ: ์›” 1ํšŒ ์ •๊ธฐ ๊ฒ€์‚ฌ (์ธ์ฆ์„œ ๋งŒ๋ฃŒ, ์ƒˆ๋กœ์šด ์ทจ์•ฝ์  ๋Œ€์‘)
์•„์ง ๊ฒฐ๊ณผ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค

ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด SSL/TLS ๋ณด์•ˆ ๊ฒ€์‚ฌ ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•„์ง ๊ฒฐ๊ณผ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค

ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด Raw testssl.sh ์ถœ๋ ฅ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒ€์‚ฌ ๋‚ด์—ญ์„ ๋ณด๋ ค๋ฉด ๋กœ๊ทธ์ธ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๋„๋ฉ”์ธ ๊ด€๋ฆฌ๋Š” ๋กœ๊ทธ์ธ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.