IBM HTTP Server(IHS)์์ ํ์ฌ ์ ์ฉ๋ SSL/TLS ํ๋กํ ์ฝ ๋ฒ์ ๊ณผ ์ง์ํ๋ ์ํธํ ์ํธ(Cipher Suite) ๋ชฉ๋ก์ ํ์ธํ๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํฉ๋๋ค.
apachectl์ ์ง๋จ ์ต์ ์ ํตํด ์๋ฒ์ ์ค์ ๋ ๋ณด์ ์์ค์ ์ ๊ฒํ ์ ์์ต๋๋ค.
0. ๋ฐฐ๊ฒฝ ์ง์ (Context)
๋ณด์ ์ทจ์ฝ์ ์ ๊ฒ ์ "SSLv3๋ RC4 ๊ฐ์ ์ฝํ ์ํธํ ์๊ณ ๋ฆฌ์ฆ์ ๋นํ์ฑํํ๋ผ"๋ ๊ถ๊ณ ๋ฅผ ์์ฃผ ๋ฐ์ต๋๋ค. ์กฐ์น๋ฅผ ์ทจํ๊ธฐ ์ ์, ํ์ฌ ์น ์๋ฒ๊ฐ ์ด๋ค ์๊ณ ๋ฆฌ์ฆ์ ํ์ฉํ๊ณ ์๋์ง ์ ํํ ํ์ ํ๋ ๊ฒ์ด ์ฐ์ ์ ๋๋ค.
Test Environment
- OS: CentOS 7.2
- Web Server: IBM HTTPServer v8.5.0.0
1. Cipher Suite ํ์ธ ๋ช ๋ น์ด
IHS๋ apachectl ์คํ ์คํฌ๋ฆฝํธ์ -t(๋ฌธ๋ฒ ๊ฒ์ฌ) ์ต์
๊ณผ ํจ๊ป -D DUMP_SSL_CIPHERS ์ ์๋ฅผ ์ถ๊ฐํ์ฌ, ํ์ฌ ์ค์ ๋ SSL ๊ตฌ์ฑ์ ์ถ๋ ฅํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
๋ช ๋ น์ด ์คํ
cd [IHS_HOME]/bin
# SSL Cipher ์ค์ ๋คํ
./apachectl -t -D DUMP_SSL_CIPHERS
๊ฒฐ๊ณผ ์ถ๋ ฅ ์์ (Default ์ํ)
๋ณ๋์ ๋ณด์ ์ค์ (Hardening)์ด ๋์ด ์์ง ์๋ค๋ฉด, ์๋์ ๊ฐ์ด IHS ๋ฒ์ ์ ๊ธฐ๋ณธ๊ฐ(Default)๋ค์ด ์ถ๋ ฅ๋ฉ๋๋ค.
SSL default cipher lists:
SSL protocol SSLV2, FIPS off, defaults = (None)
SSL protocol SSLV3, FIPS off, defaults = TLS_RSA_WITH_AES_128_CBC_SHA(2F), ...
SSL protocol TLSv10, FIPS off, defaults = TLS_RSA_WITH_AES_128_CBC_SHA(2F), ...
SSL protocol TLSv11, FIPS off, defaults = TLS_RSA_WITH_AES_128_CBC_SHA(2F), ...
SSL protocol TLSv12, FIPS off, defaults = TLS_RSA_WITH_AES_128_GCM_SHA256(9C), ...
Syntax OK
์ ์ถ๋ ฅ ๊ฒฐ๊ณผ์
SSLV3 ํญ๋ชฉ์ด ๋ณด์ธ๋ค๋ฉด, ํ์ฌ ์๋ฒ๋ ๋ณด์์ ์ทจ์ฝํ SSLv3 ํ๋กํ ์ฝ ํต์ ์ ํ์ฉํ๊ณ ์๋ค๋ ๋ป์
๋๋ค. ๋ณด์ ๊ฐํ๋ฅผ ์ํด ๋นํ์ฑํ๊ฐ ํ์ํฉ๋๋ค.
2. ์ธ๋ถ ๋๊ตฌ๋ฅผ ์ด์ฉํ ๊ต์ฐจ ๊ฒ์ฆ (Verification)
์๋ฒ ๋ด๋ถ ์ค์ ๋ฟ๋ง ์๋๋ผ, ์ธ๋ถ์์ ์ค์ ๋ก ์ ์์ ์๋ํ์ฌ ์ด๋ค Cipher๊ฐ ๋ ธ์ถ๋๋์ง ํ์ธํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ ํํฉ๋๋ค.
1) nmap ์ฌ์ฉ (Linux)
nmap์ ์คํฌ๋ฆฝํธ ์์ง์ ์ฌ์ฉํ์ฌ ์ง์ํ๋ Cipher ๋ชฉ๋ก์ ์กฐํํฉ๋๋ค.
nmap --script ssl-enum-ciphers -p 443 [์๋ฒIP]
2) OpenSSL ์ฌ์ฉ
ํน์ ํ๋กํ ์ฝ๋ก ์ ์์ด ๋๋์ง ํ ์คํธํฉ๋๋ค.
# SSLv3 ์ ์ ์๋ (์ ์ ์คํจํด์ผ ์์ ํจ)
openssl s_client -connect [์๋ฒIP]:443 -ssl3
3. ๋ณด์ ์ค์ ๊ฐํ (Next Step)
์ทจ์ฝํ ํ๋กํ ์ฝ๊ณผ Cipher๋ฅผ ํ์ธํ๋ค๋ฉด, httpd.conf ํ์ผ์์ ์ด๋ฅผ ์ฐจ๋จํด์ผ ํฉ๋๋ค.
์ค์ ์์ (httpd.conf)
IHS์์๋ SSLCipherSpec ์ง์์ด๋ฅผ ์ฌ์ฉํ์ฌ ํน์ Cipher๋ฅผ ํ์ฉํ๊ฑฐ๋ ์ฐจ๋จํฉ๋๋ค.
<VirtualHost *:443>
SSLEnable
# 1. ์ทจ์ฝํ ํ๋กํ ์ฝ ๋นํ์ฑํ (TLS 1.2๋ง ํ์ฉ ๊ถ์ฅ)
SSLProtocolDisable SSLv2 SSLv3 TLSv10 TLSv11
SSLProtocolEnable TLSv12
# 2. ๊ฐ๋ ฅํ Cipher Suite๋ง ํ์ฉ (์์)
# 128๋นํธ ๋ฏธ๋ง ์ฐจ๋จ, RC4/MD5 ์ฐจ๋จ
SSLCipherSpec TLS_RSA_WITH_AES_128_CBC_SHA
SSLCipherSpec TLS_RSA_WITH_AES_256_CBC_SHA
# ํ์์ ๋ฐ๋ผ ์ถ๊ฐ...
</VirtualHost>
4. ์ฐธ๊ณ ์๋ฃ (References)
- OpenSSL / IANA Cipher Mapping Guide: Cipher ์ด๋ฆ ๋งคํ ์ ๋ณด
- Qualys SSL Labs: ๊ณต์ธ ๋๋ฉ์ธ SSL ๋ณด์ ๋ฑ๊ธ ์ง๋จ ๋๊ตฌ