Um den Standort des ME möglichst schnell und genau mittels GPS zu ermitteln, benötigen Smartphones die Unterstützung (assistance) durch den Mobilfunk Provider oder einem Positioning Server.
Zum einen kann dies direkt durch die umliegenden Basis Stationen erfolgen, indem die Daten von momentan sichtbaren GPS Satelliten übermittelt werden.
Eine andere Methode ist die Abfrage über die Datenverbindung bei einem Positioning Server wie z.B. Google (SUPL_HOST=supl.google.com), Nokia (SUPL_HOST=supl.nokia.com), Sony (SUPL_HOST=supl.sonyericsson.com) oder auch bei der Telekom (SUPL_HOST=10.176.29.225)
Hierbei werden Standortdaten in Form der Cell-ID an den Server übermittelt. Dieser sendet dann die sog. Almanac und Ephemeris Daten zurück an das Mobiltelefon. Ephemeris beinhaltet die Positionen der gerade sichtbaren Satelliten. Almanac beinhaltet Informationen über weitere Satelliten und dessen „Doppler Shift“.
Diese Informationen müssen dann nicht vom GPS Receiver empfangen und verarbeitet werden, was bis zu 15 min. dauern könnte.
Ralf-Philipp Weinmann demonstriert einen Angriff mittels SUPL (Secure User Plane Location) und A-GPS.
Assisted GPS: https://sites.google.com/site/owaisagps/home
CellTower Locator: http://www.cell2gps.com
Google Patent (GPS Almanac, Ephemeris Server/Client): http://www.google.de/patents/WO2005006593A1?cl=en
Patent „Method and system for providing assistance data for a-gps location of handsets in wireless networks“: http://www.google.com/patents/US20090146872
Patent „Method for providing satellite orbit ephemeris, server, and positioning system“: http://www.google.com/patents/US8446315
Ralf-Philipp Weinmann (Scaling up baseband attacks with SUPL (Secure User Plane Location) and A-GPS) https://rpw.sh/slides/rpw-bhus2012-supl.pdf
Bei Android stehen die Verbindungsdaten in der Datei: /system/etc/gps.conf
Bei Google gibt es zwei Einträge für den Port:
SUPL_SECURE_PORT=7275 (oder 7276)
SUPL_NO_SECURE_PORT=3425
Für die sichere Verbindung gibt es ein Zertifikat unter: /system/etc/SuplRootCert
Die sichere Verbindung mit TLS SUPL wird jedoch meist nur von Stock (Vendor) ROMs unterstützt. Custom ROMs benutzen meistens die unverschlüsselte Verbindung
How to create a SuplRootCert for supl.google.com
https://blog.cryptomilk.org/2012/07/24/how-to-create-a-suplrootcert-for-supl-google-com/