wake-up-neo.net

Bester Weg, um die Server-Konformität mit der ATS/TLS 1.2-Anforderung von Apple zu überprüfen

Daher benötigt Apple TLS 1.2 mit Forward Secrecy für URLs ab iOS 9. Unabhängig von der App, wie kann am besten überprüft werden, ob ein Server alle Anforderungen erfüllt? 

nscurl funktioniert einfach nicht - oder ich weiß nicht, wie ich damit umgehen soll. Meine Ausgabe sagt einfach wiederholt, dass CFNetwork SSLHandshake fehlgeschlagen ist, obwohl ich weiß, dass der Server kompatibel ist.

TLSTool funktioniert bis zu einem gewissen Grad, aber ich kann nicht die Verwendung der FS-Verschlüsselung erzwingen.

openssl kann bestimmte Verschlüsselungen für den Client-Modus angeben, aber die Version, die ich habe, hat keine Verschlüsselung für FS. Wie aktualisiere ich openssl?

Was ist der beste Weg? Bisher musste ich ssllabs.coms analyse.html. Irgendwelche Vorschläge?

14
Hampden123

Grundsätzlich versucht nscurl --ats-diagnostics <url> alle möglichen Verbindungsvarianten zum Server und antwortet mit PASS/FAIL-Ergebnissen für jeden Test. Sie sollten nur herausfinden, welche Tests für Ihren Server erfolgreich sind, und die ATS-Konfiguration entsprechend einstellen.

Hier ist ein guter Artikel zu ATS und zur Überprüfung der Serverkonformität. Er enthält auch ein Beispiel für nscurl.

38
Alex Skalozub

Alle hier aufgeführten Methoden funktionieren, erfordern jedoch einige manuelle Arbeit. Die beste Methode, die ich gefunden habe, 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. Deshalb habe ich ein Tool erstellt, das genau das tut: https://apptransport.info

Wenn Sie Ihre Domain als Parameter übergeben (z. B. https://apptransport.info/craigslist.com ), erhalten Sie folgende Informationen:

  1. Ob Ihr Server ATS-kompatibel ist oder nicht
  2. So beheben Sie Ihren Server, falls erforderlich
  3. So fügen Sie ggf. ATS-Ausnahmen hinzu
  4. Die Ergebnisse von SSL Labs
12
vf_jeff

Mit nscurl (verfügbar in macOS El Capitan und höher) können Sie den --ats-tls-version-Schalter verwenden, um speziell die TLS 1.2-Konformität zu testen, z.

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

Dies wird auch auf Perfect Forward Secrecy getestet. Wenn Sie das Testen auf PFS deaktivieren möchten, verwenden Sie den Schalter --ats-disable-pfs.

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

2
Ryan H.

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:

SSL-Servertest

Nachdem Sie die URL eingegeben haben, wird im Abschnitt "Handshake Simulation" "Apple ATS 9/iOS 9" aufgeführt, und es wird angezeigt, ob TLS 1.2 erfolgreich ausgehandelt wurde und welche Verbindungsschlüssel verwendet wurden. 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 mit OS X El Capitan den folgenden Befehl in Terminal aus:

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

Suchen Sie nach dem Ausführen des Befehls nach dem Abschnitt mit der Bezeichnung ATS Default Connection. Ein Ergebnis von PASS zeigt an, dass der Server ordnungsgemäß für ATS konfiguriert ist.

Methode 3:

Verwenden Sie für nicht öffentlich zugängliche URLs Wireshark , um die Kommunikation mit der URL zu überwachen. Sie können einen Wireshark-Filter verwenden, um nur TLSv1.2-Pakete mit den folgenden Eigenschaften anzuzeigen:

ssl.record.version == 0x0303

Sie sehen Pakete, die das Protokoll TLSv1.2 verwenden, wenn der Server für TLS Version 1.2 konfiguriert wurde. Wenn Sie bei der Überwachung von Anforderungen, die über die URL eingehen, nur ein Paket mit einem Hello-Paket für Clients sehen, wurde TLSv1.2 nicht zwischen dem mobilen Gerät und der URL ausgehandelt.

 wireshark_screenshot

1
slayernoah