Re: [FRnOG] [TECH] Tests TLS 1.3 (version finale RFC 8446)

2018-09-26 Par sujet Juan Isoza
>
>
>  Les librairies SSL ont presques toutes le support TLS 1.3 (où sont sur le
point de l'avoir).

Trois questions restents pour le déploiement TLS:
- ce qui a retardé la publication: quelles sont les
passerelles/routeur/filtres qui risquent de bloquer les paquets TLS 1.3
- D'ici 2 mois, Firefox et Chrome supporteront la version finale (RFC8446)
de Tls1.3 et ont un mécanisme qui leur permet de diffuser efficacement et
rapidement les mises à jour. Par contre, rien de précis n'est annoncé pour
les grand OS commerciaux et les navigateurs (Windows 10/ server 2019,,
Android, iOS, MacOS)
- Enfin, si il est probable que toutes les prochaines versions de
distribution Linux intégreront des librairies compatible TLS 1.3, il faudra
attendre leur calendrier. Ainsi, peu de server Ubuntu se mettent à jour
tous les 6 mois (je suppose que le premier Ubuntu TLS 1.3 sera le 19.04),
et il faudra attendre le 20.04, qui sortira en avril 2020 mais sera dans
doute déployé à la rentrée 2020 comme la 18.04.1 l'est actuellement...)

---
Liste de diffusion du FRnOG
http://www.frnog.org/


Re: [FRnOG] [TECH] Tests TLS 1.3 (version finale RFC 8446)

2018-09-26 Par sujet Arnaud Astruc
Pour DNS Over TLS est-ce que TLS 1.3 va permettre de faire baisser le RTT ?
Il me semblait avoir lu quelque part que pour toutes les implémentations
actuelles, pour chaque paquet il y avait un full round trip d'effectué.
C'est côté TLS que c'est géré ou plus "haut" ?

Le lun. 24 sept. 2018 à 21:28, Jean-Francois Billaud 
a écrit :

>
> Tests TLS 1.3 (version finale RFC 8446)
> ---
>
>
> TROLON;PALU sommaire : La version 1.3 finale de TLS (RFC 8446) a été
> publiée
> le 13 août 2018 ; on a de la documentation, des bibliothèques pour tester
> et
> une vague idée de la manière de configurer les serveurs.
>
> Version 2018-09-24
> Conditions opératoires : Debian 8, 9, 10 avec des bouts de testing et de
> instable dedans, Slackware current, Saccharomyces cerevisiae.
>
>
> Documentation
> -
>
> Le RFC 8446 (The Transport Layer Security (TLS) Protocol Version 1.3) :
> https://www.rfc-editor.org/rfc/rfc8446.txt
>
> Un article de Eric Rescorla (alias EKR), l'auteur du RFC :
> TLS 1.3 Published: in Firefox Today
>
> https://blog.mozilla.org/security/2018/08/13/tls-1-3-published-in-firefox-today/
> (avec le joli logo)
>
> Les commentaires de Stéphane Bortzmeyer :
> http://www.bortzmeyer.org/8446.html
>
> En complément pour les autres versions de TLS :
>
> RFC 8447 (IANA Registry Updates for TLS and DTLS)
> précisant les chiffrements (section 8) et groupes (section 9) recommandés :
> https://www.rfc-editor.org/rfc/rfc8447.txt
>
> RFC 8422 (Elliptic Curve Cryptography (ECC) Cipher Suites
>   for Transport Layer Security (TLS) Versions 1.2 and Earlier)
> avec des précisions sur ECDH(E) RSA ECDSA EdDSA :
> https://www.rfc-editor.org/rfc/rfc8422.txt
>
> Sur l'abandon de TLS 1.0 et 1.1 (Deprecating TLSv1.0 and TLSv1.1 -
> draft-ietf-tls-oldversions-deprecate :
> https://tools.ietf.org/html/draft-ietf-tls-oldversions-deprecate-00
> Voir https://www.ietf.org/mail-archive/web/tls/current/maillist.html pour
> les avis.
>
>
> Les bibliothèques et autres logiciels
> -
>
> Trois bibliothèques classiques :
>
> openssl https://www.openssl.org/
> openssl 1.1.1 (LTS) incluant TLS 1.3 final disponible depuis le 11/9/2018 :
> https://www.openssl.org/blog/blog/2018/09/11/release111/
> Si l'ordre par défaut ne vous plaît pas, ou si voulez rajouter les suites
> CCM, il faut éditer openssl-1.1.1/include/openssl/ssl.h lignes 176 et
> suivantes.
>
> gnutls https://gnutls.org/
> Les versions stables et previous ne parlent pas le TLSv1.3, il faut
> utiliser la version next branch 3.6.3 :
> https://www.gnupg.org/ftp/gcrypt/gnutls/v3.6/gnutls-3.6.3.tar.xz
>
> NSS https://developer.mozilla.org/fr/docs/NSS
> version 3.39
>
> https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/NSS_3.39_release_notes
> https://ftp.mozilla.org/pub/security/nss/releases/NSS_3_39_RTM/src/
>
>
> Serveurs HTTPS
> --
>
> Nginx
> https://nginx.org/
> https://nginx.org/en/download.html
> version 1.15.3 (mainline, pas stable) avec openssl 1.1.1
> A partir des sources (à adapter) :
> ./configure --with-http_ssl_module --with-http_v2_module \
> --with-http_stub_status_module --with-http_gzip_static_module \
> --with-http_geoip_module --prefix=/usr/local/nginx \
> --add-module=../ngx-fancyindex --with-openssl-opt=no-shared \
> --with-stream --with-stream_ssl_module --with-mail --with-mail_ssl_module \
> --add-dynamic-module=/usr/src/nginx-ct-master/ \
> --with-openssl=/usr/src/openssl-1.1.1
> nginx.conf :
>   ssl_protocols TLSv1.2 TLSv1.3;
>   ssl_ciphers
>
> TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-256-GCM-SHA384:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA;
> Il manque juste la configuration spécifique des suites TLS 1.3.
> Ça a l'air stable et utilisable (sous réserve de tests adaptés à la
> situation)
>
>
> Apache
> https://github.com/apache/httpd
> version 2.5.x (dev) avec openssl 1.1.1, pas envisageable en production
> Pas facile à installer si openssl 1.1.1 n'est pas installé par défaut
> On y arrive quand même :
> [02/Sep/2018:08:11:25 +] 192.168.1.253 TLSv1.3 TLS_AES_256_GCM_SHA384
> "GET /image.php HTTP/1.1" 353
>
> openssls s_server
> openssl-1.1.1
> utilisable pour des tests
> ./openssl s_server -accept 443 -www -status -serverpref \
> -key privkey13.pem -cert cert13.pem -chainCAfile fullchain13.pem \
> -CAfile DST_Root_CA_X3.pem -dhparam dh4096.pem \
> -curves X448:X25519:P-521:P-384:P-256 \
> -cipher
>
> TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-256-GCM-SHA384:TLS13-AES-128-GCM-SHA256:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-GCM-SHA256
>
>
> Clients HTTPS
> -
>
> openssls 

[FRnOG] [TECH] Tests TLS 1.3 (version finale RFC 8446) - Errata 1

2018-09-25 Par sujet Jean-Francois Billaud


Tests TLS 1.3 (version finale RFC 8446) - Errata 1
--

1. Versions de gnutls utilisables

Remplacer « 3.6.3 » par « 3.6.4 » dans le texte.
On peut utiliser la version 3.6.4 ou la version git, mais pas la version 3.6.3 :

$ ./gnutls-3.6.3/src/gnutls-cli example.org
Processed 133 CA certificate(s).
Resolving 'example.org:443'...
Connecting to '2a01:e34:...:443'...
|<1>| Detected downgrade to TLS 1.2 from TLS 1.3
*** Fatal error: An illegal parameter has been received.
*** handshake has failed: An illegal parameter has been received.

$ ./gnutls-3.6.4/src/gnutls-cli example.org
- Using curve: SECP256R1
- Curve size: 256 bits
- Version: TLS1.3
- Server Signature: ECDSA-SECP384R1-SHA384
- Cipher: CHACHA20-POLY1305

$ ./gnutls/src/gnutls-cli example.org
- Using curve: SECP256R1
- Curve size: 256 bits
- Version: TLS1.3
- Server Signature: ECDSA-SECP384R1-SHA384
- Cipher: CHACHA20-POLY1305


2. Nom des serveurs dans la documentation

Les noms des exemples ne sont pas conformes au RFC 2606
https://tools.ietf.org/html/rfc2606
Remplacer dans le texte « monserveur » par « example.org ».
Remplacer également « coincoin »  par « example.org ».


3. Licence

À rajouter au début.
Licence CC-Zero
https://fr.wikipedia.org/wiki/Licence_Creative_Commons


JFB


---
Liste de diffusion du FRnOG
http://www.frnog.org/


[FRnOG] [TECH] Tests TLS 1.3 (version finale RFC 8446)

2018-09-24 Par sujet Jean-Francois Billaud


Tests TLS 1.3 (version finale RFC 8446)
---


TROLON;PALU sommaire : La version 1.3 finale de TLS (RFC 8446) a été publiée
le 13 août 2018 ; on a de la documentation, des bibliothèques pour tester et
une vague idée de la manière de configurer les serveurs.

Version 2018-09-24
Conditions opératoires : Debian 8, 9, 10 avec des bouts de testing et de
instable dedans, Slackware current, Saccharomyces cerevisiae.


Documentation
-

Le RFC 8446 (The Transport Layer Security (TLS) Protocol Version 1.3) :
https://www.rfc-editor.org/rfc/rfc8446.txt

Un article de Eric Rescorla (alias EKR), l'auteur du RFC :
TLS 1.3 Published: in Firefox Today
https://blog.mozilla.org/security/2018/08/13/tls-1-3-published-in-firefox-today/
(avec le joli logo)

Les commentaires de Stéphane Bortzmeyer :
http://www.bortzmeyer.org/8446.html

En complément pour les autres versions de TLS :

RFC 8447 (IANA Registry Updates for TLS and DTLS)
précisant les chiffrements (section 8) et groupes (section 9) recommandés :
https://www.rfc-editor.org/rfc/rfc8447.txt

RFC 8422 (Elliptic Curve Cryptography (ECC) Cipher Suites
  for Transport Layer Security (TLS) Versions 1.2 and Earlier)
avec des précisions sur ECDH(E) RSA ECDSA EdDSA :
https://www.rfc-editor.org/rfc/rfc8422.txt

Sur l'abandon de TLS 1.0 et 1.1 (Deprecating TLSv1.0 and TLSv1.1 - 
draft-ietf-tls-oldversions-deprecate :
https://tools.ietf.org/html/draft-ietf-tls-oldversions-deprecate-00
Voir https://www.ietf.org/mail-archive/web/tls/current/maillist.html pour les 
avis.


Les bibliothèques et autres logiciels
-

Trois bibliothèques classiques :

openssl https://www.openssl.org/
openssl 1.1.1 (LTS) incluant TLS 1.3 final disponible depuis le 11/9/2018 :
https://www.openssl.org/blog/blog/2018/09/11/release111/
Si l'ordre par défaut ne vous plaît pas, ou si voulez rajouter les suites CCM, 
il faut éditer openssl-1.1.1/include/openssl/ssl.h lignes 176 et
suivantes.

gnutls https://gnutls.org/
Les versions stables et previous ne parlent pas le TLSv1.3, il faut utiliser la 
version next branch 3.6.3 :
https://www.gnupg.org/ftp/gcrypt/gnutls/v3.6/gnutls-3.6.3.tar.xz

NSS https://developer.mozilla.org/fr/docs/NSS
version 3.39
https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/NSS_3.39_release_notes
https://ftp.mozilla.org/pub/security/nss/releases/NSS_3_39_RTM/src/


Serveurs HTTPS
--

Nginx
https://nginx.org/
https://nginx.org/en/download.html
version 1.15.3 (mainline, pas stable) avec openssl 1.1.1
A partir des sources (à adapter) :
./configure --with-http_ssl_module --with-http_v2_module \
--with-http_stub_status_module --with-http_gzip_static_module \
--with-http_geoip_module --prefix=/usr/local/nginx \
--add-module=../ngx-fancyindex --with-openssl-opt=no-shared \
--with-stream --with-stream_ssl_module --with-mail --with-mail_ssl_module \
--add-dynamic-module=/usr/src/nginx-ct-master/ \
--with-openssl=/usr/src/openssl-1.1.1
nginx.conf :
  ssl_protocols TLSv1.2 TLSv1.3;
  ssl_ciphers
TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-256-GCM-SHA384:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA;
Il manque juste la configuration spécifique des suites TLS 1.3.
Ça a l'air stable et utilisable (sous réserve de tests adaptés à la situation)


Apache
https://github.com/apache/httpd
version 2.5.x (dev) avec openssl 1.1.1, pas envisageable en production
Pas facile à installer si openssl 1.1.1 n'est pas installé par défaut
On y arrive quand même :
[02/Sep/2018:08:11:25 +] 192.168.1.253 TLSv1.3 TLS_AES_256_GCM_SHA384 "GET 
/image.php HTTP/1.1" 353

openssls s_server
openssl-1.1.1
utilisable pour des tests
./openssl s_server -accept 443 -www -status -serverpref \
-key privkey13.pem -cert cert13.pem -chainCAfile fullchain13.pem \
-CAfile DST_Root_CA_X3.pem -dhparam dh4096.pem \
-curves X448:X25519:P-521:P-384:P-256 \
-cipher
TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-256-GCM-SHA384:TLS13-AES-128-GCM-SHA256:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-GCM-SHA256


Clients HTTPS
-

openssls s_client
openssl-1.1.1
utilisable pour des tests
openssl s_client -connect  monserveur:443 -curves X25519 -ciphersuites 
TLS_CHACHA20_POLY1305_SHA256
SSL-Session:
Protocol  : TLSv1.3
Cipher: TLS_CHACHA20_POLY1305_SHA256

nss
version 3.39 ou suivante
./nss/dist/Debug/bin/tstclnt -h monserveur -p 443 -b -v -V tls1.3:
LD_LIBRARY_PATH=/usr/src/nss/dist/Debug/lib/ 
/usr/src/nss/dist/Debug/bin/tstclnt -h monserveur -p 443 -b -v -V tls1.3:
tstclnt: SSL version 3.4 using 256-bit CHACHA20POLY1305 with 128-bit AEAD MAC
tstclnt: Server