SSL ์ทจ์ฝ์ ๊ณผ ๋ณด์ ๊ฐํ ๋ฐฉ๋ฒ: ์์ ํ ์น์ ์ํ ํ์ ๊ฐ์ด๋
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 ๋ณด์ ๊ฐํ ํ
- TLS 1.2 ์ด์ ์ฌ์ฉ : TLS 1.3์ ์ง์ํ์ง ์๋ ํ๊ฒฝ์์๋ TLS 1.2๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- ์๋ ์ธ์ฆ์ ๊ฐฑ์ : Let’s Encrypt์ Certbot์ ์ฌ์ฉํด SSL ์ธ์ฆ์๋ฅผ ์๋์ผ๋ก ๊ฐฑ์ ํฉ๋๋ค.
- OCSP Stapling ํ์ฑํ : ์ธ์ฆ์ ์ํ๋ฅผ ๋น ๋ฅด๊ฒ ํ์ธํด ํธ๋์ ฐ์ดํฌ ์๊ฐ์ ์ค์ ๋๋ค.
- ์ค๊ฐ์ ๊ณต๊ฒฉ ๋ฐฉ์ง : 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. ์ธ์ฆ์๊ฐ ๋ง๋ฃ๋๋ฉด ๋ธ๋ผ์ฐ์ ๊ฒฝ๊ณ ๊ฐ ํ์๋๋ฉฐ, ์ฌ์ฉ์ ์ ๋ขฐ๋ฅผ ์์ ์ ์์ต๋๋ค. ์๋ ๊ฐฑ์ ์ ์ค์ ํ์ธ์.
๋๊ธ