Also benötigt Apple TLS 1.2 mit Forward Secrecy für URLs, die mit iOS 9 beginnen. Wie kann man am besten unabhängig von der App überprüfen, ob ein Server alle Anforderungen erfüllt?
nscurl funktioniert einfach nicht - oder ich weiß nicht, wie man es benutzt. Meine Ausgabe sagt einfach wiederholt, dass CFNetwork SSLHandshake fehlgeschlagen ist, obwohl ich weiß, dass der Server konform ist.
TLSTool funktioniert bis zu einem gewissen Grad, aber ich kann nicht die Forward Secrecy (FS) -Chiffre erzwingen.
openssl kann eine bestimmte Verschlüsselung für den Client-Modus angeben, aber die Version, die ich habe, hat keine FS-Verschlüsselung. Wie aktualisiere ich openssl?
Was ist der beste Weg? Bisher musste ich auf ssllabs.com's analyze.html zugreifen. Irgendwelche Vorschläge?
Grundsätzlich versucht nscurl --ats-diagnostics <url>
alle möglichen Verbindungsvarianten zum Server und Antworten mit PASS / FAIL-Ergebnissen für jeden Test. Sie sollten nur herausfinden, welche Tests für Ihren Server gelten und die ATS-Konfiguration entsprechend anpassen.
Hier ist ein guter Artikel über ATS und Überprüfung der Server-Compliance, es enthält auch ein nscurl-Beispiel.
Alle hier aufgeführten Methoden funktionieren, erfordern jedoch einige manuelle Arbeiten. Die beste Methode, die ich fand, bestand darin, den Server mit SSL Labs zu testen und die Ergebnisse mit den Anforderungen von Apple zu vergleichen. Dies schien etwas zu sein, das automatisiert werden konnte, also habe ich ein Tool erstellt, das genau das tut: Ссылка
Wenn Sie Ihre Domain als Parameter übergeben (z. B. Ссылка ), erhalten Sie folgende Informationen:
Methode 1:
Wenn die URL, die Sie testen möchten, öffentlich zugänglich ist, können Sie einen öffentlichen SSL-Testdienst wie den folgenden verwenden:
Nachdem Sie die URL eingegeben haben, wird im Abschnitt "Handshake-Simulation" "Apple ATS 9 / iOS 9" aufgeführt und angezeigt, ob TLS 1.2 erfolgreich ausgehandelt wurde und welche Verbindungscipher-Suite verwendet wurde. Wenn die verwendete Verschlüsselungssuite unter den technischen ATS-Anforderungen aufgeführt ist und TLS 1.2 erfolgreich ausgehandelt wurde, ist der Server ordnungsgemäß für ATS konfiguriert.
Methode 2: (dies wurde auch von anderen erwähnt)
Führen Sie auf einem Mac, auf dem OS X El Capitan ausgeführt wird, den folgenden Befehl im Terminal aus:
%Vor% Nachdem Sie den Befehl ausgeführt haben, suchen Sie nach dem Abschnitt oben, der mit ATS Default Connection
gekennzeichnet ist. Ein Ergebnis von PASS
zeigt an, dass der Server ordnungsgemäß für ATS konfiguriert ist.
Methode 3:
Bei URLs, die nicht öffentlich zugänglich sind, verwenden Sie Wireshark , um die Kommunikation mit der URL zu überwachen. Sie können einen Wireshark-Filter verwenden, um nur TLSv1.2-Pakete mit folgendem Inhalt anzuzeigen:
%Vor%Sie sehen Pakete, die das TLSv1.2-Protokoll verwenden, wenn der Server für TLS Version 1.2 konfiguriert wurde. Wenn Sie beim Überwachen von Anforderungen, die in die URL eingehen, nur ein Client-Hello-Paket sehen, wurde TLSv1.2 nicht zwischen dem mobilen Gerät und der URL ausgehandelt.
Mit nscurl
(verfügbar in macOS El Capitan und höher) können Sie den Schalter --ats-tls-version
verwenden, um speziell auf die Einhaltung von TLS 1.2 zu testen, z. B .:
nscurl --ats-diagnostics --ats-tls-version TLSv1.2 <url>
Dies wird auch auf Perfect Forward Secrecy getestet. Wenn Sie das Testen für PFS deaktivieren möchten, verwenden Sie den Schalter --ats-disable-pfs
.
nscurl --ats-diagnostics --ats-tls-version TLSv1.2 --ats-disable-pfs <url>
Tags und Links ios ssl tls1.2 app-transport-security