Cấu hình TLS khắc phục lỗi Logjam

zDiv

Super Moderator
12/02/2014
21
12 bài viết
Cấu hình TLS khắc phục lỗi Logjam
Lỗ hổng Logjam vừa được công bố tồn tại trong thuật toán trao đổi khóa sử dụng mã hóa Diffie-Hellman để tạo khóa chia sẻ an toàn trong các giao thức bảo mật HTTPS, SSH, Ipsec, SMTPS và các giao thức dựa trên TLS khác.

TLS.png

Để đảm bảo an toàn, chúng tôi khuyến khích bạn nên tạo một Diffie-Hellman group có kích thước 2048-bit, vào sau đó đính kèm đường dẫn tới group này vào tệp tin cấu hình:

- Cách tạo Diffie-Hellman group 2048-bit:

Mã:
openssl dhparam -out dhparams.pem 2048

- Ghi nhớ đường dẫn của tệp tin dhparams.pem, bạn sẽ cần dùng chúng khi cấu hình về sau.

Tùy theo HTTP Server các bạn sử dụng mà có cách khắc phục khác nhau:
- Apache HTTP Server (mod_ssl)
  • Cấu hình SSL của Apache HTTP Server thường được đặt trong file httpd.conf
  • Vô hiệu hóa khả năng hỗ trợ SSLv2 và SSLv3, kích hoạt TLS thay thế
Các dòng cấu hình tương tự như sau:

Mã:
SSLProtocol             all -SSLv2 -SSLv3
SSLCipherSuite          ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
SSLHonorCipherOrder     on

Sử dụng DH parameters bạn vừa tạo ở trên:

Mã:
SSLOpenSSLConfCmd DHParameters "{đường dẫn tới tệp tin dhparams.pem}"

Để cho apache2 nhận cấu hình mới:
Mã:
$ sudo service apache2 reload
  • nginx
Đối với nginx, cấu hình được lưu ở: /etc/nginx/sites-enabled/default

Đảm bảo đoạn cấu hình có nội dung tương tự như sau:

Mã:
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
ssl_prefer_server_ciphers on;

Cấu hình DH parameters:

Mã:
ssl_dhparam [I]{đường dẫn tới dhparams.pem}[/I]

Để cho nginx nhận cấu hình mới:

$ sudo nginx -s reload
  • IIS
- Với IIS thì thực hiện hơi khác một chút, mở Group Policy Object Editor: Có thể truy cập bằng cách gõ gpedit.msc trong cửa sổ command prompt (Windows+R)

- Mở rộng Computer Configuration, chọn Administrative Templates > Network > SSL Configuration Settings.

- Trong cửa sổ SSL Configuration Settings, mở SSL Cipher Suite Order setting

4. Tick vào Enable, dòng SSL Cipher Suites cấu hình như sau:

Mã:
TLS_RSA_EXPORT_WITH_RC4_40_MD5,TLS_RSA_EXPORT1024_WITH_RC4_56_SHA,TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA,SSL_CK_RC4_128_EXPORT40_MD5,SSL_CK_DES_64_CBC_WITH_MD5,TLS_RSA_WITH_DES_CBC_SHA,TLS_RSA_WITH_NULL_MD5,TLS_RSA_WITH_NULL_SHA,TLS_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA,TLS_DHE_DSS_WITH_DES_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P521,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P521,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P384,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P521,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384_P521,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P384,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P521,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384_P521,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P521,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P521,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P521,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P521
  • Lighttpd:
Kiểm tra file: /etc/lighttpd/lighttpd.conf

Đảm bảo cipher suites được cấu hình tương tự như sau:

Mã:
ssl.cipher-list = "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA "

Đối với cấu hình DH parameters:

Mã:
ssl.dh-file="[I]{đường dẫn tới dhparams.pem}[/I]"

Khởi động lại service để lighttpd cập nhật cấu hình mới

Mã:
$ sudo service lighttpd restart
  • Apache Tomcat
Đảm bảo cipher suites trong tệp tin server.xml được cấu hình như sau:

Mã:

Cấu hình APR:

Mã:
  • Postfix SMTP:
Cấu hình được lưu ở /etc/postfix/main.cf

Đảm báo cipher suites được cấu hình như sau:

Mã:
smtpd_tls_mandatory_exclude_ciphers = aNULL, eNULL, EXPORT, DES, RC4, MD5, PSK, aECDH, EDH-DSS-DES-CBC3-SHA, EDH-RSA-DES-CDC3-SHA, KRB5-DE5, CBC3-SHA

Đối với DH params:

Mã:
smtpd_tls_dh1024_param_file = $[I]{đường dẫn tới thư mục config}[/I]/dhparams.pem

Để cho Postfix SMTP cập nhật cấu hình:

Mã:
$ sudo postfix reload
  • Sendmail
Kiểm tra phần LOCAL_CONFIG trong tệp tin /etc/mail/sendmail.mc

Đảm bảo cipher suites có dạng như sau:

Mã:
O CipherList=ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA

Với DH parameters:

Mã:
O DHParameters=[I]{đường dẫn tới tệp tin dhparams.pem}[/I]

Khởi chạy lại Sendmail:

$ sudo service sendmail restart
  • Dovecot
Cấu hình được lưu ở /etc/dovecot.conf

Cipher suites:

Mã:
ssl_cipher_list=ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
ssl_prefer_server_ciphers = yes (Dovecot 2.2.6 or greater)

Đối với DH parameters:

Mã:
#regenerates every week
ssl_dh_parameters_length = 2048

Để Dovecot nhận cấu hình mới:

Mã:
$ sudo doveadm reload
  • HAProxy
Thay đổi trong tệp tin cấu hình của HAProxy, để đảm bảo cipher suites có dạng như sau:

Mã:
ssl-default-bind-ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA

DH parameters có thể được thêm vào tệp tin .crt
 
Chỉnh sửa lần cuối bởi người điều hành:
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Thẻ
cấu hình tls lỗ hổng logjam
Bên trên