La Fibre

Télécom => Réseau => reseau Protocoles réseaux sécurisés (https) => Discussion démarrée par: vivien le 03 novembre 2018 à 16:17:10

Titre: Script pour analyser les log Apache et sortir les clients non compatible TLS 1.2
Posté par: vivien le 03 novembre 2018 à 16:17:10
Scripts pour analyser les log Apache d'un site afin de détecter les User Agent non compatible TLS 1.2

1/ Pourquoi faire ?

LaFibre.info ne supporte plus TLS 1.0 et TLS 1.1 depuis le 1er novembre à 0h00 (concrètement seul TLS 1.2 est disponible)

La version minimum pour surfer sur LaFibre.info est donc Internet Explorer 11, Firefox 27, Chrome 30 ou Safari 7. Si vous utilisez le navigateur par défaut sur Android, il faut Android 5 minimum (pour ceux qui sont sous Android 2/3/4, il est conseillé de télécharger Firefox ou Chrome pour avoir le support de TLS 1.2). Le site https://caniuse.com/#feat=tls1-2 liste les navigateurs compatible TLS 1.2.

La question que se pose tout site avant de sauter le pas est de savoir si ils ont des lecteurs avec ces vieux navigateurs.

Pour LaFibre.info, j'ai vu qu'il y avait jusqu'à 8% des visiteurs qui avaient un navigateur non compatible TLS 1.2 ce qui incite a rester avec le support de TLS 1.0 et plus de TLS 1.2

J'ai analysé les log d'un sujet qui a été vu plusieurs centaines de fois en Afrique : Bénin: Fin de la neutralité. Internet vers les services OTT est lourdement taxé (https://lafibre.info/afrique/benin-taxe-reseaux-sociaux/), car je sais qu'il y a plus de probabilité de trouver de vieux navigateurs en Afrique.

J'ai analysé un par un les IP associées a ceux qui avait un navigateur non compatible TLS 1.2. Voici le résultat :

Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/5.0;  Trident/5.0)
91.209.8.xxx Hébergeur DGM Sofia, Bulgaria

Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)
23.96.208.xxx Cloud Microsoft

Mozilla/5.0 (Windows; U; Win 9x 4.90; SG; rv:1.9.2.4) Gecko/20101104 Netscape/9.1.0285
54.145.92.xxx Amazon Data Services NoVa

Mozilla/5.0 (Windows; U; Win 9x 4.90; rv:1.7) Gecko/20040803 Firefox/52.0.2
88.99.195.xxx Hetzner Online

Mozilla/5.0 (Windows; U; Win98; en-US; rv:1.7.6) Gecko/20050317 Firefox/50.0.2
88.99.195.xxx Hetzner Online

Mozilla/5.0 (Windows; U; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)
54.83.149.xxx Amazon EC2

Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 1.1.4322)
217.182.21.xxx OVH

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_5_8) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.68 Safari/534.24
178.208.12.xxx Leonix Telecom

Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20100101 Firefox/15.0.1
31.193.51.xxx Datacenter Eolas

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_5_8) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.803.0 Safari/535.1
178.208.12.xxx Leonix Telecom

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_5_8) AppleWebKit/534.31 (KHTML, like Gecko) Chrome/13.0.748.0 Safari/534.31
178.208.12.xxx Leonix Telecom

Mozilla/5.0 (X11; Linux i686; rv:21.0) Gecko/20100101 Firefox/21.0
37.187.56.xxx OVH

Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.43 Safari/537.31
34.238.150.xxx Amazon EC2

Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.30 (KHTML, like Gecko) Ubuntu/11.04 Chromium/12.0.742.112 Chrome/12.0.742.112 Safari/534.30
188.165.196.xxx OVH

Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.60 Safari/537.17
34.227.97.xxx Amazon EC2

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.43 Safari/536.11
54.91.172.xxx Amazon EC2

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_5_8) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.801.0 Safari/535.1\
178.208.12.xxx Leonix Telecom

Mozilla/5.0 (Linux; Android; 4.1.2; GT-I9100 Build/000000) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1234.12 Mobile Safari/537.22 OPR/14.0.123.123
107.167.99.xxx Opera Software Americas

Bref, toutes les IP sont des IP de serveurs et non de vrais clients. Le user-agent est probablement bidon.

C'est même certains pour Internet Explorer sous Windows XP. Le support d'Internet Explorer 6 pour Windows XP a été retiré sur ce forum en 2014 (cf Kill d'Internet Explorer 6 sur LaFibre.info (https://lafibre.info/evolution/kill-internet-explorer-6/). Avec cette configuration, Toutes les versions de Firefox, Chrome, Edge sont suportéss. Pour Internet Explorer, la version 7 est la la version minium et pour le navigateur intégré a Android, il faut Android 2.3 et supérieur.

Le 3 septembre 2017 c'était IE 8 sous XP qui était retiré : Internet Explorer 8 sous Windows XP n'est plus supporté (retrait des suites 3DES) (https://lafibre.info/cryptographie/https-des3/msg474492/#msg474492)

J'ai donc décidé de passer le cap de la suppression de TLS 1.0 et TLS 1.1. Depuis le 1er novembre 2018, La version minimum pour surfer sur LaFibre.info est donc Internet Explorer 11, Firefox 27, Chrome 30 ou Safari 7. Si vous utilisez le navigateur par défaut sur Android, il faut Android 5 minimum.
Titre: Script pour analyser les log Apache et sortir les clients non compatible TLS 1.2
Posté par: vivien le 03 novembre 2018 à 16:19:00
2/ Comment post-traiter les données Apache ?


La première étape consiste à filtrer pour ne récupérer que les requêtes ayant abouties (code 200) :

cat apache.log | grep "\" 200 " > apache200.log

Vous obtenez un fichier apache200.log vidé des différents scans qui testent les failles des sites web




La seconde étape consiste à liste les user agents utilisés avec le nombre d'IP différentes vues pour chaque user agent :

- Cas N°1 : Si vous logez les ports source et destination dans votre fichier apache2 et que les logs sont à ce format :

LogFormat "%h %{remote}p %{local}p %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combiport
La commande à utiliser est

awk -F ' [0-9]* [0-9]* |"' '{ua[$8][$1] = 0} END { for(i in ua) print(length(ua[i]), ":", i)}' apache200.log | sort -rh > stats.csv
- Cas N°2 : Si vous utilisez les logs sont au format "combined" :
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
La commande à utiliser est
awk -F ' - |"' '{ua[$7][$1] = 0} END { for(i in ua) print(length(ua[i]), ":", i)}' apache200.log | sort -h > stats.csv
Vous obtenez un fichier listant les user agent les plus utilisés. Le chiffre correspond aux nombres d'IP différentes trouvées.



La troisième étape consiste à extraire les user agent que l'on sait incompatible TLS 1.2.

J'ai réalisé ce petit script "stats.sh" qui prend en argument le nom du fichier à traiter :

#!/bin/dash
# Navigateurs pré-historiques
cat $1 | grep "Mozilla/4" | grep -v "Trident/7"
cat $1 | grep "Mozilla/3"
cat $1 | grep "Mozilla/2"
cat $1 | grep "Mozilla/1"
cat $1 | grep "Netscape"
cat $1 | grep "AmigaOS"
# Version de Windows ne supportant aucun navigateur avec TLS 1.2 :
cat $1 | grep "Win 95"
cat $1 | grep "Win 98"
cat $1 | grep "Win 9x"
cat $1 | grep "Windows ME"
cat $1 | grep "Win95"
cat $1 | grep "Win98"
cat $1 | grep "WinME"
cat $1 | grep "Win9x"
cat $1 | grep "Windows NT 5\.0"
cat $1 | grep "Windows NT 4"
cat $1 | grep "Windows NT 3"
# Internet Explorer ne supportant pas TLS 1.2 :
cat $1 | grep "MSIE 10" | grep -v "Trident/7"
cat $1 | grep "MSIE 9" | grep -v "Trident/7"
cat $1 | grep "MSIE 8"
cat $1 | grep "MSIE 7" | grep -v "Trident/7"
cat $1 | grep "MSIE 6"
cat $1 | grep "MSIE 5"
cat $1 | grep "MSIE 4"
cat $1 | grep "MSIE 3"
cat $1 | grep "MSIE 2"
cat $1 | grep "MSIE 1\."
cat $1 | grep "Trident/6"
cat $1 | grep "Trident/5"
cat $1 | grep "Trident/4"
cat $1 | grep "Trident/3"
cat $1 | grep "Trident/2"
cat $1 | grep "Trident/1"
# Chrome ne supportant pas TLS 1.2 :
cat $1 | grep "Chrome/29\."
cat $1 | grep "Chrome/28\."
cat $1 | grep "Chrome/27\."
cat $1 | grep "Chrome/26\."
cat $1 | grep "Chrome/25\."
cat $1 | grep "Chrome/24\."
cat $1 | grep "Chrome/23\."
cat $1 | grep "Chrome/22\."
cat $1 | grep "Chrome/21\."
cat $1 | grep "Chrome/20\."
cat $1 | grep "Chrome/19\."
cat $1 | grep "Chrome/18\."
cat $1 | grep "Chrome/17\."
cat $1 | grep "Chrome/16\."
cat $1 | grep "Chrome/15\."
cat $1 | grep "Chrome/14\."
cat $1 | grep "Chrome/13\."
cat $1 | grep "Chrome/12\."
cat $1 | grep "Chrome/11\."
cat $1 | grep "Chrome/10\."
cat $1 | grep "Chrome/9\."
cat $1 | grep "Chrome/8\."
cat $1 | grep "Chrome/7\."
cat $1 | grep "Chrome/6\."
cat $1 | grep "Chrome/5\."
cat $1 | grep "Chrome/4\."
cat $1 | grep "Chrome/3\."
cat $1 | grep "Chrome/2\."
cat $1 | grep "Chrome/1\."
# Firefox ne supportant pas TLS 1.2 :
cat $1 | grep "Firefox/26\."
cat $1 | grep "Firefox/25\."
cat $1 | grep "Firefox/24\."
cat $1 | grep "Firefox/23\."
cat $1 | grep "Firefox/22\."
cat $1 | grep "Firefox/21\."
cat $1 | grep "Firefox/20\."
cat $1 | grep "Firefox/19\."
cat $1 | grep "Firefox/18\."
cat $1 | grep "Firefox/17\."
cat $1 | grep "Firefox/16\."
cat $1 | grep "Firefox/15\."
cat $1 | grep "Firefox/14\."
cat $1 | grep "Firefox/13\."
cat $1 | grep "Firefox/12\."
cat $1 | grep "Firefox/11\."
cat $1 | grep "Firefox/10\."
cat $1 | grep "Firefox/9\."
cat $1 | grep "Firefox/8\."
cat $1 | grep "Firefox/7\."
cat $1 | grep "Firefox/6\."
cat $1 | grep "Firefox/5\."
cat $1 | grep "Firefox/4\."
cat $1 | grep "Firefox/3\."
cat $1 | grep "Firefox/2\."
cat $1 | grep "Firefox/1\."
cat $1 | grep "Firefox/0\."
# Safari sur Mac OS X ne supportant pas TLS 1.2 :
cat $1 | grep "Mac OS X" | grep -v "CPU OS" | grep -v "iPhone OS" | grep -v "Chrome" | grep -v "Firefox" | grep "AppleWebKit/5"
cat $1 | grep "Mac OS X" | grep -v "CPU OS" | grep -v "iPhone OS" | grep -v "Chrome" | grep -v "Firefox" | grep "AppleWebKit/4"
cat $1 | grep "Mac OS X" | grep -v "CPU OS" | grep -v "iPhone OS" | grep -v "Chrome" | grep -v "Firefox" | grep "AppleWebKit/3"
# Safari sur iOS ne supportant pas TLS 1.2 :;
cat $1 | grep "OS 4_"
cat $1 | grep "OS 3_"
cat $1 | grep "OS 2_"
cat $1 | grep "OS 1_"
# Navigateur par défault d'Android ne supportant pas TLS 1.2 :
cat $1 | grep "Android 4" | grep -v "Firefox" | grep -v "Chrome" | grep -v "Trident" | grep -v "Opera Mobi"
cat $1 | grep "Android 3" | grep -v "Firefox" | grep -v "Chrome" | grep -v "Trident" | grep -v "Opera Mobi"
cat $1 | grep "Android 2" | grep -v "Firefox" | grep -v "Chrome" | grep -v "Trident" | grep -v "Opera Mobi"
cat $1 | grep "Android 1" | grep -v "Firefox" | grep -v "Chrome" | grep -v "Trident" | grep -v "Opera Mobi"

Une ligne peut être listée plusieurs fois il faut donc séparer les doublons.

Son utilisation :
./stats.sh stats.csv | sort -rh | uniq > vieux-navigateurs.txt

Vous obteniez un listing des user agent non compatible TLS 1.2 classés par ordre d'utilisation.
Titre: Script pour analyser les log Apache et sortir les clients non compatible TLS 1.2
Posté par: vivien le 03 novembre 2018 à 16:19:09
3/ Concrètement pour Lafibre.info, cela donne quoi ?

J'ai post traitées les données 2 jours avant la suppression de TLS 1.0 et 2 jours après.

Les données sont dans le fichier Libre Office Calc
201811_lafibre_stats_ua_non_compatible_tls12.ods
(https://lafibre.info/images/logo/logo_libreoffice_calc.png) (https://lafibre.info/images/stats/201811_lafibre_stats_ua_non_compatible_tls12.ods)

Note : Il est lisible avec Excel.

Il y a deux onglets :
- Données du mardi 30 et mercredi 31 octobre, avec support de TLS 1.0 / TLS 1.1 / TLS 1.2
- Données du jeudi 1er et vendredi 2 novembre, avec support de TLS 1.2 uniquement.

Il y a un peu moins de visite le 1er et 2 novembre, mais c'est lié au jour férié (jeudi 1er novembre) et pont (vendredi 2 novembre).

On peut par contre voir que tous user agents non compatible TLS 1.2 avec plus de 10 clients du 30/31 octobre sont bien présents le 1er et 2 novembre : on a donc la certitude que tous les clients qui se cachent derrière sont réellement compatible TLS 1.2 et que le user-agent présenté est faux.
Titre: Script pour analyser les log Apache et sortir les clients non compatible TLS 1.2
Posté par: vivien le 03 novembre 2018 à 16:28:05
4/ Pourquoi ne pas garder TLS 1.0 en plus de TLS 1.2 ?

- À partir du 30 juin 2018, tous les sites Web devront au moins être en TLS 1.1 pour être conformes au standard PCI Data Security Standard (DSS) : TLS 1.0 doit être désactivé pour être conforme. => 30 juin 2018: TLS 1.0 doit être désactivé pour être conforme PCI DSS (https://lafibre.info/cryptographie/tls-1-0/)

- C'est une recommandation de l'ANSSI, l'Agence nationale de la sécurité des systèmes d'information.

(cliquez sur la miniature ci-dessous - le document est au format PDF)
(https://lafibre.info/images/ssl/201608_anssi_guide_tls.jpg) (https://lafibre.info/images/ssl/201608_anssi_guide_tls.pdf)

Concrètement, le retrait de la compatibilité TLS 1.0 et TLS 1.1 de LaFibre.info fait progresser le ranking sur CryptCheck ( https://tls.imirhil.fr/ ) : on passe de la notation B à la notation A+

Le 31 octobre : LaFibre.info support TLS 1.0 , TLS 1.1 et TLS 1.2
(https://lafibre.info/images/ssl/201810_lafibre_CryptCheck.png)

Le 1er novembre : LaFibre.info supporte uniquement TLS 1.2

(https://lafibre.info/images/ssl/201811_lafibre_CryptCheck.png)
Titre: Script pour analyser les log Apache et sortir les clients non compatible TLS 1.2
Posté par: vivien le 03 novembre 2018 à 16:51:00
Mozilla, l'éditeur de Firefox met à disposition deux outils :

- Un observatoire, qui permet de tester un site : https://observatory.mozilla.org/
- Un outil pour générer la configuration Apache : https://mozilla.github.io/server-side-tls/ssl-config-generator/

3 options sont proposées :
- "Modern" (compatible Internet Explorer 11 et +)
- "Intermediate" (compatible Internet Explorer 8 sous Windows XP et +)
- "Old" (compatible Internet Explorer 6 et +)

Ma nouvelle configuration est de type moderne (j'ai utilisé le générateur de Mozilla) mais pourtant, le test de Mozilla continue de me classer en "Intermediate".
Si vous savez pourquoi, je suis preneur !


(https://lafibre.info/images/ssl/201811_lafibre_Observatory_by_Mozilla.png)
Titre: Script pour analyser les log Apache et sortir les clients non compatible TLS 1.2
Posté par: vivien le 03 novembre 2018 à 16:55:34
Enfin l'outil le plus connu est Qualys SSL Labs

Qualys SSL Labs ( https://www.ssllabs.com/ ) existent depuis de nombreuses années et il n'a pas eu de grand changement dans la notation. Si au début peu de sites obtenaient un A, aujourd'hui ils sont majoritairement en A. Il faudrait durcir les paramètres, c'est à l'étude puis 2 ans mais toujours pas en prod.

LaFibre.info a donc un A+, avec ou sans TLS 1.0

Le 31 octobre : LaFibre.info support TLS 1.0 , TLS 1.1 et TLS 1.2
(https://lafibre.info/images/ssl/201810_lafibre_SSL_Server_Test.png)

Le 1er novembre : LaFibre.info supporte uniquement TLS 1.2

(https://lafibre.info/images/ssl/201811_lafibre_SSL_Server_Test.png)
Titre: Script pour analyser les log Apache et sortir les clients non compatible TLS 1.2
Posté par: jack le 03 novembre 2018 à 19:43:33
Plutôt que de te baser sur l'user-agent, tu peux également redéfinir ton format de journaux d'accès (https://httpd.apache.org/docs/2.4/fr/mod/mod_log_config.html#logformat) pour ajouter la variable SSL_PROTOCOL du mod_ssl

Titre: Script pour analyser les log Apache et sortir les clients non compatible TLS 1.2
Posté par: vivien le 03 novembre 2018 à 20:01:08
Ah oui, cela aurait été pertinent. Cela sera intéressant pour voir la pénétration de TLS 1.3

Maintenant TLS 1.0 est désactivé (comme 28% des sites web sur les  150 000 sites les plus populaires)

(On gagne un point par mois systématiquement depuis plus d'un an et cela s’accélère)

(https://lafibre.info/images/ssl/statistiques_sites_https_populaires.webp)
Titre: Script pour analyser les log Apache et sortir les clients non compatible TLS 1.2
Posté par: vivien le 04 novembre 2018 à 14:04:25
La première étape consiste à filtrer pour ne récupérer que les requêtes ayant abouties (code 200) :

A posteriori, je pense qu'il est plus pertinent de séparer les erreurs 404 et de garder le reste, même si cela ne devrait pas changer grand chose pour les visiteurs uniques.

J'ai par exemple des retour 206 (Partial Content = Une partie seulement de la ressource a été transmise.) pour les vidéos qui ne sont pas visionnées en entier.

Il y a aussi de nombreux 304 (Not Modified = Document non modifié depuis la dernière requête.)

Sans parler des redirections (301 Moved Permanently ou 302 Document déplacé de façon temporaire)
Titre: Script pour analyser les log Apache et sortir les clients non compatible TLS 1.2
Posté par: Sendell le 06 novembre 2018 à 20:11:59
Hola

Ma nouvelle configuration est de type moderne (j'ai utilisé le générateur de Mozilla) mais pourtant, le test de Mozilla continue de me classer en "Intermediate".

L'absence du support de la suite basée sur ChaCha20 et Poly1305 ?
Si tu es sur une Debian stable (stretch), mod_ssl a été compilé avec libssl1.0.2, donc même si tu la précises dans le SSLCipherSuite elle ne sera en fait pas proposée, il faut libssl1.1. Cependant mon serveur de tests (debian testing, avec libssl1.1.1 et Apache2.4.37 tout juste arrivé (https://tracker.debian.org/pkg/apache2)) le propose bien, en TLS1.2 et TLS1.3, mais le TLSObservatory ne le voit pas (au contraire de SSLLabs) et me classe aussi en intermediate. J'utilise la CipherSuite HIGH+ECDH+CHACHA20:HIGH+ECDH+AESGCM:HIGH+ECDH+AES:!SHA

Concrètement, le retrait de la compatibilité TLS 1.0 et TLS 1.1 de LaFibre.info fait progresser le ranking sur CryptCheck ( https://tls.imirhil.fr/ ) : on passe de la notation B à la notation A+

À ma connaissance, cet outil n'est plus maintenu à cette adresse, au contraire de CryptCheck.fr (https://cryptcheck.fr/https/lafibre.info) (qui est du coup bien plus sévère, mais il ne connait par ailleurs pas encore TLS1.3) : sur cet outil aussi c'est un A+ !
Titre: Script pour analyser les log Apache et sortir les clients non compatible TLS 1.2
Posté par: vivien le 06 novembre 2018 à 21:32:36
Effectivement LaFibre.info utilise OpenSSL 1.0.2g , car je n'ai pas encore fait la mise à jour vers Ubuntu 18.04 (pb de compatibilité de SMF avec PHP 7.2)

J'ai par contre d'autres sites web hébergés avec Ubuntu 18.04 et donc OpenSSL 1.1.0g et j'ai la même suite de Cipher Suites et le même problème avec un classement intermédiaire.

J'ai pourtant tenté de reproduire exactement la configuration de https://mozilla.github.io/server-side-tls/ssl-config-generator/?server=apache-2.4.29&openssl=1.1.0g&hsts=yes&profile=modern
( Apache 2.4.29 | modern profile | OpenSSL 1.1.0g )

C'est le cas de https://iperf.fr/
Titre: Script pour analyser les log Apache et sortir les clients non compatible TLS 1.2
Posté par: butler_fr le 06 novembre 2018 à 22:09:47
vraiment très utile ce site https://mozilla.github.io/server-side-tls/ssl-config-generator
je l'utilise régulièrement au boulot

par contre il peut ne pas donner la bonne configuration dans certains cas spécifique

exemple sur une debian7 avec apache 2.2.22 (oui je sais ça date), pour lui tls1.2 n'est pas disponible alors que dans le cas de debian l'ajout de tls1.2 dans la version 2.2.23 d'apache a été backporté sur la version 2.2.22 (version officielle de debian).
Titre: Script pour analyser les log Apache et sortir les clients non compatible TLS 1.2
Posté par: vivien le 08 novembre 2018 à 14:29:22
exemple sur une debian7 avec apache 2.2.22 (oui je sais ça date), pour lui tls1.2 n'est pas disponible alors que dans le cas de debian l'ajout de tls1.2 dans la version 2.2.23 d'apache a été backporté sur la version 2.2.22 (version officielle de debian).

[hs]Je rappelle que Debian 7.0 (Wheezy), sortie le 4 mai 2013, n'est plus supporté, le Long Term Support s'est achevé le 31 mai 2018.

Il y a donc des failles de sécurité non colmatées, je ne conseille pas pour de la prod...[/hs]
Titre: Script pour analyser les log Apache et sortir les clients non compatible TLS 1.2
Posté par: butler_fr le 10 novembre 2018 à 19:15:03
tout a fait ;)
bon après quand on voit que certains clients tournent toujours sur de la debian 6...
on se dit que deb7 c'est pas si mal  ;D
Titre: Script pour analyser les log Apache et sortir les clients non compatible TLS 1.2
Posté par: alegui le 10 novembre 2018 à 22:12:49
[hs]Je rappelle que Debian 7.0 (Wheezy), sortie le 4 mai 2013, n'est plus supporté, le Long Term Support s'est achevé le 31 mai 2018.

Il y a donc des failles de sécurité non colmatées, je ne conseille pas pour de la prod...[/hs]
Certains paquets sont encore supportés en basculant sur les repos ELTS  (https://wiki.debian.org/LTS/Extended)(extended long term support = support supplèmentaire).
C'est un projet mené par Freexian et les entreprises payant déjà pour un support étendu (Debian LTS (https://www.freexian.com/services/debian-lts.html)), en marge du projet de base.
Seuls les paquets dont le support est payé  (https://deb.freexian.com/extended-lts/docs/supported-packages/)sont mis à jour en cas de problème, ce n'est donc pas parfait mais couvre de nombreux usages serveur. Bien sûr, ceux qui voudraient avoir d'autres paquets peuvent également participer au financement pour garantir leur support.

Titre: Script pour analyser les log Apache et sortir les clients non compatible TLS 1.2
Posté par: vivien le 11 novembre 2018 à 10:35:53
L’accès à ce dépôt est payant ?

J'en profite d'être avec des fan de vieux linux pour indiquer que je cherche de veilles ISO de linux / bsd pour mettre à disposition sur https://soft.lafibre.info/

Si possible des version d'origines, pas les versions intermédiaires qui contiennent des mises à jour. (par exemple je recherche Debian 8.0 = ok Debian 8.11 = non ok)
Debian 8.11 est sortie le 23 juin 2018 et c'est un Debian 8.0 sortie le 25 avril 2015 + les mises à jour de sécurité jusqu'au 23 juin 2018.
Titre: Script pour analyser les log Apache et sortir les clients non compatible TLS 1.2
Posté par: alegui le 11 novembre 2018 à 20:38:05
L’accès à ce dépôt est payant ?
Non, tout le monde peut y accéder gratuitement et ce sont les mêmes personnes qui font les mises à jour pour les LTS et pour les ELTS.
La seule chose payante est d'être sponsor d'un programme, le prix de la maintenance d'un paquet est divisé par le nombre d'entreprises payant pour son support. Quand plus personne ne veut payer, son support s'arrête.
Titre: Script pour analyser les log Apache et sortir les clients non compatible TLS 1.2
Posté par: kazyor le 12 novembre 2018 à 00:21:48
J'en profite d'être avec des fan de vieux linux pour indiquer que je cherche de veilles ISO de linux / bsd pour mettre à disposition sur https://soft.lafibre.info/
Faudrait que je regarde à l'occaz je dois avoir de vieilles galettes des années 2005/2010.
Titre: Script pour analyser les log Apache et sortir les clients non compatible TLS 1.2
Posté par: Sendell le 15 novembre 2018 à 20:03:18
Effectivement LaFibre.info utilise OpenSSL 1.0.2g , car je n'ai pas encore fait la mise à jour vers Ubuntu 18.04 (pb de compatibilité de SMF avec PHP 7.2)

J'ai par contre d'autres sites web hébergés avec Ubuntu 18.04 et donc OpenSSL 1.1.0g et j'ai la même suite de Cipher Suites et le même problème avec un classement intermédiaire.

J'ai pourtant tenté de reproduire exactement la configuration de https://mozilla.github.io/server-side-tls/ssl-config-generator/?server=apache-2.4.29&openssl=1.1.0g&hsts=yes&profile=modern
( Apache 2.4.29 | modern profile | OpenSSL 1.1.0g )

C'est le cas de https://iperf.fr/

Hola
J'avais aussi classement Intermédiaire par le TLSObservatory malgré une cipher suite proche de celle de Moderne, sans trop saisir pourquoi... J'ai aujourd'hui passé mon certificat TLS via Let's Encrypt de RSA vers ECDSA (https://lafibre.info/cryptographie/certificat-ecc/) : le TLS Observatory m'a classé Moderne (https://observatory.mozilla.org/analyze/www.sendell.com#tls) ! J'utilise libssl1.1.1, donc propose ChaCha20+Poly1305 ou TLS1.3, mais ni l'un ni l'autre influent, c'est bien le certificat.

Pour obtenir les certificats via ACME, je n'utilise pas le client certbot (https://certbot.eff.org/), mais acme.sh (https://github.com/Neilpang/acme.sh) (ECDSA facile, on peut notamment en automatiser le renouvellement) ; pour garder WinXP+Chrome dans SSLLab (https://dev.ssllabs.com/ssltest/analyze.html?d=www.sendell.com), je génère aussi un RSA plus classique, j'indique les deux dans la configuration du vhost. Le certificat intermédiaire de Let's Encrypt reste un RSA dans tous les cas pour encore quelques temps (https://letsencrypt.org/upcoming-features/), ça fait grincer certains tests (HTBridge).

Ma SSLCipherSuite a dû évoluer pour virer ECDSA+AESCCM, peu présent côté clients : SSLCipherSuite HIGH+ECDH+CHACHA20:HIGH+ECDH+AESGCM:HIGH+ECDH+AES:!SHA:!AESCCM pour TLS1.2 seul, SSLCipherSuite HIGH+ECDH+CHACHA20:HIGH+ECDH+AESGCM:HIGH+ECDH+AES:+SHA:!AESCCM pour TLS1.0 à 1.2.

Titre: Script pour analyser les log Apache et sortir les clients non compatible TLS 1.2
Posté par: vivien le 16 novembre 2018 à 09:21:51
Sais tu pourquoi Certbot, le client officiel ne propose pas de certificats ECDSA ?

Outre le gain sécurité, la clé est plus petite, il y a don un gain de performance...

Les certificats SSL ECC 256 bits vont remplacer les certificats RSA 2048 bits : plus légers mais plus sécurisés

ECC signifie Elliptic Curve Cryptography (rien à voir avec ECC Error-correcting code). Ici en français, ECC signifie Cryptographie à Courbe Elliptique en français.

La cryptographie basée sur des courbes elliptiques (ECC) permet de générer des clés d'une longueur nettement inférieure à celle des clés RSA pour un niveau de sécurité équivalent.
Cela permet donc un petit gan de performance pour le chargement de site web https.

(https://lafibre.info/images/ssl/201810_certificats_SSL_ECC_256bits_vs_RSA.png)

Note : SSL Labs affiche EC et non ECC quand un certificat est ECC.


Quelle est la différence entre la cryptographie RSA et la cryptographie ECC ?

Les deux systèmes utilisent de grands nombres premiers mais quand RSA est basé sur la factorisation de ces derniers, ECC utilise les logarithmes discrets.

Dans la pratique, clés et certificats fonctionnent de la même façon que RSA mais utilisent simplement un format différent.


Pourquoi opter pour ECC ?

L'évolution technologique oblige l'industrie à augmenter régulièrement la taille minimale des clés RSA. Aujourd'hui générées en 2048-bit minimum, l'ANSSI recommande le 4096-bit à partir de 2020. Or la taille des clés a un impact non négligeable sur la performance de vos équipements.

Les clés ECC étant plus légères, elles permettent aux systèmes d'information compatibles une meilleure performance.

Ci-dessous un tableau présentant l'équivalence taille des clés RSA (bits) vs Taille des clés ECC (bits) :
1024 bits RSA = 160 bits ECC
2048 bits RSA = 224 bits ECC
3072 bits RSA = 256 bits ECC
7680 bits RSA = 384 bits ECC
15360 bits RSA = 521 bits ECC
Titre: Script pour analyser les log Apache et sortir les clients non compatible TLS 1.2
Posté par: Sendell le 16 novembre 2018 à 10:54:02
Sais tu pourquoi Certbot, le client officiel ne propose pas de certificats ECDSA ?

Outre le gain sécurité, la clé est plus petite, il y a don un gain de performance...

Ne le propose pas de façon simple et automatisable plutôt ; aucune idée, je suppose que c'est un "work in progress" côté EFF qui développe certbot. Mais vraiment je n'ai pas été déçu par acme.sh, fourni avec de nombreux modules permettant la validation DNS automatisée.
Titre: Script pour analyser les log Apache et sortir les clients non compatible TLS 1.2
Posté par: raf le 16 novembre 2018 à 14:33:36
bon après quand on voit que certains clients tournent toujours sur de la debian 6...
... et encore ... chez certains Debian6 c'est presque du luxe. Il y a dans la nature jusqu'au debian 4 voire meme dans quelques cas 3 (j'ai bien hallucine).
Titre: Script pour analyser les log Apache et sortir les clients non compatible TLS 1.2
Posté par: vivien le 16 novembre 2018 à 14:41:41
J'ai chez moi un PC portable IBM avec Debian 3 qui fonctionne toujours.

Difficile de mettre un OS plus récent sur un PC portable qui n'a qu'un lecteur de disquette (oui, il est possible d'installer Debian 3 avec des disquettes 1,4Mo, je l'ai fait)
Titre: Script pour analyser les log Apache et sortir les clients non compatible TLS 1.2
Posté par: Thornhill le 16 novembre 2018 à 15:11:55
On a des clients qui ont encore des applications critiques sur des systèmes plus maintenus (no patch) depuis plus de 5 ans : RedHat EL 4, Solaris 9, AIX 5.2, Oracle Database 10g etc...
Titre: Script pour analyser les log Apache et sortir les clients non compatible TLS 1.2
Posté par: vivien le 16 novembre 2018 à 15:30:56
Des milliers de passagers – dont le maire de Bordeaux Alain Juppé – ont été cloués au sol samedi 7 novembre 2015 à l’aéroport d’Orly.
le Canard Enchaîné précise que la panne a affecté le système Decor (diffusion des données d’environnement contrôle d’Orly et de Roissy), relié à Météo France, et fonctionnant... sous Windows 3.1

=> Une panne informatique à l’aéroport d’Orly liée à... Windows 3.1 (https://lafibre.info/systeme-exploitation/une-panne-informatique-a-laeroport-dorly-liee-a-windows-3-1/)
Titre: Script pour analyser les log Apache et sortir les clients non compatible TLS 1.2
Posté par: Sendell le 18 novembre 2018 à 00:01:15
vraiment très utile ce site https://mozilla.github.io/server-side-tls/ssl-config-generator

Ces 3 lots de configuration peuvent se définir en une ligne depuis Apache 2.4.30, avec SSLPolicy : https://httpd.apache.org/docs/trunk/mod/mod_ssl.html#sslpolicy