web-dev-qa-db-fra.com

Meilleur moyen de vérifier la conformité du serveur aux exigences ATS/TLS 1.2 d'Apple

Apple exige donc TLS 1.2 avec Forward Secrecy pour les URL commençant par iOS 9. Quelle que soit l'application choisie, quel est le meilleur moyen de vérifier qu'un serveur répond à toutes les exigences? 

nscurl ne fonctionne tout simplement pas - ou je ne sais pas comment l'utiliser. Ma sortie indique simplement à plusieurs reprises que CFNetwork SSLHandshake a échoué, même si je sais que le serveur est conforme.

TLSTool fonctionne dans une certaine mesure, mais je ne peux pas forcer l’utilisation des chiffrements Forward Secrecy (FS).

openssl peut spécifier un chiffrement spécifique pour le mode client, mais la version que j'ai n'a pas de chiffrement FS. Comment puis-je mettre à jour OpenSL?

Quel est le meilleur moyen? Jusqu'ici, j'ai eu à analyser.html de ssllabs.com. Aucune suggestion?

14
Hampden123

nscurl --ats-diagnostics <url> essaie simplement toutes les variantes possibles de connexion au serveur et les réponses avec les résultats PASS/FAIL pour chaque test. Vous devez simplement rechercher les tests réussis pour votre serveur et définir la configuration ATS en conséquence.

Voici un bon article sur ATS et la vérification de la conformité des serveurs, il contient également un exemple nscurl.

38
Alex Skalozub

Toutes les méthodes énumérées ici fonctionnent, mais nécessitent un travail manuel. La meilleure méthode que j'ai trouvée consistait à tester le serveur avec SSL Labs et à comparer les résultats aux exigences d'Apple. Cela semblait être quelque chose qui pourrait être automatisé alors j'ai créé un outil qui fait exactement cela: https://apptransport.info

Si vous transmettez votre domaine en tant que paramètre (par exemple, https://apptransport.info/craigslist.com ), vous obtiendrez les informations suivantes:

  1. Si votre serveur est conforme à ATS ou non
  2. Comment réparer votre serveur si nécessaire
  3. Comment ajouter des exceptions ATS si nécessaire
  4. Les résultats de SSL Labs
12
vf_jeff

Avec nscurl (disponible dans macOS El Capitan et versions ultérieures), vous pouvez utiliser le commutateur --ats-tls-version pour tester spécifiquement la conformité à TLS 1.2, par exemple:

nscurl --ats-diagnostics --ats-tls-version TLSv1.2 <url>

Cela permettra également de tester le secret parfait avant. Si vous souhaitez désactiver le test de PFS, utilisez le commutateur --ats-disable-pfs.

nscurl --ats-diagnostics --ats-tls-version TLSv1.2 --ats-disable-pfs <url>

2
Ryan H.

Méthode 1:

Si l'URL que vous souhaitez tester est accessible au public, vous pouvez utiliser un service de test SSL public tel que celui ci-dessous:

Test du serveur SSL

Après avoir entré l'URL, la section intitulée "Simulation de poignée de main" répertorie "Apple ATS 9/iOS 9" et indique si TLS 1.2 a été négocié avec succès et quelle suite de chiffrement de connexion a été utilisée. Si la suite de chiffrement utilisée est répertoriée ci-dessous sous Configuration technique requise pour ATS et que TLS 1.2 a été négocié avec succès, le serveur est correctement configuré pour ATS.

Méthode 2: (cela a également été mentionné par d'autres)

Sur un Mac sous OS X El Capitan, exécutez la commande suivante dans Terminal:

/usr/bin/nscurl --ats-diagnostics https://<url>

Après avoir exécuté la commande, recherchez la section près du haut intitulée ATS Default Connection. Un résultat de PASS indique que le serveur est correctement configuré pour ATS.

Méthode 3:

Pour les URL qui ne sont pas accessibles publiquement, utilisez Wireshark pour surveiller la communication avec l’URL. Vous pouvez utiliser un filtre Wireshark pour afficher uniquement les paquets TLSv1.2 avec les éléments suivants:

ssl.record.version == 0x0303

Vous verrez les paquets qui utilisent le protocole TLSv1.2 si le serveur a été configuré pour TLS version 1.2. Si vous ne voyez qu'un paquet Client Hello lors du contrôle des demandes entrant dans l'URL, TLSv1.2 n'a pas été négocié entre le périphérique mobile et l'URL.

 wireshark_screenshot

1
slayernoah