SSL/TLS, Benjamin Sonntag

SSL, TLS, cryptographie, https, x509

cover

Benjamin Sonntag

La conférence

Téléchargements

Les slides

Les slides peuvent être téléchargées ici : SSL-TLS_Sonntag.pdf.

Le document « Analysis of the HTTPS Certificate Ecosystem » peut être téléchargé ici : Analysis of the certificate ecosystem (pdf).

Les vidéos

Les vidéos de la conférence sont disponibles en basse et en haute définition, en .mp4 et en .webm :

Basse définition :

  • conférence : webm (321M) / mp4 (378M)

Haute définition :

  • conférence : webm (1,2G) / mp4 (894M)

Exemples de configurations

Apache

ServerAdmin webmaster@octopuce.fr
DocumentRoot /var/www

SSLCertificateFile        /etc/ssl/private/octopuce.fr.crt
SSLCertificateChainFile   /etc/ssl/private/octopuce.fr.chain
SSLCertificateKeyFile     /etc/ssl/private/octopuce.fr.key

SSLEngine on
SSLProtocol +TLSv1.2 +TLSv1.1 +TLSv1
SSLCompression off
SSLHonorCipherOrder on
SSLCipherSuite ALL:!aNULL:!eNULL:!LOW:!EXP:!RC4:!3DES:+HIGH:+MEDIUM 
Header set Strict-Transport-Security "max-age=2678400"

Nginx

server {
  listen 443;
  ssl on;
  ssl_certificate /etc/ssl/private/octopuce.fr.crt+chain;
  ssl_certificate_key /etc/ssl/private/octopuce.fr.key;
  ssl_session_timeout 5m;
  ssl_prefer_server_ciphers on;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers ALL:!aNULL:!eNULL:!LOW:!EXP:!RC4:!3DES:+HIGH:+MEDIUM;

  ssl_dhparam /etc/ssl/private/dh2048.pem;
  add_header Strict-Transport-Security max-age=2678400;
}

Et

openssl dhparam -out /etc/ssl/private/dh2048.pem -outform PEM -2 2048

Cf. nginx.org pour plus de détails

lighttpd

$SERVER["socket"] == "0.0.0.0:443" {
  ssl.engine  = "enable"
  ssl.pemfile = "/etc/ssl/private/octopuce.fr.key+crt"
  ssl.ca-file = "/etc/ssl/private/octopuce.fr.chain"

  ssl.cipher-list = "ALL:!aNULL:!eNULL:!LOW:!EXP:!RC4:!3DES:+HIGH:+MEDIUM"
  ssl.honor-cipher-order = "enable"
  setenv.add-response-header  = ( "Strict-Transport-Security" => "max-age=2678400")
}

Postfix

# TLS parameters
smtpd_tls_cert_file = /etc/ssl/private/octopuce.fr.crt+chain
smtpd_tls_dcert_file = $smtpd_tls_cert_file
smtpd_tls_key_file = /etc/ssl/private/octopuce.fr.key
smtpd_tls_dkey_file = $smtpd_tls_key_file
smtpd_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtpd_tls_mandatory_ciphers = high
smtpd_tls_mandatory_exclude_ciphers = aNULL, MD5
smtpd_tls_dh1024_param_file = /etc/ssl/private/dh2048.pem

smtpd_use_tls = yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_tls_protocols = !SSLv2,!SSLv3
smtpd_tls_received_header = yes

smtp_tls_cert_file = $smtpd_tls_cert_file
smtp_tls_dcert_file = $smtpd_tls_dcert_file
smtp_tls_key_file = $smtpd_tls_key_file
smtp_tls_dkey_file = $smtpd_tls_dkey_file
smtp_tls_CAfile = $smtpd_tls_CAfile
smtp_tls_mandatory_ciphers = $smtpd_tls_mandatory_ciphers
smtp_tls_mandatory_exclude_ciphers = $smtpd_tls_mandatory_exclude_ciphers

smtp_use_tls = yes
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_tls_protocols = !SSLv2,!SSLv3
smtp_tls_secure_cert_match = nexthop, dot-nexthop

Voir postfix.org pour plus de détails.

Proftpd

TLSEngine                on
TLSLog                    /var/log/proftpd/tls.log
TLSProtocol             TLSv1
TLSCipherSuite  ALL:!aNULL:!eNULL:!LOW:!EXP:!RC4:!3DES:+HIGH:+MEDIUM
TLSRSACertificateFile     /etc/ssl/private/octopuce.fr.crt+chain
TLSRSACertificateKeyFile     /etc/ssl/private/octopuce.fr.key
TLSRenegotiate           required off
TLSOptions               NoCertRequest EnableDiags NoSessionReuseRequired
TLSVerifyClient          off
TLSRequired                on # facultatif

Prosody

ssl = {
    key = "/etc/ssl/private/octopuce.fr.key";
    certificate = "/etc/ssl/private/octopuce.fr.crt+chain";
}

c2s_require_encryption = true
s2s_require_encryption = true
  • IMPORTANT : copier le bloc SSL = { } dans tout VirtualHost.

Vous pouvez voir les sites suivants plus aller plus loin :