Während dem verschlüsselten Verbindungsaufbau prüfen
Apps oft genau nach, ob sie mit dem korrekten Server kommunizieren
- dieser sich also mit einem erwarteten TLS-Zertifikat ausweist.
In iOS 14 geht dieses sogenannte Certificate Pinning, für welches
Entwickler bisher noch eigenen Code schreiben mussten, bereits per
Konfiguration - Apple informierte hierüber per
News-Meldung.
Werden verschlüsselte Verbindungen über das TLS-Protokoll
aufgebaut, authentifiziert sich der Server mithilfe eines Zertifikats
gegenüber der App - zudem wird ein gemeinsames Geheimnis zur
Verschlüsselung ausgehandelt. Die Vertrauenswürdigkeit
des verwendeten Zertifikats wird von dem Betriebssystem bei jedem
Verbindungsaufbau überprüft, indem etwa der im Zertifikat
angegebene Hostname mit dem des angefragten Systems abgeglichen
wird. Auch wird überprüft, ob das Zertifikat von einer
vertrauenswürdigen Zertifizierungsstelle (Certficate Authority,
CA) ausgestellt und signiert wurde. Für letzteren Schritt hat
iOS einen systemweiten Zertifikatsspeicher mit den Root-Zertifikaten
zahlreicher öffentlicher CAs.
Der Zertifikatsspeicher in iOS 14 enthält mehr
als 150 als vertrauenswürdig eingestufte Root-Zertifikarte.
Im Hinblick auf zahlreiche Vorfälle in der Vergangenheit wurden
zur Vermeidung von Missbrauchs bereits verschiedene Kontrollinstrumente
wie Certificate Transparency eingeführt. Das Risiko von Social
Engineering zur unbemerkten Einschleusung zusätzlicher CAs
in den Zertifikatsspeicher besteht außerdem weiterhin. Den
CAs sollte daher nicht uneingeschränkt vertraut werden.
Apps verlassen sich aus diesen Gründen immer weniger auf die
Validierung des Betriebssystems und führen diese selbst aus
- das erwartete TLS-Zertifikat oder der öffentliche Schlüssel
werden dazu bereits während der Entwicklung hinterlegt. In
iOS 14 muss der Code der App hierzu nicht mehr angepasst werden:
Apps können die erwarteten Schlüssel dazu einfach in der
zentralen Info.plist Konfigurationsdatei ablegen. Bei allen über
die Standard-API initiierten Verbindungen gleicht iOS dann die Schlüssel
mit der Konfigurationsdatei ab - stimmen sie nicht überein,
so wird der Verbindungsaufbau abgebrochen.
Angriffe auf die Kommunikation können auf diesem Weg, auch
wenn der Angreifer über ein gefälschtes Zertifikat von
einer vertrauenswürdigen CA verfügt, abgewehrt werden.
Bei Android steht ein ähnlicher Mechanismus über die Network
Security Configuration bereits seit Version 7.0 bereit.
(jb, hannover)
(siehe auch: Heise-News-Ticker)
Hannover · EDV-Beratung ·
Linux · Novell · Microsoft · Seminar ·
IT-Consult · Netzwerk · LPIC · CLE
|