SlideShare a Scribd company logo
1 of 47
Macoun
⌘
Network Extensions
Klaus Rodewig und Mark Zimmermann
Professionelle FazialpalmierungExperte
SecureContact Pro
Ablauf
•Bestandteile der NetworkExtensions
•Entwicklungsschritte
•NEHotSpotHelper in Aktion
•Was ändert sich mit iOS 11?
•Sicherheitskritische Betrachtung
Bestandteile der
NetworkExtension
Die einzelnen Komponenten
• PersonalVPN
• Network Tunnel Protocol Client
• On-Device Network Content Filter
• WiFi-Hotspot Authentication 

PersonalVPN
(NEVPNManager API)
•Öffentliche WiFi-Hotspots sind nicht immerVertrauenswürdig, eine
sichere Kommunikation kann über ein persönlichesVPN ermöglicht
werden.
•Die NEVPNManager API bietet Apps die Möglichkeit, eine persönliche
VPN-Konfiguration auf iOS und macOS zu erstellen und zu
verwalten.
•PersonalVPN Konfiguration erfolgt über eine eigene "Captive App".
Ein Regelwerk, zur (De-)Aktivierung derVPNVerbindung, kann
hinterlegt werden.
•Die NETunnelProvider-Familie von APIs erlaubt es iOS- und macOS-
Geräte mit einemVPN-Server zu verbinden, der ein nicht
standardmäßiges Netzwerk-Tunneling-Protokoll verwendet.
•Beispiele
• auf IP Ebene (z.B. UDP Traffic, Paket Tunnel Provider) oder
• auf App Ebene (Layer 3, App Proxy Provider)
•VPN Konfiguration können über MDM Service konfiguriert werden.
•Kooperative Unterstützung von PersonalVPN & Network Tunnel
Protocol Konfigurationen (Prio: Network Tunnel Protocol).
Network Tunnel Protocol Client
(NETunnelProvider API)
•Filtern des Internetzugriffs in lokalen Netzwerken wurde
bisher durch On-Site-Content-Filter oder durch Global
Proxy/VPN Lösungen (aufwändig) umgesetzt.
•Netzwerkinhalte können auf iOS-Geräten dynamisch
gefiltert werden.
•Es wird ein Supervised Gerät benötigt.
•iOS bietet die Anzeige von templatebasierten "Block Pages"
On-Device Network Content Filter
(NEFilterProvider API)
•Mit iOS9 sind „Captive Network Apps“ möglich und bieten
damit eine automatische Einwahl, in (hinterlegte) WiFi
Hotspots.
•Diese bieten 2 Realisierungsarten:
•Anmeldung an Captive Portals
•Anmeldung an passwortgeschützten WiFis
WiFi-Hotspot Authentication 

(NEHotspotHelper API)
Entwicklungsschritte
am Beispiel NEHotspotHelper
Grundlagen derVerwendung
•Entitlements beantragen
•Konfiguration der App
•Registrierung beim App-Start als Helper
•StateMachine verwaltet Zustände
•Beispiel:Anmeldung an einem Captive Portal
Entitlements beantragen
(https://developer.apple.com/contact/network-extension)
Grundlagen derVerwendung
•Entitlements beantragen ✔
•Konfiguration der App
•Registrierung beim App-Start als Helper
•StateMachine verwaltet Zustände
•Beispiel:Anmeldung an einem Captive Portal
Konfiguration der App
AppID im Portal erstellen / ändern
Entitlements in Xcode konfigurieren
Konfiguration der App
Info.plist
The application's Info.plist must include a UIBackgroundModes array containing network-authentication.
Entitlements
The application must set com.apple.developer.networking.HotspotHelper as one of its entitlements.The
value of the entitlement is a boolean set to true.
Konfiguration der App
Konfiguration der App
Provisionsprofil mit Entitlement
Grundlagen derVerwendung
•Entitlements beantragen ✔
•Konfiguration der App ✔
•Registrierung beim App-Start als Helper
•StateMachine verwaltet Zustände
•Beispiel:Anmeldung an einem Captive Portal
Registrierung als HotspotHelper
let options = [

kNEHotspotHelperOptionDisplayName: NSString(string: "SOME NAME")

]
let success = NEHotspotHelper.register(options: options, queue:
DispatchQueue.main, handler: processHotspotHelperCommand)
Registrierung als HotspotHelper
let options = [

kNEHotspotHelperOptionDisplayName: NSString(string: "SOME NAME")

]
let success = NEHotspotHelper.register(options: options, queue:
DispatchQueue.main, handler: processHotspotHelperCommand)
Grundlagen derVerwendung
•Entitlements beantragen ✔
•Konfiguration der App ✔
•Registrierung beim App-Start als Helper ✔
•StateMachine verwaltet Zustände
•Beispiel:Anmeldung an einem Captive Portal
State Machine
@available(iOS 9.0, *)
public enum NEHotspotHelperCommandType : Int {
case none
case filterScanList
case evaluate
case authenticate
case presentUI
case maintain
case logoff
}
Anfragen bearbeiten
func bind(to command: NEHotspotHelperCommand) -> RequestBuilder {
request.bind(to: command)
return self
}
Netzwerkinterface setzen
public enum NEHotspotHelperConfidence : Int {

case none

case low

case high

}
Confidence setzen
State Machine
Weitere Übergänge sind möglich
Speziell:Von fast allen Status kann man zu Fehler kommen
Inaktiv
Prüfung Betrieb
Anmeldung Angemeldet
FehlerUI Anzeige
WLAN ausgewählt System hat sich Zuständigkeit 

gemerkt (Cache)
Fehlerfall
Kein Captive-Protal 

vorhanden
Anmeldung nötig
Erfolg
Fehlerfall
Fehlerfall
Captive Portal 

vorhanden
Anwender 

Interaktion

notwendig
Erfolg
Timer (300ms) zur
Aufrechterhaltung der
Verbindung (optional)
Erfolg
NichtunterstütztesNetzwerk
Grundlagen derVerwendung
•Entitlements beantragen ✔
•Konfiguration der App ✔
•Registrierung beim App-Start als Helper ✔
•StateMachine verwaltet Zustände ✔
•Beispiel:Anmeldung an einem Captive Portal
Login beim Captive Portal
GET http://captive.apple.com
Redirect auf Loginseite -> Parameter auslesen
Anmeldeseite aufrufen
Warten nach Anmeldung
Demo
Was ändert sich mit iOS 11?
Neue APIs
•DNS Proxy App Extension
•Hotspot Configuration
•Mit iOS 11 erhält die Extension alle DNS Anfragen zur weiteren
Verarbeitung und kann eigene DNS-Resolver-Betreiber aktivieren
•Unterstützt 2Verfahren
•DNS über HTTP

Beispieleinsatz: Zugriffe mit ständig wechselnder IP-Adresse können können trotzdem
einem DNS Namen entsprechen (siehe dynamischem DNS Anbieter)
•DNS über TLS

Beispieleinsatz: DNS-Anfragen geben einen Schatz an Metadaten preis, aus denen zum
Beispiel DNS-Resolver-Betreiber einiges über dasVerhalten eines Nutzers auslesen
können:Welche Seiten besucht er im Internet, welche Mail-Server verwendet er und von
wem bezieht er gerade den Schlüssel für die nachfolgende verschlüsselte Kommunikation.
DNS über TLS adressiert dies.
DNS Proxy App Extension
(NEDNSProxyProvider)
•Mithilfe dieser App-Extension ist eine App in der Lage mit einem
separaten WLAN-Router/Gerät temporären oder permanent Kontakt
aufzunehmen.
•Extension unterstützt zur Authentifizierung

Open,WEP,WPA, EAP und Hotspot 2.0
•Einsatzbeispiel: AppVerbindet sich per WIFI mit einer Kamera
Hotspot Configuration 

(NEHotSpotConfiguration)
Sicherheitskritische Betrachtung
🤡 Spaß mit HotSpots 🤡
f
#
Datensammlung
•Die nette App von nebenan:
Was kann schon passieren ?
Datensammlung
•Die nette App von nebenan:Was kann schon passieren ?
• 🤡 Danke an die 45sek Rechenzeit in der StateMachine: filterScanList
und den reichhaltigen Informationen…
Datensammlung
•Die nette App von nebenan:Was kann schon passieren ?
• 🤡 Danke an die 45sek Rechenzeit in der StateMachine: filterScanList
•Moment, hätte ich nicht „gewarnt“ werden müssen ?
Datensammlung
•Die nette App von nebenan:Was kann schon passieren ?
• 🤡 Danke an die 45sek Rechenzeit in der StateMachine: filterScanList
•Moment, hätte ich nicht „gewarnt“ werden müssen ? 

Ja schon … aber gibt es nicht ! 🤡
Datensammlung
•Die nette App von nebenan:Was kann schon passieren ?
• 🤡 Danke an die 45sek Rechenzeit in der StateMachine: filterScanList
•Moment, hätte ich nicht „gewarnt“ werden müssen ? 

Ja schon … aber Nein ! 🤡
•…dann Mappen wir das ganze, was im 

Hintergrund geloggt wird, einfach mal 

auf eine Karte…. 🤡
Datensammlung
•Alleine im Hotel:Was kann schon passieren ?
GÄSTE ZUGANG
LOGIN
Raum Nummer:
Nachname
HOTEL
•Alleine im Hotel:Was kann schon passieren ?
•…mit ein wenig Analyse (Google Chrome)
Form item: “last_name“ = “NACHNAME“
Form item: “room“ = “000“
Form item: “submit“ = “Login“
Datensammlung
•Alleine im Hotel:Was kann schon passieren ?
•…mit ein wenig Analyse (Google Chrome)
•…🤡
Nachname Zimmer
Müller 265 192 187
Schmidt 284 170
Fischer 179 155
Meyer 161
Becker 248 173
Schulz 221
Schäfer -
Koch -
...
Köhler 137
Schröder 128
...
Störung der Kommunikation
•Die nette App von nebenan (noch eine andere): 

Was kann schon passieren ?
Störung der Kommunikation
•Die nette App von nebenan (noch eine andere): 

Was kann schon passieren ?
• 🤡 Danke an die StateMachine: authenticate
•Meldet der App-Code in der StateMachine, einen
erfolgreichen Login, kommt es zu einem invaliden
Netzwerkzustand (kein Internetzugang, dennoch
WLAN „an")
Fragen?
Vielen Dank
Macoun
⌘

More Related Content

Similar to iOS Network Extensions

Android Apps mit Xamarin entwickeln
Android Apps mit Xamarin entwickelnAndroid Apps mit Xamarin entwickeln
Android Apps mit Xamarin entwickelnAndré Krämer
 
Server-Side Google Tag Manager: Was, wie und warum
Server-Side Google Tag Manager: Was, wie und warumServer-Side Google Tag Manager: Was, wie und warum
Server-Side Google Tag Manager: Was, wie und warum📊 Markus Baersch
 
HTML5 und node.js Grundlagen
HTML5 und node.js GrundlagenHTML5 und node.js Grundlagen
HTML5 und node.js GrundlagenMayflower GmbH
 
Desktop Containers 12: Next Generation of ZENworks Application Virtualization
Desktop Containers 12: Next Generation of ZENworks Application VirtualizationDesktop Containers 12: Next Generation of ZENworks Application Virtualization
Desktop Containers 12: Next Generation of ZENworks Application VirtualizationGWAVA
 
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...Peter Hecker
 
Apache DeviceMap - Web-Dev-BBQ Stuttgart
Apache DeviceMap - Web-Dev-BBQ StuttgartApache DeviceMap - Web-Dev-BBQ Stuttgart
Apache DeviceMap - Web-Dev-BBQ StuttgartWerner Keil
 
Windows Azure Mobile Services
Windows Azure Mobile ServicesWindows Azure Mobile Services
Windows Azure Mobile ServicesJan Hentschel
 
Ionic 2 - Hybridapps auf Steroiden
Ionic 2 - Hybridapps auf SteroidenIonic 2 - Hybridapps auf Steroiden
Ionic 2 - Hybridapps auf SteroidenHendrik Lösch
 
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...Peter Hecker
 
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET CoreHands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET CoreGregor Biswanger
 
Integration von Security-Checks in die CI-Pipeline
Integration von Security-Checks in die CI-PipelineIntegration von Security-Checks in die CI-Pipeline
Integration von Security-Checks in die CI-PipelineOPEN KNOWLEDGE GmbH
 
Pimp My SharePoint - Performanceprobleme vorbeugen, analysieren und beheben
Pimp My SharePoint - Performanceprobleme vorbeugen, analysieren und behebenPimp My SharePoint - Performanceprobleme vorbeugen, analysieren und beheben
Pimp My SharePoint - Performanceprobleme vorbeugen, analysieren und behebenDavid Schneider
 
Windows 8 für Entwickler
Windows 8 für EntwicklerWindows 8 für Entwickler
Windows 8 für EntwicklerJan Hentschel
 
FMK2019 FileMaker Data API mit Node.js nutzen by Adam Augustin
FMK2019 FileMaker Data API mit Node.js nutzen by Adam AugustinFMK2019 FileMaker Data API mit Node.js nutzen by Adam Augustin
FMK2019 FileMaker Data API mit Node.js nutzen by Adam AugustinVerein FM Konferenz
 
Mehr Sicherheit durch Automatisierung
Mehr Sicherheit durch AutomatisierungMehr Sicherheit durch Automatisierung
Mehr Sicherheit durch AutomatisierungOPEN KNOWLEDGE GmbH
 

Similar to iOS Network Extensions (20)

SETapp Präsentation
SETapp PräsentationSETapp Präsentation
SETapp Präsentation
 
Android Apps mit Xamarin entwickeln
Android Apps mit Xamarin entwickelnAndroid Apps mit Xamarin entwickeln
Android Apps mit Xamarin entwickeln
 
Server-Side Google Tag Manager: Was, wie und warum
Server-Side Google Tag Manager: Was, wie und warumServer-Side Google Tag Manager: Was, wie und warum
Server-Side Google Tag Manager: Was, wie und warum
 
HTML5 und node.js Grundlagen
HTML5 und node.js GrundlagenHTML5 und node.js Grundlagen
HTML5 und node.js Grundlagen
 
Desktop Containers 12: Next Generation of ZENworks Application Virtualization
Desktop Containers 12: Next Generation of ZENworks Application VirtualizationDesktop Containers 12: Next Generation of ZENworks Application Virtualization
Desktop Containers 12: Next Generation of ZENworks Application Virtualization
 
BizSpark goes Cloud
BizSpark goes CloudBizSpark goes Cloud
BizSpark goes Cloud
 
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
 
Hdc2012 cordova-präsi
Hdc2012 cordova-präsiHdc2012 cordova-präsi
Hdc2012 cordova-präsi
 
Apache DeviceMap - Web-Dev-BBQ Stuttgart
Apache DeviceMap - Web-Dev-BBQ StuttgartApache DeviceMap - Web-Dev-BBQ Stuttgart
Apache DeviceMap - Web-Dev-BBQ Stuttgart
 
Windows Azure Mobile Services
Windows Azure Mobile ServicesWindows Azure Mobile Services
Windows Azure Mobile Services
 
Ionic 2 - Hybridapps auf Steroiden
Ionic 2 - Hybridapps auf SteroidenIonic 2 - Hybridapps auf Steroiden
Ionic 2 - Hybridapps auf Steroiden
 
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
 
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET CoreHands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
 
Integration von Security-Checks in die CI-Pipeline
Integration von Security-Checks in die CI-PipelineIntegration von Security-Checks in die CI-Pipeline
Integration von Security-Checks in die CI-Pipeline
 
Pimp My SharePoint - Performanceprobleme vorbeugen, analysieren und beheben
Pimp My SharePoint - Performanceprobleme vorbeugen, analysieren und behebenPimp My SharePoint - Performanceprobleme vorbeugen, analysieren und beheben
Pimp My SharePoint - Performanceprobleme vorbeugen, analysieren und beheben
 
Windows 8 für Entwickler
Windows 8 für EntwicklerWindows 8 für Entwickler
Windows 8 für Entwickler
 
GWT – Google Web Toolkit in der Praxis
GWT – Google Web Toolkit in der PraxisGWT – Google Web Toolkit in der Praxis
GWT – Google Web Toolkit in der Praxis
 
FMK2019 FileMaker Data API mit Node.js nutzen by Adam Augustin
FMK2019 FileMaker Data API mit Node.js nutzen by Adam AugustinFMK2019 FileMaker Data API mit Node.js nutzen by Adam Augustin
FMK2019 FileMaker Data API mit Node.js nutzen by Adam Augustin
 
Mehr Sicherheit durch Automatisierung
Mehr Sicherheit durch AutomatisierungMehr Sicherheit durch Automatisierung
Mehr Sicherheit durch Automatisierung
 
Serverless: The Missing Manual
Serverless: The Missing ManualServerless: The Missing Manual
Serverless: The Missing Manual
 

iOS Network Extensions

  • 2. Network Extensions Klaus Rodewig und Mark Zimmermann
  • 4. Ablauf •Bestandteile der NetworkExtensions •Entwicklungsschritte •NEHotSpotHelper in Aktion •Was ändert sich mit iOS 11? •Sicherheitskritische Betrachtung
  • 6. Die einzelnen Komponenten • PersonalVPN • Network Tunnel Protocol Client • On-Device Network Content Filter • WiFi-Hotspot Authentication 

  • 7. PersonalVPN (NEVPNManager API) •Öffentliche WiFi-Hotspots sind nicht immerVertrauenswürdig, eine sichere Kommunikation kann über ein persönlichesVPN ermöglicht werden. •Die NEVPNManager API bietet Apps die Möglichkeit, eine persönliche VPN-Konfiguration auf iOS und macOS zu erstellen und zu verwalten. •PersonalVPN Konfiguration erfolgt über eine eigene "Captive App". Ein Regelwerk, zur (De-)Aktivierung derVPNVerbindung, kann hinterlegt werden.
  • 8. •Die NETunnelProvider-Familie von APIs erlaubt es iOS- und macOS- Geräte mit einemVPN-Server zu verbinden, der ein nicht standardmäßiges Netzwerk-Tunneling-Protokoll verwendet. •Beispiele • auf IP Ebene (z.B. UDP Traffic, Paket Tunnel Provider) oder • auf App Ebene (Layer 3, App Proxy Provider) •VPN Konfiguration können über MDM Service konfiguriert werden. •Kooperative Unterstützung von PersonalVPN & Network Tunnel Protocol Konfigurationen (Prio: Network Tunnel Protocol). Network Tunnel Protocol Client (NETunnelProvider API)
  • 9. •Filtern des Internetzugriffs in lokalen Netzwerken wurde bisher durch On-Site-Content-Filter oder durch Global Proxy/VPN Lösungen (aufwändig) umgesetzt. •Netzwerkinhalte können auf iOS-Geräten dynamisch gefiltert werden. •Es wird ein Supervised Gerät benötigt. •iOS bietet die Anzeige von templatebasierten "Block Pages" On-Device Network Content Filter (NEFilterProvider API)
  • 10. •Mit iOS9 sind „Captive Network Apps“ möglich und bieten damit eine automatische Einwahl, in (hinterlegte) WiFi Hotspots. •Diese bieten 2 Realisierungsarten: •Anmeldung an Captive Portals •Anmeldung an passwortgeschützten WiFis WiFi-Hotspot Authentication 
 (NEHotspotHelper API)
  • 12. Grundlagen derVerwendung •Entitlements beantragen •Konfiguration der App •Registrierung beim App-Start als Helper •StateMachine verwaltet Zustände •Beispiel:Anmeldung an einem Captive Portal
  • 14. Grundlagen derVerwendung •Entitlements beantragen ✔ •Konfiguration der App •Registrierung beim App-Start als Helper •StateMachine verwaltet Zustände •Beispiel:Anmeldung an einem Captive Portal
  • 15. Konfiguration der App AppID im Portal erstellen / ändern Entitlements in Xcode konfigurieren
  • 16. Konfiguration der App Info.plist The application's Info.plist must include a UIBackgroundModes array containing network-authentication. Entitlements The application must set com.apple.developer.networking.HotspotHelper as one of its entitlements.The value of the entitlement is a boolean set to true.
  • 20. Grundlagen derVerwendung •Entitlements beantragen ✔ •Konfiguration der App ✔ •Registrierung beim App-Start als Helper •StateMachine verwaltet Zustände •Beispiel:Anmeldung an einem Captive Portal
  • 21. Registrierung als HotspotHelper let options = [
 kNEHotspotHelperOptionDisplayName: NSString(string: "SOME NAME")
 ] let success = NEHotspotHelper.register(options: options, queue: DispatchQueue.main, handler: processHotspotHelperCommand)
  • 22. Registrierung als HotspotHelper let options = [
 kNEHotspotHelperOptionDisplayName: NSString(string: "SOME NAME")
 ] let success = NEHotspotHelper.register(options: options, queue: DispatchQueue.main, handler: processHotspotHelperCommand)
  • 23. Grundlagen derVerwendung •Entitlements beantragen ✔ •Konfiguration der App ✔ •Registrierung beim App-Start als Helper ✔ •StateMachine verwaltet Zustände •Beispiel:Anmeldung an einem Captive Portal
  • 24. State Machine @available(iOS 9.0, *) public enum NEHotspotHelperCommandType : Int { case none case filterScanList case evaluate case authenticate case presentUI case maintain case logoff }
  • 25. Anfragen bearbeiten func bind(to command: NEHotspotHelperCommand) -> RequestBuilder { request.bind(to: command) return self } Netzwerkinterface setzen public enum NEHotspotHelperConfidence : Int {
 case none
 case low
 case high
 } Confidence setzen
  • 26. State Machine Weitere Übergänge sind möglich Speziell:Von fast allen Status kann man zu Fehler kommen Inaktiv Prüfung Betrieb Anmeldung Angemeldet FehlerUI Anzeige WLAN ausgewählt System hat sich Zuständigkeit 
 gemerkt (Cache) Fehlerfall Kein Captive-Protal 
 vorhanden Anmeldung nötig Erfolg Fehlerfall Fehlerfall Captive Portal 
 vorhanden Anwender 
 Interaktion
 notwendig Erfolg Timer (300ms) zur Aufrechterhaltung der Verbindung (optional) Erfolg NichtunterstütztesNetzwerk
  • 27. Grundlagen derVerwendung •Entitlements beantragen ✔ •Konfiguration der App ✔ •Registrierung beim App-Start als Helper ✔ •StateMachine verwaltet Zustände ✔ •Beispiel:Anmeldung an einem Captive Portal
  • 28. Login beim Captive Portal GET http://captive.apple.com Redirect auf Loginseite -> Parameter auslesen Anmeldeseite aufrufen Warten nach Anmeldung
  • 29. Demo
  • 30. Was ändert sich mit iOS 11?
  • 31. Neue APIs •DNS Proxy App Extension •Hotspot Configuration
  • 32. •Mit iOS 11 erhält die Extension alle DNS Anfragen zur weiteren Verarbeitung und kann eigene DNS-Resolver-Betreiber aktivieren •Unterstützt 2Verfahren •DNS über HTTP
 Beispieleinsatz: Zugriffe mit ständig wechselnder IP-Adresse können können trotzdem einem DNS Namen entsprechen (siehe dynamischem DNS Anbieter) •DNS über TLS
 Beispieleinsatz: DNS-Anfragen geben einen Schatz an Metadaten preis, aus denen zum Beispiel DNS-Resolver-Betreiber einiges über dasVerhalten eines Nutzers auslesen können:Welche Seiten besucht er im Internet, welche Mail-Server verwendet er und von wem bezieht er gerade den Schlüssel für die nachfolgende verschlüsselte Kommunikation. DNS über TLS adressiert dies. DNS Proxy App Extension (NEDNSProxyProvider)
  • 33. •Mithilfe dieser App-Extension ist eine App in der Lage mit einem separaten WLAN-Router/Gerät temporären oder permanent Kontakt aufzunehmen. •Extension unterstützt zur Authentifizierung
 Open,WEP,WPA, EAP und Hotspot 2.0 •Einsatzbeispiel: AppVerbindet sich per WIFI mit einer Kamera Hotspot Configuration 
 (NEHotSpotConfiguration)
  • 35. Datensammlung •Die nette App von nebenan: Was kann schon passieren ?
  • 36. Datensammlung •Die nette App von nebenan:Was kann schon passieren ? • 🤡 Danke an die 45sek Rechenzeit in der StateMachine: filterScanList und den reichhaltigen Informationen…
  • 37. Datensammlung •Die nette App von nebenan:Was kann schon passieren ? • 🤡 Danke an die 45sek Rechenzeit in der StateMachine: filterScanList •Moment, hätte ich nicht „gewarnt“ werden müssen ?
  • 38. Datensammlung •Die nette App von nebenan:Was kann schon passieren ? • 🤡 Danke an die 45sek Rechenzeit in der StateMachine: filterScanList •Moment, hätte ich nicht „gewarnt“ werden müssen ? 
 Ja schon … aber gibt es nicht ! 🤡
  • 39. Datensammlung •Die nette App von nebenan:Was kann schon passieren ? • 🤡 Danke an die 45sek Rechenzeit in der StateMachine: filterScanList •Moment, hätte ich nicht „gewarnt“ werden müssen ? 
 Ja schon … aber Nein ! 🤡 •…dann Mappen wir das ganze, was im 
 Hintergrund geloggt wird, einfach mal 
 auf eine Karte…. 🤡
  • 40. Datensammlung •Alleine im Hotel:Was kann schon passieren ? GÄSTE ZUGANG LOGIN Raum Nummer: Nachname HOTEL
  • 41. •Alleine im Hotel:Was kann schon passieren ? •…mit ein wenig Analyse (Google Chrome) Form item: “last_name“ = “NACHNAME“ Form item: “room“ = “000“ Form item: “submit“ = “Login“
  • 42. Datensammlung •Alleine im Hotel:Was kann schon passieren ? •…mit ein wenig Analyse (Google Chrome) •…🤡 Nachname Zimmer Müller 265 192 187 Schmidt 284 170 Fischer 179 155 Meyer 161 Becker 248 173 Schulz 221 Schäfer - Koch - ... Köhler 137 Schröder 128 ...
  • 43. Störung der Kommunikation •Die nette App von nebenan (noch eine andere): 
 Was kann schon passieren ?
  • 44. Störung der Kommunikation •Die nette App von nebenan (noch eine andere): 
 Was kann schon passieren ? • 🤡 Danke an die StateMachine: authenticate •Meldet der App-Code in der StateMachine, einen erfolgreichen Login, kommt es zu einem invaliden Netzwerkzustand (kein Internetzugang, dennoch WLAN „an")