Was sind die Xcode App Transport Security Einstellungen und wie werden sie konfiguriert?
- Einführung in App Transport Security (ATS)
- Warum sind die App Transport Security Einstellungen in Xcode wichtig?
- Wo werden die App Transport Security Einstellungen festgelegt?
- Ausnahmen und Anpassungen in App Transport Security
- Best Practices für den Umgang mit App Transport Security
- Zusammenfassung
Einführung in App Transport Security (ATS)
App Transport Security (ATS) ist eine Sicherheitsfunktion, die Apple mit iOS 9 und macOS Sierra eingeführt hat, um die Sicherheit von Netzwerkverbindungen in Apps zu erhöhen. Ziel von ATS ist es, sicherzustellen, dass alle Verbindungen zwischen einer App und ihren Webdiensten verschlüsselt und sicher sind, insbesondere durch die Nutzung von HTTPS mit starken Verschlüsselungsprotokollen. Dadurch soll das Risiko von Man-in-the-Middle-Angriffen und anderen Sicherheitslücken reduziert werden.
Warum sind die App Transport Security Einstellungen in Xcode wichtig?
Entwickler, die Apps für iOS oder macOS erstellen, müssen in Xcode sicherstellen, dass ihre Apps die ATS-Anforderungen erfüllen, um im App Store akzeptiert zu werden und eine sichere Kommunikation zu gewährleisten. Wenn eine App versucht, ungesicherte HTTP-Verbindungen zu einem Server herzustellen, blockiert ATS diese Verbindungen standardmäßig, es sei denn, der Entwickler erlaubt dies explizit durch Anpassungen in der Info.plist-Datei.
Wo werden die App Transport Security Einstellungen festgelegt?
Die Einstellungen für ATS werden im sogenannten Info.plist Ihrer Xcode-Projektdatei konfiguriert. Hier können Entwickler verschiedene Schlüssel und Werte hinzufügen, um das Verhalten von ATS zu steuern. Der zentrale Schlüssel dafür heißt NSAppTransportSecurity. Unter diesem Schlüssel lassen sich Ausnahmen für bestimmte Domains definieren oder Sicherheitsanforderungen anpassen.
Ausnahmen und Anpassungen in App Transport Security
Manchmal ist es erforderlich, Verbindungen zu Servern zuzulassen, die keine vollständigen ATS-Anforderungen erfüllen, zum Beispiel wenn noch kein HTTPS verwendet wird oder unsichere TLS-Versionen genutzt werden. In solchen Fällen kann man unter NSAppTransportSecurity den Schlüssel NSExceptionDomains hinzufügen, um Domains einzeln von den ATS-Vorgaben auszunehmen. Innerhalb der Ausnahmen kann man angeben, ob unverschlüsselte HTTP-Verbindungen erlaubt sind, welche TLS-Version verwendet wird oder ob Zertifikate toleranter akzeptiert werden sollen.
Eine weitere Möglichkeit besteht darin, NSAllowsArbitraryLoads auf true zu setzen, was alle ATS-Beschränkungen deaktiviert, aber dies bedeutet eine deutlich geringere Sicherheit und wird von Apple nicht empfohlen und häufig auch nicht akzeptiert, wenn Apps im App Store eingereicht werden.
Best Practices für den Umgang mit App Transport Security
Apple empfiehlt, die ATS-Richtlinien so strikt wie möglich einzuhalten und nur dann Ausnahmen zu verwenden, wenn es keine andere Lösung gibt. Falls Ausnahmen erforderlich sind, sollten diese möglichst spezifisch für einzelne Domains und Funktionen gestaltet werden, anstatt globale Ausnahmen zu erteilen. Außerdem sollte mittelfristig angestrebt werden, serverseitig HTTPS und moderne TLS-Versionen zu unterstützen, um die strengeren ATS-Anforderungen zu erfüllen und die App möglichst sicher zu machen.
Zusammenfassung
Die App Transport Security Einstellungen in Xcode dienen dazu, die Netzwerksicherheit von Apps durch die Erzwingung sicherer Verbindungen zu gewährleisten. Sie werden über die Info.plist konfiguriert, wobei Entwickler gezielte Ausnahmen definieren können, wenn vollständige Sicherheit nicht möglich ist. Es ist wichtig, diese Einstellungen verantwortungsvoll anzupassen, um die Sicherheit der Nutzer zu gewährleisten und gleichzeitig die Funktionalität der App sicherzustellen.
