๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

SSL ์ทจ์•ฝ์ ๊ณผ ๋ณด์•ˆ ๊ฐ•ํ™” ๋ฐฉ๋ฒ•: ์•ˆ์ „ํ•œ ์›น์„ ์œ„ํ•œ ํ•„์ˆ˜ ๊ฐ€์ด๋“œ

mrmount 2024. 10. 18.

 

 

 

SSL/TLS์˜ ์ฃผ์š” ์ทจ์•ฝ์ ๊ณผ ๊ณต๊ฒฉ ๋ฐฉ์‹

SSL/TLS ํ”„๋กœํ† ์ฝœ์€ ์ธํ„ฐ๋„ท ๋ณด์•ˆ์˜ ํ•ต์‹ฌ ์—ญํ• ์„ ํ•˜์ง€๋งŒ, ๋ช‡ ๊ฐ€์ง€ ์ทจ์•ฝ์ ๊ณผ ๊ณต๊ฒฉ ์— ๋…ธ์ถœ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์ดํ•ดํ•˜๊ณ  ๋Œ€๋น„ํ•˜๋Š” ๊ฒƒ์€ ์•ˆ์ „ํ•œ ์›น์‚ฌ์ดํŠธ ์šด์˜์˜ ํ•„์ˆ˜ ์กฐ๊ฑด์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” SSL ์ŠคํŠธ๋ฆฝ ๊ณต๊ฒฉ, POODLE, Heartbleed ๋“ฑ ์ฃผ์š” ์ทจ์•ฝ์ ์„ ์‚ดํŽด๋ณด๊ณ  ๋ณด์•ˆ ๊ฐ•ํ™” ๋ฐฉ๋ฒ• ์„ ์ œ์‹œํ•ฉ๋‹ˆ๋‹ค.

 


 

1. SSL ์ŠคํŠธ๋ฆฝ ๊ณต๊ฒฉ: HTTPS๋ฅผ HTTP๋กœ ๋ณ€์กฐ

SSL ์ŠคํŠธ๋ฆฝ ๊ณต๊ฒฉ ์€ ์‚ฌ์šฉ์ž๊ฐ€ HTTPS ์‚ฌ์ดํŠธ์— ์ ‘์†ํ•˜๋ ค ํ•  ๋•Œ, HTTP๋กœ ๊ฐ•์ œ ๋ณ€ํ™˜ ํ•˜๋Š” ์ค‘๊ฐ„์ž ๊ณต๊ฒฉ(MITM)์ž…๋‹ˆ๋‹ค. ๊ณต๊ฒฉ์ž๋Š” HTTPS ์—ฐ๊ฒฐ์„ ์ฐจ๋‹จํ•˜๊ณ  ์•”ํ˜ธํ™”๋˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ ๋ฅผ ๊ฐ€๋กœ์ฑ„๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ ๋ฐฉ์•ˆ: HSTS(HTTP Strict Transport Security) ํ™œ์„ฑํ™”

HSTS๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๊ฐ•์ œ๋กœ HTTPS ๋กœ ์—ฐ๊ฒฐํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

 

์˜ˆ์ œ ์ฝ”๋“œ: Nginx์—์„œ HSTS ์„ค์ •

server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate /etc/ssl/certs/example.crt;
    ssl_certificate_key /etc/ssl/private/example.key;

    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
}

 

 

SSL/TLS์˜ ์ฃผ์š” ์ทจ์•ฝ์ ๊ณผ ๊ณต๊ฒฉ ๋ฐฉ์‹

SSL/TLS ํ”„๋กœํ† ์ฝœ์€ ์ธํ„ฐ๋„ท ๋ณด์•ˆ์˜ ํ•ต์‹ฌ ์—ญํ• ์„ ํ•˜์ง€๋งŒ, ๋ช‡ ๊ฐ€์ง€ ์ทจ์•ฝ์ ๊ณผ ๊ณต๊ฒฉ ์— ๋…ธ์ถœ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์ดํ•ดํ•˜๊ณ  ๋Œ€๋น„ํ•˜๋Š” ๊ฒƒ์€ ์•ˆ์ „ํ•œ ์›น์‚ฌ์ดํŠธ ์šด์˜์˜ ํ•„์ˆ˜ ์กฐ๊ฑด์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” SSL ์ŠคํŠธ๋ฆฝ ๊ณต๊ฒฉ, POODLE, Heartbleed ๋“ฑ ์ฃผ์š” ์ทจ์•ฝ์ ์„ ์‚ดํŽด๋ณด๊ณ  ๋ณด์•ˆ ๊ฐ•ํ™” ๋ฐฉ๋ฒ• ์„ ์ œ์‹œํ•ฉ๋‹ˆ๋‹ค.

 


 

1. SSL ์ŠคํŠธ๋ฆฝ ๊ณต๊ฒฉ: HTTPS๋ฅผ HTTP๋กœ ๋ณ€์กฐ

SSL ์ŠคํŠธ๋ฆฝ ๊ณต๊ฒฉ ์€ ์‚ฌ์šฉ์ž๊ฐ€ HTTPS ์‚ฌ์ดํŠธ์— ์ ‘์†ํ•˜๋ ค ํ•  ๋•Œ, HTTP๋กœ ๊ฐ•์ œ ๋ณ€ํ™˜ ํ•˜๋Š” ์ค‘๊ฐ„์ž ๊ณต๊ฒฉ(MITM)์ž…๋‹ˆ๋‹ค. ๊ณต๊ฒฉ์ž๋Š” HTTPS ์—ฐ๊ฒฐ์„ ์ฐจ๋‹จํ•˜๊ณ  ์•”ํ˜ธํ™”๋˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ ๋ฅผ ๊ฐ€๋กœ์ฑ„๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ ๋ฐฉ์•ˆ: HSTS(HTTP Strict Transport Security) ํ™œ์„ฑํ™”

HSTS๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๊ฐ•์ œ๋กœ HTTPS ๋กœ ์—ฐ๊ฒฐํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

 

์˜ˆ์ œ ์ฝ”๋“œ: Nginx์—์„œ HSTS ์„ค์ •

server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate /etc/ssl/certs/example.crt;
    ssl_certificate_key /etc/ssl/private/example.key;

    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
}

์„ค๋ช…: ์ด ์„ค์ •์€ 1๋…„ ๋™์•ˆ ๋ชจ๋“  ํ•˜์œ„ ๋„๋ฉ”์ธ์—์„œ HTTPS๋กœ๋งŒ ์ ‘์†์„ ๊ฐ•์ œํ•ฉ๋‹ˆ๋‹ค.

 


 

2. POODLE ๊ณต๊ฒฉ: SSL 3.0 ์ทจ์•ฝ์ 

POODLE(Padding Oracle On Downgraded Legacy Encryption) ์€ SSL 3.0์˜ ์„ค๊ณ„ ๊ฒฐํ•จ ์„ ์•…์šฉํ•œ ๊ณต๊ฒฉ์ž…๋‹ˆ๋‹ค. ์ด ๊ณต๊ฒฉ์€ ์•”ํ˜ธํ™”๋œ ๋ฐ์ดํ„ฐ๋ฅผ ํ•ด๋…ํ•ด ๋ฏผ๊ฐํ•œ ์ •๋ณด๋ฅผ ํƒˆ์ทจํ•ฉ๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ ๋ฐฉ์•ˆ: SSL 3.0 ๋น„ํ™œ์„ฑํ™”

SSL 3.0์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ณ  TLS 1.2 ์ด์ƒ ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 

์˜ˆ์ œ ์ฝ”๋“œ: Nginx์—์„œ SSL 3.0 ๋น„ํ™œ์„ฑํ™”

ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!SSLv3:!aNULL:!MD5;

์„ค๋ช…: ์ด ์„ค์ •์€ SSL 3.0๊ณผ MD5์™€ ๊ฐ™์€ ์ทจ์•ฝํ•œ ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค.

 


 

3. Heartbleed: TLS์˜ ์น˜๋ช…์ ์ธ ์ทจ์•ฝ์ 

Heartbleed ๋Š” OpenSSL ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๋ฒ„๊ทธ ๋กœ, ๊ณต๊ฒฉ์ž๊ฐ€ ์„œ๋ฒ„ ๋ฉ”๋ชจ๋ฆฌ ๋‚ด์šฉ์„ ํƒˆ์ทจํ•  ์ˆ˜ ์žˆ๋Š” ์น˜๋ช…์ ์ธ ์ทจ์•ฝ์ ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋น„๋ฐ€๋ฒˆํ˜ธ, ์„ธ์…˜ ์ •๋ณด ์™€ ๊ฐ™์€ ๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ํƒˆ์ทจํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ ๋ฐฉ์•ˆ: OpenSSL ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธ

Heartbleed ์ทจ์•ฝ์ ์„ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด ์ตœ์‹  ๋ฒ„์ „์˜ OpenSSL๋กœ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

์˜ˆ์ œ ์ฝ”๋“œ: OpenSSL ์—…๋ฐ์ดํŠธ

sudo apt update
sudo apt install --only-upgrade openssl

์„ค๋ช…: ์ด ๋ช…๋ น์–ด๋Š” OpenSSL์„ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

 


 

4. ์ตœ์‹  ํ”„๋กœํ† ์ฝœ๊ณผ ๊ฐ•๋ ฅํ•œ ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์‚ฌ์šฉ

์ตœ์‹  ํ”„๋กœํ† ์ฝœ๊ณผ ๊ฐ•๋ ฅํ•œ ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜๋ฉด SSL/TLS์˜ ๋ณด์•ˆ์„ฑ์„ ๋Œ€ํญ ๊ฐ•ํ™” ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. TLS 1.3 ์€ ๋น ๋ฅด๊ณ  ์•ˆ์ „ํ•œ ์•”ํ˜ธํ™” ํ”„๋กœํ† ์ฝœ๋กœ, ์ด์ „ ๋ฒ„์ „์˜ ์ทจ์•ฝ์ ์„ ํ•ด๊ฒฐ ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ถ”์ฒœ ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜

  • AES-256 : ๊ฐ•๋ ฅํ•œ ๋Œ€์นญํ‚ค ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • ChaCha20 : ๋ชจ๋ฐ”์ผ ํ™˜๊ฒฝ์— ์ตœ์ ํ™”๋œ ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • ECDHE : ์•ˆ์ „ํ•œ ํ‚ค ๊ตํ™˜์„ ์œ„ํ•œ ๋น„๋Œ€์นญํ‚ค ์•Œ๊ณ ๋ฆฌ์ฆ˜

 

์˜ˆ์ œ ์ฝ”๋“œ: TLS 1.3 ์„ค์ • (Nginx)

ssl_protocols TLSv1.3;
ssl_ciphers TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384;

์„ค๋ช…: ์ด ์„ค์ •์€ TLS 1.3๊ณผ ๊ฐ•๋ ฅํ•œ ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

 


 

SSL/TLS ๋ณด์•ˆ ๊ฐ•ํ™” ํŒ

  1. TLS 1.2 ์ด์ƒ ์‚ฌ์šฉ : TLS 1.3์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ํ™˜๊ฒฝ์—์„œ๋Š” TLS 1.2๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  2. ์ž๋™ ์ธ์ฆ์„œ ๊ฐฑ์‹  : Let’s Encrypt์˜ Certbot์„ ์‚ฌ์šฉํ•ด SSL ์ธ์ฆ์„œ๋ฅผ ์ž๋™์œผ๋กœ ๊ฐฑ์‹ ํ•ฉ๋‹ˆ๋‹ค.
  3. OCSP Stapling ํ™œ์„ฑํ™” : ์ธ์ฆ์„œ ์ƒํƒœ๋ฅผ ๋น ๋ฅด๊ฒŒ ํ™•์ธํ•ด ํ•ธ๋“œ์…ฐ์ดํฌ ์‹œ๊ฐ„์„ ์ค„์ž…๋‹ˆ๋‹ค.
  4. ์ค‘๊ฐ„์ž ๊ณต๊ฒฉ ๋ฐฉ์ง€ : SSL Pinning์„ ํ†ตํ•ด ์ธ์ฆ์„œ๋ฅผ ๊ณ ์ •ํ•ฉ๋‹ˆ๋‹ค.

 


 

์ตœ์‹  SSL/TLS ๋ณด์•ˆ ํŠธ๋ Œ๋“œ

  • 2024๋…„ ๊ธฐ์ค€ , ์ „ ์„ธ๊ณ„ ์›น์‚ฌ์ดํŠธ์˜ 80% ์ด์ƒ ์ด HTTPS๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  • TLS 1.3 ์ฑ„ํƒ๋ฅ ์€ 50% ์ด์ƒ ์ฆ๊ฐ€ํ•˜๋ฉฐ, ๋” ๋งŽ์€ ์›น์‚ฌ์ดํŠธ๊ฐ€ ์ตœ์‹  ํ”„๋กœํ† ์ฝœ์„ ๋„์ž…ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ชจ๋ฐ”์ผ ํ™˜๊ฒฝ ์—์„œ๋„ AES ๋Œ€์‹  ChaCha20 ์„ ์ฑ„ํƒํ•˜๋Š” ์‚ฌ๋ก€๊ฐ€ ๋Š˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

 


 

FAQ

Q1. SSL ์ŠคํŠธ๋ฆฝ ๊ณต๊ฒฉ์„ ๋ฐฉ์ง€ํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•˜๋‚˜์š”?
A1. HSTS๋ฅผ ํ™œ์„ฑํ™”ํ•ด ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ํ•ญ์ƒ HTTPS๋กœ ์—ฐ๊ฒฐ ๋˜๋„๋ก ์„ค์ •ํ•˜์„ธ์š”.

Q2. POODLE ๊ณต๊ฒฉ์€ ์•„์ง๋„ ์œ ํšจํ•œ๊ฐ€์š”?
A2. SSL 3.0์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ณ  TLS 1.2 ์ด์ƒ์„ ์‚ฌ์šฉํ•˜๋ฉด POODLE ๊ณต๊ฒฉ์„ ๋ฐฉ์ง€ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Q3. Heartbleed ์ทจ์•ฝ์ ์€ ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‚˜์š”?
A3. ์ตœ์‹  ๋ฒ„์ „์˜ OpenSSL๋กœ ์—…๋ฐ์ดํŠธ ํ•˜๋ฉด Heartbleed ์ทจ์•ฝ์ ์„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Q4. TLS 1.3์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?
A4. TLS 1.3์€ ํ•ธ๋“œ์…ฐ์ดํฌ ์†๋„๊ฐ€ ๋น ๋ฅด๊ณ  ๋ณด์•ˆ์„ฑ์ด ๊ฐ•ํ™” ๋˜์–ด ์ตœ์‹  ํ”„๋กœํ† ์ฝœ๋กœ ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค.

Q5. ์ธ์ฆ์„œ ๊ฐฑ์‹ ์„ ๋†“์น˜๋ฉด ์–ด๋–ค ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋‚˜์š”?
A5. ์ธ์ฆ์„œ๊ฐ€ ๋งŒ๋ฃŒ๋˜๋ฉด ๋ธŒ๋ผ์šฐ์ € ๊ฒฝ๊ณ  ๊ฐ€ ํ‘œ์‹œ๋˜๋ฉฐ, ์‚ฌ์šฉ์ž ์‹ ๋ขฐ๋ฅผ ์žƒ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž๋™ ๊ฐฑ์‹ ์„ ์„ค์ •ํ•˜์„ธ์š”.

 


๋Œ“๊ธ€