[Image of SSL TLS handshake process]IBM HTTP Server(IHS)๋ Apache ๊ธฐ๋ฐ์ด์ง๋ง, SSL ๋ชจ๋์ ๋ณ๋์
mod_ibm_ssl์ ์ฌ์ฉํฉ๋๋ค. ๋ฐ๋ผ์ ์ปค๋ฎค๋ํฐ Apache(mod_ssl)์ ํ๋กํ ์ฝ ์ค์ ๋ฌธ๋ฒ์ด ์์ดํฉ๋๋ค. ๋ ์๋ฒ ๊ฐ์ ์ค์ ์ฐจ์ด๋ฅผ ๋น๊ตํ๊ณ , IHS v8.5 ํ๊ฒฝ์์์ ๋ณด์ ๊ฐํ ์ค์ ์ ์ ๋ฆฌํฉ๋๋ค.
1. Apache vs IHS ์ค์ ์ฐจ์ด์ (Comparison)
๋ ์น ์๋ฒ๋ SSL/TLS ํธ๋์์ดํฌ๋ฅผ ์ฒ๋ฆฌํ๋ ์์ง๊ณผ ๋ชจ๋์ด ๋ค๋ฅด๊ธฐ ๋๋ฌธ์, httpd.conf์ ์์ฑํ๋ ์ง์์ด(Directive)๊ฐ ๋ค๋ฆ
๋๋ค. ๋ง์ด๊ทธ๋ ์ด์
์ด๋ ์ด์ ์ ํผ๋ํ์ง ์๋๋ก ์ฃผ์ํด์ผ ํฉ๋๋ค.
| ๊ตฌ๋ถ | Apache HTTP Server (Community) | IBM HTTP Server (IHS) |
|---|---|---|
| ์ฌ์ฉ ๋ชจ๋ | mod_ssl (OpenSSL ๊ธฐ๋ฐ) |
mod_ibm_ssl (IBM GSKit ๊ธฐ๋ฐ) |
| ํ๋กํ ์ฝ ์ค์ | SSLProtocol (ํ ์ค๋ก ์ ์ด) |
SSLProtocolDisableSSLProtocolEnable (๊ฐ๋ณ ์ ์ด) |
| Cipher ์ค์ | SSLCipherSuite |
SSLCipherSpec |
์ค์ ๋ฌธ๋ฒ ๋น๊ต ์์
Apache (mod_ssl)
# ๋ชจ๋ ํ๋กํ ์ฝ์์ SSLv2, SSLv3 ์ ์ธ
SSLProtocol all -SSLv2 -SSLv3
# Cipher Suite ์ค์ (OpenSSL ๋ช
๋ช
๊ท์น ์ฌ์ฉ)
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
IHS (mod_ibm_ssl)
# ๊ฐ๋ณ์ ์ผ๋ก ํ์ฑ/๋นํ์ฑ ์ง์
SSLProtocolDisable SSLv2
SSLProtocolDisable SSLv3
SSLProtocolEnable TLSv12
# Cipher Spec ์ค์ (Long Name ์ฌ์ฉ, ์ด๊ธฐํ ํ ์ถ๊ฐ ๋ฐฉ์ ๊ถ์ฅ)
SSLCipherSpec ALL NONE
SSLCipherSpec ALL +TLS_RSA_WITH_AES_128_CBC_SHA
2. IHS ๋ณด์ ์ค์ ๊ฐ์ด๋ (Configuration)
IHS v8.5 ์ด์ ํ๊ฒฝ์์ ์ทจ์ฝํ ํ๋กํ ์ฝ์ ์ฐจ๋จํ๊ณ ์์ ํ Cipher๋ง ํ์ฉํ๋ ์ค์ ์ ๋๋ค.
LoadModule ibm_ssl_module modules/mod_ibm_ssl.so
Listen 443
# IP ๊ธฐ๋ฐ ๊ฐ์ ํธ์คํธ ํ์ฑํ (IHS 8.5 ์ดํ ํ์)
NameVirtualHost *:443
<VirtualHost *:443>
ServerName www.example.com
DocumentRoot /app/EAR/SSL
# SSL ์์ง ํ์ฑํ
SSLEnable
# 1. ์ทจ์ฝ ํ๋กํ ์ฝ ๋ช
์์ ๋นํ์ฑํ
# (TLS 1.0, 1.1๋ ๋ณด์ ์ ์ฑ
์ ๋ฐ๋ผ ์ฐจ๋จ ๊ณ ๋ ค)
SSLProtocolDisable SSLv2
SSLProtocolDisable SSLv3
SSLProtocolDisable TLSv10
SSLProtocolDisable TLSv11
# 2. ์์ ํ ํ๋กํ ์ฝ ํ์ฑํ
SSLProtocolEnable TLSv12
# 3. Cipher Suite ํ์ดํธ๋ฆฌ์คํธ ์ค์
# ์ค์: 'ALL NONE'์ผ๋ก ๊ธฐ์กด ์ค์ ์ด๊ธฐํ
SSLCipherSpec ALL NONE
# Forward Secrecy(PFS)๋ฅผ ์ง์ํ๋ ECDHE ๊ณ์ด ์ฐ์ ๋ฐฐ์น
SSLCipherSpec ALL +TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 +TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
SSLCipherSpec ALL +TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 +TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
# ํธํ์ฑ์ ์ํ RSA/AES ๊ณ์ด ์ถ๊ฐ
SSLCipherSpec ALL +TLS_RSA_WITH_AES_256_CBC_SHA +TLS_RSA_WITH_AES_128_CBC_SHA
</VirtualHost>
KeyFile /SW/web/HTTPServer/key/key.kdb
SSLDisable
3. ์ค์ ๊ฒ์ฆ (Verification)
์ค์ ์ ์ฉ ํ IHS๋ฅผ ์ฌ๊ธฐ๋ํ๊ธฐ ์ , ๋ช ๋ น์ด๋ฅผ ํตํด ์ ์ฉ๋ Cipher ๋ชฉ๋ก์ ํ์ธํฉ๋๋ค.
์ ์ฉ๋ Cipher ํ์ธ
cd [IHS_HOME]/bin
./apachectl -t -D DUMP_SSL_CONFIG
์ ์ ํ ์คํธ (nmap)
์ธ๋ถ์์ ์ค์บํ์ฌ ์ทจ์ฝํ ํ๋กํ ์ฝ(SSLv3 ๋ฑ)์ด ๋ ธ์ถ๋์ง ์๋์ง ๊ต์ฐจ ๊ฒ์ฆํฉ๋๋ค.
nmap --script ssl-enum-ciphers -p 443 [Target_IP]
Next Step:
IHS 9.0 (Apache 2.4 ๊ธฐ๋ฐ)์ผ๋ก ์
๊ทธ๋ ์ด๋ํ ๊ฒฝ์ฐ, SSLProtocol ์ง์์ด๋ฅผ Apache ์คํ์ผ๋ก ์ฌ์ฉํ ์ ์๊ฒ ๋์ง๋ง, ๊ธฐ์กด IHS ์ค์ ๊ณผ์ ํธํ์ฑ์ ์ํด IBM ๋ฌธ์๋ฅผ ๋ฐ๋์ ์ฐธ์กฐํ์๊ธฐ ๋ฐ๋๋๋ค.