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

SSL/TLS์˜ ๊ธฐ๋ณธ ๊ฐœ๋…๊ณผ ์—ญ์‚ฌ: ์•”ํ˜ธํ™”๋กœ ์ง€ํ‚ค๋Š” ์•ˆ์ „ํ•œ ์›น ์„ธ์ƒ

okrestart 2024. 10. 18.

 

 

 

SSL๊ณผ TLS์˜ ์ฐจ์ด์ 

SSL(Secure Sockets Layer) ๊ณผ TLS(Transport Layer Security) ๋Š” ์›น์‚ฌ์ดํŠธ์™€ ์‚ฌ์šฉ์ž ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์ฃผ๊ณ ๋ฐ›๊ธฐ ์œ„ํ•œ ์•”ํ˜ธํ™” ํ”„๋กœํ† ์ฝœ ์ž…๋‹ˆ๋‹ค. ๋‘ ํ”„๋กœํ† ์ฝœ ๋ชจ๋‘ ์ธํ„ฐ๋„ท ๋ณด์•ˆ์˜ ํ•ต์‹ฌ ์—ญํ• ์„ ๋‹ด๋‹นํ•˜๋ฉฐ, TLS๋Š” SSL์˜ ์—…๊ทธ๋ ˆ์ด๋“œ๋œ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค.

์ฃผ์š” ์ฐจ์ด์ 

๊ตฌ๋ถ„ SSL TLS
ํ”„๋กœํ† ์ฝœ ๋ฒ„์ „ SSL 2.0, 3.0 TLS 1.0, 1.1, 1.2, 1.3
๋ณด์•ˆ์„ฑ ์ผ๋ถ€ ์ทจ์•ฝ์  ์กด์žฌ ๋” ๊ฐ•๋ ฅํ•œ ์•”ํ˜ธํ™” ์ œ๊ณต
์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋น„๊ต์  ๋‹จ์ˆœ ๋ณต์žกํ•˜๊ณ  ๋‹ค์–‘ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜
์‚ฌ์šฉ ํ˜„ํ™ฉ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Œ ๋Œ€๋ถ€๋ถ„์˜ ์›น์‚ฌ์ดํŠธ์—์„œ ์‚ฌ์šฉ ์ค‘

 

TLS๋Š” ์ตœ์‹  ์›น์‚ฌ์ดํŠธ์—์„œ ๊ธฐ๋ณธ์ ์ธ ๋ณด์•ˆ ํ”„๋กœํ† ์ฝœ ๋กœ ์‚ฌ์šฉ๋˜๋ฉฐ, HTTPS ํ†ต์‹ ์—์„œ ํ•ต์‹ฌ์ ์ธ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ๋Š” TLS 1.3 ์ด ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ, ์„ฑ๋Šฅ๊ณผ ๋ณด์•ˆ์„ฑ์ด ๊ฐœ์„ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

 


 

์•”ํ˜ธํ™”์˜ ์ค‘์š”์„ฑ: ์™œ SSL/TLS๊ฐ€ ํ•„์ˆ˜์ธ๊ฐ€?

์›น์ƒ์—์„œ ๊ฐœ์ธ์ •๋ณด๋ฅผ ๋ณดํ˜ธํ•˜๊ธฐ ์œ„ํ•ด ์•”ํ˜ธํ™” ๋Š” ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค. ์•”ํ˜ธํ™”๋Š” ์‚ฌ์šฉ์ž์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ, ์‹ ์šฉ์นด๋“œ ์ •๋ณด์™€ ๊ฐ™์€ ๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ3์ž๊ฐ€ ๋ณผ ์ˆ˜ ์—†๋„๋ก ๋ณดํ˜ธํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์•”ํ˜ธํ™”๊ฐ€ ์—†๋‹ค๋ฉด ํ•ด์ปค๊ฐ€ ์ค‘๊ฐ„์ž ๊ณต๊ฒฉ(MITM) ์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€๋กœ์ฑŒ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•”ํ˜ธํ™”๊ฐ€ ์ ์šฉ๋œ ์‹ค์ œ ์˜ˆ์‹œ

  • ์˜จ๋ผ์ธ ์‡ผํ•‘ ์‹œ ๊ฒฐ์ œ ์ •๋ณด ๋ณดํ˜ธ
  • ์€ํ–‰ ์›น์‚ฌ์ดํŠธ ์ ‘์† ์‹œ ๊ณ„์ขŒ ์ •๋ณด ์•”ํ˜ธํ™”
  • ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ์—์„œ ๋น„๋ฐ€๋ฒˆํ˜ธ ๋ณดํ˜ธ

 


 

SSL/TLS ํ”„๋กœํ† ์ฝœ์˜ ๋ฐœ์ „ ๊ณผ์ •

SSL์€ ์ฒ˜์Œ 1990๋…„๋Œ€ ์ค‘๋ฐ˜ ์— ๋“ฑ์žฅํ–ˆ์Šต๋‹ˆ๋‹ค. ์ดํ›„ ์—ฌ๋Ÿฌ ์ทจ์•ฝ์ ์ด ๋ฐœ๊ฒฌ๋˜๋ฉด์„œ TLS๊ฐ€ ๊ฐœ๋ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. TLS 1.2 ๋Š” ์˜ค๋žซ๋™์•ˆ ํ‘œ์ค€์œผ๋กœ ์‚ฌ์šฉ๋˜์—ˆ์ง€๋งŒ, ์ตœ๊ทผ์—๋Š” TLS 1.3 ์ด ๋” ๋น ๋ฅด๊ณ  ์•ˆ์ „ํ•œ ํ”„๋กœํ† ์ฝœ๋กœ ์ž๋ฆฌ ์žก์•˜์Šต๋‹ˆ๋‹ค.

SSL/TLS ํ”„๋กœํ† ์ฝœ ๋ฒ„์ „ ๋ฐœ์ „ ๊ณผ์ •

์—ฐ๋„ ํ”„๋กœํ† ์ฝœ ๋ฒ„์ „ ํŠน์ง•
1995 SSL 2.0 ์ดˆ๊ธฐ ๋ฒ„์ „, ์—ฌ๋Ÿฌ ๋ณด์•ˆ ์ทจ์•ฝ์  ์กด์žฌ
1996 SSL 3.0 ์„ฑ๋Šฅ๊ณผ ๋ณด์•ˆ ๊ฐœ์„ 
1999 TLS 1.0 SSL 3.0์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐœ๋ฐœ
2008 TLS 1.2 ๋Œ€๋ถ€๋ถ„ ์›น์‚ฌ์ดํŠธ์—์„œ ์‚ฌ์šฉ ์ค‘
2018 TLS 1.3 ์„ฑ๋Šฅ๊ณผ ๋ณด์•ˆ ๋Œ€ํญ ํ–ฅ์ƒ




 

SSL ์ธ์ฆ์„œ ์„ค์น˜ ์˜ˆ์ œ: Nginx ์„œ๋ฒ„์— HTTPS ์„ค์ •ํ•˜๊ธฐ

์›น์‚ฌ์ดํŠธ์— SSL/TLS๋ฅผ ์ ์šฉํ•˜๋ ค๋ฉด SSL ์ธ์ฆ์„œ ๋ฅผ ์„œ๋ฒ„์— ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” Nginx ์„œ๋ฒ„์— ์ธ์ฆ์„œ๋ฅผ ์„ค์น˜ํ•˜๋Š” ์ฝ”๋“œ ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค.

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

server {
    listen 443 ssl;
    server_name example.com;

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

    location / {
        proxy_pass http://localhost:8080;
    }
}

 

 

SSL๊ณผ TLS์˜ ์ฐจ์ด์ 

SSL(Secure Sockets Layer) ๊ณผ TLS(Transport Layer Security) ๋Š” ์›น์‚ฌ์ดํŠธ์™€ ์‚ฌ์šฉ์ž ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์ฃผ๊ณ ๋ฐ›๊ธฐ ์œ„ํ•œ ์•”ํ˜ธํ™” ํ”„๋กœํ† ์ฝœ ์ž…๋‹ˆ๋‹ค. ๋‘ ํ”„๋กœํ† ์ฝœ ๋ชจ๋‘ ์ธํ„ฐ๋„ท ๋ณด์•ˆ์˜ ํ•ต์‹ฌ ์—ญํ• ์„ ๋‹ด๋‹นํ•˜๋ฉฐ, TLS๋Š” SSL์˜ ์—…๊ทธ๋ ˆ์ด๋“œ๋œ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค.

์ฃผ์š” ์ฐจ์ด์ 

๊ตฌ๋ถ„ SSL TLS
ํ”„๋กœํ† ์ฝœ ๋ฒ„์ „ SSL 2.0, 3.0 TLS 1.0, 1.1, 1.2, 1.3
๋ณด์•ˆ์„ฑ ์ผ๋ถ€ ์ทจ์•ฝ์  ์กด์žฌ ๋” ๊ฐ•๋ ฅํ•œ ์•”ํ˜ธํ™” ์ œ๊ณต
์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋น„๊ต์  ๋‹จ์ˆœ ๋ณต์žกํ•˜๊ณ  ๋‹ค์–‘ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜
์‚ฌ์šฉ ํ˜„ํ™ฉ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Œ ๋Œ€๋ถ€๋ถ„์˜ ์›น์‚ฌ์ดํŠธ์—์„œ ์‚ฌ์šฉ ์ค‘

 

TLS๋Š” ์ตœ์‹  ์›น์‚ฌ์ดํŠธ์—์„œ ๊ธฐ๋ณธ์ ์ธ ๋ณด์•ˆ ํ”„๋กœํ† ์ฝœ ๋กœ ์‚ฌ์šฉ๋˜๋ฉฐ, HTTPS ํ†ต์‹ ์—์„œ ํ•ต์‹ฌ์ ์ธ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ๋Š” TLS 1.3 ์ด ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ, ์„ฑ๋Šฅ๊ณผ ๋ณด์•ˆ์„ฑ์ด ๊ฐœ์„ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

 


 

์•”ํ˜ธํ™”์˜ ์ค‘์š”์„ฑ: ์™œ SSL/TLS๊ฐ€ ํ•„์ˆ˜์ธ๊ฐ€?

์›น์ƒ์—์„œ ๊ฐœ์ธ์ •๋ณด๋ฅผ ๋ณดํ˜ธํ•˜๊ธฐ ์œ„ํ•ด ์•”ํ˜ธํ™” ๋Š” ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค. ์•”ํ˜ธํ™”๋Š” ์‚ฌ์šฉ์ž์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ, ์‹ ์šฉ์นด๋“œ ์ •๋ณด์™€ ๊ฐ™์€ ๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ3์ž๊ฐ€ ๋ณผ ์ˆ˜ ์—†๋„๋ก ๋ณดํ˜ธํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์•”ํ˜ธํ™”๊ฐ€ ์—†๋‹ค๋ฉด ํ•ด์ปค๊ฐ€ ์ค‘๊ฐ„์ž ๊ณต๊ฒฉ(MITM) ์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€๋กœ์ฑŒ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•”ํ˜ธํ™”๊ฐ€ ์ ์šฉ๋œ ์‹ค์ œ ์˜ˆ์‹œ

  • ์˜จ๋ผ์ธ ์‡ผํ•‘ ์‹œ ๊ฒฐ์ œ ์ •๋ณด ๋ณดํ˜ธ
  • ์€ํ–‰ ์›น์‚ฌ์ดํŠธ ์ ‘์† ์‹œ ๊ณ„์ขŒ ์ •๋ณด ์•”ํ˜ธํ™”
  • ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ์—์„œ ๋น„๋ฐ€๋ฒˆํ˜ธ ๋ณดํ˜ธ

 


 

SSL/TLS ํ”„๋กœํ† ์ฝœ์˜ ๋ฐœ์ „ ๊ณผ์ •

SSL์€ ์ฒ˜์Œ 1990๋…„๋Œ€ ์ค‘๋ฐ˜ ์— ๋“ฑ์žฅํ–ˆ์Šต๋‹ˆ๋‹ค. ์ดํ›„ ์—ฌ๋Ÿฌ ์ทจ์•ฝ์ ์ด ๋ฐœ๊ฒฌ๋˜๋ฉด์„œ TLS๊ฐ€ ๊ฐœ๋ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. TLS 1.2 ๋Š” ์˜ค๋žซ๋™์•ˆ ํ‘œ์ค€์œผ๋กœ ์‚ฌ์šฉ๋˜์—ˆ์ง€๋งŒ, ์ตœ๊ทผ์—๋Š” TLS 1.3 ์ด ๋” ๋น ๋ฅด๊ณ  ์•ˆ์ „ํ•œ ํ”„๋กœํ† ์ฝœ๋กœ ์ž๋ฆฌ ์žก์•˜์Šต๋‹ˆ๋‹ค.

SSL/TLS ํ”„๋กœํ† ์ฝœ ๋ฒ„์ „ ๋ฐœ์ „ ๊ณผ์ •

์—ฐ๋„ ํ”„๋กœํ† ์ฝœ ๋ฒ„์ „ ํŠน์ง•
1995 SSL 2.0 ์ดˆ๊ธฐ ๋ฒ„์ „, ์—ฌ๋Ÿฌ ๋ณด์•ˆ ์ทจ์•ฝ์  ์กด์žฌ
1996 SSL 3.0 ์„ฑ๋Šฅ๊ณผ ๋ณด์•ˆ ๊ฐœ์„ 
1999 TLS 1.0 SSL 3.0์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐœ๋ฐœ
2008 TLS 1.2 ๋Œ€๋ถ€๋ถ„ ์›น์‚ฌ์ดํŠธ์—์„œ ์‚ฌ์šฉ ์ค‘
2018 TLS 1.3 ์„ฑ๋Šฅ๊ณผ ๋ณด์•ˆ ๋Œ€ํญ ํ–ฅ์ƒ




 

SSL ์ธ์ฆ์„œ ์„ค์น˜ ์˜ˆ์ œ: Nginx ์„œ๋ฒ„์— HTTPS ์„ค์ •ํ•˜๊ธฐ

์›น์‚ฌ์ดํŠธ์— SSL/TLS๋ฅผ ์ ์šฉํ•˜๋ ค๋ฉด SSL ์ธ์ฆ์„œ ๋ฅผ ์„œ๋ฒ„์— ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” Nginx ์„œ๋ฒ„์— ์ธ์ฆ์„œ๋ฅผ ์„ค์น˜ํ•˜๋Š” ์ฝ”๋“œ ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค.

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

server {
    listen 443 ssl;
    server_name example.com;

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

    location / {
        proxy_pass http://localhost:8080;
    }
}

 

์ฝ”๋“œ ์„ค๋ช…:

  1. listen 443 ssl : HTTPS ํฌํŠธ๋ฅผ ์—ด์–ด์ค๋‹ˆ๋‹ค.
  2. ssl_certificate ์™€ ssl_certificate_key : ๋ฐœ๊ธ‰๋ฐ›์€ ์ธ์ฆ์„œ์™€ ํ‚ค ํŒŒ์ผ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  3. proxy_pass : ๋‚ด๋ถ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ์š”์ฒญ์„ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

์ดํ›„ Nginx๋ฅผ ์žฌ์‹œ์ž‘ํ•˜๋ฉด https://example.com ์œผ๋กœ ์•ˆ์ „ํ•˜๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

sudo systemctl restart nginx

 


 

์ตœ์‹  ํ†ต๊ณ„๋กœ ๋ณธ HTTPS ์‚ฌ์šฉ ํŠธ๋ Œ๋“œ

  • 2024๋…„ ํ˜„์žฌ , ์ „ ์„ธ๊ณ„ ์›น์‚ฌ์ดํŠธ์˜ 80% ์ด์ƒ ์ด HTTPS๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ตฌ๊ธ€ ํฌ๋กฌ์€ HTTPS๋ฅผ ๊ธฐ๋ณธ์œผ๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์‚ฌ์ดํŠธ์— ‘์•ˆ์ „ํ•˜์ง€ ์•Š์Œ’ ๊ฒฝ๊ณ ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
  • ๋ชจ๋ฐ”์ผ ์‚ฌ์šฉ์ž ์˜ 70% ์ด์ƒ์ด ์•”ํ˜ธํ™”๋œ ์‚ฌ์ดํŠธ์—์„œ ๊ตฌ๋งค๋ฅผ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค.

 


 

FAQ

Q1. SSL๊ณผ TLS๋Š” ๊ฐ™์€ ๊ฒƒ์ธ๊ฐ€์š”?
A1. ์•„๋‹™๋‹ˆ๋‹ค. TLS๋Š” SSL์˜ ํ›„์† ๋ฒ„์ „์œผ๋กœ, ๋ณด์•ˆ์„ฑ๊ณผ ์„ฑ๋Šฅ์ด ๊ฐœ์„ ๋œ ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค.

Q2. HTTPS ์‚ฌ์ดํŠธ๋Š” ์™„์ „ํžˆ ์•ˆ์ „ํ•œ๊ฐ€์š”?
A2. HTTPS๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™” ํ•˜์ง€๋งŒ, ์™„๋ฒฝํ•œ ๋ณด์•ˆ์„ ๋ณด์žฅํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ณด์•ˆ ๋Œ€์ฑ…๋„ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

Q3. ๋ฌด๋ฃŒ SSL ์ธ์ฆ์„œ๋„ ์•ˆ์ „ํ•œ๊ฐ€์š”?
A3. Let’s Encrypt ์™€ ๊ฐ™์€ ๋ฌด๋ฃŒ ์ธ์ฆ์„œ๋„ ์ถฉ๋ถ„ํžˆ ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋งŒ, ์ฃผ๊ธฐ์ ์ธ ๊ฐฑ์‹ ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

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

Q5. ์›น์‚ฌ์ดํŠธ์— SSL ์ธ์ฆ์„œ๋ฅผ ๊ผญ ์„ค์น˜ํ•ด์•ผ ํ•˜๋‚˜์š”?
A5. ๋„ค, ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค. ๊ตฌ๊ธ€๊ณผ ๋ธŒ๋ผ์šฐ์ €๋“ค์ด HTTPS๋ฅผ ๊ธฐ๋ณธ ๋ณด์•ˆ ํ‘œ์ค€์œผ๋กœ ์š”๊ตฌํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๋Œ“๊ธ€