StreetScan

Aus Hacksaar Wiki
Wechseln zu: Navigation, Suche

StreetScan

TODO: Read this: http://www.golem.de/news/geolocation-mozilla-verraet-wo-du-bist-1310-102405.html Can we support this?

Beschreibung

Das StreetScan Projekt ist ein “do it yourself Wardriving” Werkzeug, bei dem aber nicht das Knacken von WLANs, sondern die Kartographierung und Auswertung der Funknetze-Empfangsdaten nach sozialen Gesichtspunkten im Vordergrund stehen. Die genutzte Hardware besteht aus einem programmierbaren Mikrocontroller mit angeschlossenem GPS-Satelliten-Positionserfassungsystem, WLAN Modul mit integrierter Antenne und einem Ein-/Ausgabe-Board mit Tastern und LCD Bildschirm. Der programmierte Mikrocontroller läuft autonom versorgt beispielsweise durch die Zigarettenanzünder-Stromversorgung, listet permanent alle verfügbaren WLAN Netze mit den aktuellen Position anhand GPS-Position auf und speichert diese Informationen auf einer Mikro-SD-Karte zur späteren Auswertung. Mit den Ergebnissen kann man versuchen demographische Korrelationen zwischen der Technisierung einer Umgebung (anhand WLANs) und der vermuteten sozialen Gegebenheiten zu erreichen. Heat-Maps mit Häufigkeiten von WLAN-Netzen können als Overlay über der regionalen Karte veröffentlicht (und ggf. den Medien weitergegeben) werden und auch die besten WLAN-Namen den Medien zur Abstimmung der kreativsten WLAN-Benennnungen weitergegeben werden. Detailliertere Informationen Hardware: -FEZ Domino Mikrocontroller v1.1 von GHI Electronics

http://www.ghielectronics.com/catalog/product/133

FEZ DOMINO .NET CONTROLLER

  • Arduino-Pin-kompatibel
  • .NET Microframework
  • 72 MHz NXP ARM
  • 32bit
  • Mikro-SD-Slot
  • USB-Host Unterstützung
  • SPI
  • I2C
  • 4x UART inkl. 10-pin UEXT
  • FAT file system
  • Threading
  • GPIO, PWM, ADC, DAC

-RedFly WIFI Shield von Watterott basierend auf Redpine RS9110-N-11-22 Modul

http://redpinesignals.com/Products/Modules/Connect-io-n/Wireless_Device_Server/RS9110-N-11-22.html
http://www.watterott.net/projects/redfly-shield

REDFLY WLAN SHIELD

  • IEEE 802.11b/g/n/i 2.4GHz
  • Sicherheit: AES, WEP, WPA, WPA2 – PSK
  • Ad-hoc (IBSS) und Infrastructure-Modus (bei Ad-hoc nur WEP Verschlüsselung)
  • Netzwerksuche mit Anzeige der Signalstärke
  • Integrierter WiFi und IPv4-Stack (TCP, UDP, DHCP, DNS)
  • Unterstützt bis zu 8 Sockets zur gleichen Zeit
  • 3V3 – 5V tolerante IOs
  • Stromverbrauch: Standby <10mA, Datenempfang 140mA, Datenübertragung 150mA

-LCD Keypad Shield

http://www.nuelectronics.com/estore/index.php?main_page=project_lcd

LCD 2X16 ZEICHEN MIT 5 BUTTONS

  • white character blue backlight LCD
  • 5 pushbuttons
  • SPI Verbindung

-MOD GPS Empfänger von Olimex

http://www.olimex.com/dev/mod-gps.html

GPS EMPFÄNGER MIT UEXT ANSCHLUSS

  • SiRF Star III Chipsatz
  • GPS Protocol NMEA0183
  • Interface RS232 CMOS, 19200 bps, 8N1
  • UEXT connector

-Netzteil für Zigarettenanzünder “TomTom Go Charger 1.2A”

  • 12V -> 5V, 1.2A
  • abgewinkelter Mini USB Stecker

Software: Die genutzte Software unterteilt sich in Firmware auf der Hardware zur Datenerfassung und Auswertesoftware auf dem Rechner zur Analyse und Aufbereitung der Scan-Daten. Die Programmierung des Fez Domino erfolgt unter Visual Studio 2010 (z.B. mit der kostenlosen “Express”-Edition) in C# auf Basis des .NET Microframeworks. Dieses Subset des vollen .NET Frameworks ermöglicht C#-Programmierern einen schnellen Einstieg in die Mikrocontrollerprogrammierung mit bekannten Tools. Vor allem unterstützt das System das direkte Debugging von Programmcode während der Ausführung auf dem Controller auch bei der Nutzung von Multithreading. Das ist doch ein großer Vorteil gegenüber dem Debugging anhand seriellen Ausgaben bei einem Standard-Arduino-System. Die Firmware nutzt Bibliotheken von GHI für grundsätzliche Hardware-Features (z.B. FAT-Dateisystem und Ansteuerung der Mikro-SD-Karte) und weitere Bibliotheken für GPS-Auslesen (basierend auf http://code.tinyclr.com/project/316/extended-ghi-gps-driver/ , by Colin Raaijmakers) und die Ansteuerung des RedFly Shields (basierend auf http://code.tinyclr.com/project/312/redfly-wifi-shield-driver/ , by Richard9). Die letzten beiden Bibliotheken wurden jedoch nochmals eigens gepatched, um im WLAN-Code Abstürze beim Scannen nach WLANs zu verhindern, wenn unsichtbare WLANs ohne hinterlegte Passphrase erfasst werden. Die GPS Bibliothek wurde um das gezielte Auslesen der Position mit GPS-Sekunden-Genauigkeit angepasst. Als graphische Ausgabe wird ein Anzeigemenü auf dem LCD Shield genutzt, das folgende Informationen anzeigen kann: -Scan-Übersicht: laufende Nummer des Scans, ob GPS Positionen verfügbar sind und wie viele WLANs empfangen werden -GPS Info: Anzeige der exakten GPS Position in minutengenauen N+E Koordinaten -WLAN Setup: Anzeige aller empfangenen WLAN-SSID-Namen Durch die verschiedenen Menüs kann mit den Cursor-Tasten des LCD Shield gewechselt werden. Der Ablauf der Firmware ist grob skizziert Folgender: -Initialisierung der SD-Karte -Initialisierung des GPS -Initialisierung des WLAN Shields -While-Loop zur Erfassung der Daten und Änderung der LCD-Ausgabe

 -WLAN-Scan aller verfügbaren Netze
 -Aktualisierung der GPS-Position
 -Speicherung der aktualisierten Daten auf Mikro-SD-Karte: Uhrzeit seit Einschalten, GPS-Position, Gesamtzahl der erfassten WLANs, zu jedem WLAN der SSID-Name, Empfangsstärke in -dB, Verschlüsselungsmodus
 -Test, ob der Anwender Tasten des Shields gedrückt hat, um die angezeigten Infos durchzuwechseln
 -Ausgabe des Menüs auf dem LCD

Auswertung: Zur Auswertung kann die Mikro-SD-Karte mit Adapter am Rechner ausgelesen werden. Die gespeicherten Informationen liegen im Textformat (ASCII) vor und können danach beliebig ausgewertet werden. Der Inhalt jeder Zeile des Logfiles ist wie folgt: Zeit seit Modulstart,GPS-Nord-Stunden GPS-Nord-Minuten mit Nachkommastellen,Anzahl der WLANs , #-Zeichen getrennt für jedes WLAN: Name:Empfangsstärke in -dB:Verschlüsselungsmethode als ID konkret mal auseinandergenommen: 0:14:27.175 , 49 13.4819 N – 007 00.0291E , 2 , #FRITZ!Box Fon WLAN 7112:86:2 #asa-WLAN:86:2 Ein Auszug aus einem Logfile sieht beispielsweise wie folgt aus: 0:14:27.175,4913.4819N – 00700.0291E,1,#FRITZ!Box Fon WLAN 7112:86:2 0:14:28.752,4913.4830N – 00700.0290E,1,#asa-WLAN:86:2 0:14:30.341,4913.4824N – 00700.0271E,1,#asa-WLAN:90:2 0:14:31.951,4913.4820N – 00700.0198E,2,#Milchbehaelter:86:2#asa-WLAN:86:2 0:14:33.548,4913.4822N – 00700.0148E,1,#FLYWEIGHT-PC_Netzwerk:94:1 0:14:35.154,4913.4873N – 00700.0058E,1,#FLYWEIGHT-PC_Netzwerk:86:1 0:14:36.810,4913.4947N – 00659.9990E,4,#WLAN-227862:82:2#Mary&KayCee:84:2#whitebox2:86:2#WLAN-JUSAJE:94:2 0:14:38.509,4913.4988N – 00659.9958E,6,#WLAN-064A14:86:2#whitebox2:86:2#Mary&KayCee:86:2#Wireless:90:3#whitedream:92:3#WLAN-JUSAJE:92:2 0:14:40.245,4913.5071N – 00659.9896E,6,#whitedream:84:3#whitebox2:86:2#WLAN-064A14:86:2#Mary&KayCee:90:2#Wireless:92:3#PiEytsch:92:2 0:14:41.967,4913.5142N – 00659.9836E,7,#whitebox2:70:2#Mary&KayCee:84:2#WLAN-54D864:90:2#PiEytsch:90:2#WLAN-064A14:92:2#Wireless:92:3#whitedream:94:3 0:14:43.645,4913.5171N – 00659.9807E,4,#whitebox2:76:2#Subn3t:90:2#WLAN-064A14:92:2#Wireless:94:3 0:14:45.275,4913.5210N – 00659.9793E,2,#PiEytsch:92:2#Wireless:94:3 0:14:46.937,4913.5223N – 00659.9806E,4,#WLAN-54D864:82:2#whitebox2:82:2#PiEytsch:90:2#Wireless:92:3 0:14:48.591,4913.5224N – 00659.9808E,4,#Subn3t:84:2#whitedream:86:3#WLAN-54D864:90:2#Wireless:92:3 0:14:50.308,4913.5225N – 00659.9808E,6,#whitebox2:82:2#Mary&KayCee:82:2#PiEytsch:90:2#WLAN-064A14:92:2#Wireless:92:3#whitedream:94:3 0:14:51.964,4913.5225N – 00659.9808E,4,#Wireless:84:3#whitedream:84:3#PiEytsch:88:2#whitebox2:92:2 0:14:53.611,4913.5225N – 00659.9808E,3,#whitebox2:82:2#whitedream:86:3#PiEytsch:90:2 0:14:55.301,4913.5225N – 00659.9808E,3,#whitedream:84:3#WLAN-064A14:90:2#PiEytsch:90:2 0:14:56.974,4913.5225N – 00659.9808E,5,#whitebox2:86:2#Subn3t:86:2#whitedream:86:3#WLAN-064A14:92:2#PiEytsch:92:2 0:14:58.656,4913.5225N – 00659.9808E,6,#whitebox2:84:2#Subn3t:84:2#Mary&KayCee:84:2#whitedream:86:3#WLAN-064A14:90:2#PiEytsch:92:2 0:15:0.436,4913.5225N – 00659.9808E,7,#whitebox2:82:2#Subn3t:84:2#Mary&KayCee:86:2#whitedream:86:3#Wireless:86:3#WLAN-064A14:90:2#PiEytsch:92:2 0:15:2.217,4913.5225N – 00659.9808E,8,#whitebox2:82:2#Subn3t:84:2#Mary&KayCee:84:2#WLAN-54D864:86:2#whitedream:86:3#Wireless:86:3#WLAN-064A14:92:2#PiEytsch:92:2 0:15:3.970,4913.5225N – 00659.9808E,8,#whitebox2:82:2#WLAN-54D864:84:2#Mary&KayCee:84:2#Subn3t:86:2#whitedream:86:3#Wireless:86:3#PiEytsch:90:2#WLAN-064A14:92:2 0:15:5.680,4913.5225N – 00659.9808E,6,#whitebox2:82:2#Mary&KayCee:84:2#Wireless:86:3#PiEytsch:90:2#WLAN-064A14:92:2#whitedream:94:3 0:15:7.347,4913.5225N – 00659.9808E,4,#whitebox2:82:2#whitedream:86:3#WLAN-064A14:90:2#PiEytsch:90:2 0:15:9.30,4913.5225N – 00659.9808E,5,#whitebox2:78:2#Mary&KayCee:84:2#Subn3t:86:2#PiEytsch:86:2#WLAN-064A14:90:2 Für gewisse Auswertungen wird das Tool “Street Scan Analyzer” programmiert:

STREET SCAN ANALYZER ZUR AUSWERTUNG DER WARDRIVING MESSDATEN

  • Ausgabe einer Liste aller Funk-Netzwerk-Namen (ohne Wiederholung in alphabetischer Reihenfolge), um eine Wahl der besten WLAN-Namen durchführen zu können.
  • Erstellung eines Overlays für eine Karte, die z.B. in Google Earth die absolute Häufigkeit von WLAN-Netzen als Heatmap (farbkodierte Anzeige der WLAN-Anzahl lokal aufgelöst) exportiert.
  • Auswertung der Verteilung von Verschlüsselungen
  • Auswertung wie viele Leute Ihren Accesspoint per Namen personalisieren oder die Default-SSID lassen
  • weitere Ideen sind noch gesucht

Eine Möglichkeit für ein solches Overlay wäre eine XML-Datei im kml-Format für Google Earth wie beispielsweise folgender Ausschnitt, der ein rotes Polygon erstellt (mit fremden Daten nur als Formatvorlage): <?xml version=”1.0″ encoding=”UTF-8″?> <kml xmlns=”http://www.opengis.net/kml/2.2” xmlns:gx=”http://www.google.com/kml/ext/2.2” xmlns:kml=”http://www.opengis.net/kml/2.2” xmlns:atom=”http://www.w3.org/2005/Atom“> <Document> <name>WifiMapping</name> <Schema parent=”Placemark” name=”S_katrina_damage_all_05sep05_final_SIS”> <SimpleField type=”wstring” name=”LEVEL_”></SimpleField> <SimpleField type=”int” name=”Cnt_LEVEL_”></SimpleField> <SimpleField type=”wstring” name=”LEVEL_FULL”></SimpleField> </Schema> <Style id=”falseColor”> <PolyStyle> <colorMode>random</colorMode> </PolyStyle> </Style> <S_katrina_damage_all_05sep05_final_SIS> <name>Count 10</name> <description><![CDATA[CD LEVEL_ = CD Cnt_LEVEL_ = 10 LEVEL_FULL = Wifi Level]]></description> <styleUrl>#falseColor</styleUrl> <Style> <IconStyle> <color>ff0000ff</color> </IconStyle> <LineStyle> <color>ff0000ff</color> </LineStyle> <PolyStyle> <color>bf0000ff</color> <colorMode>normal</colorMode> <outline>0</outline> </PolyStyle> </Style> <MultiGeometry> <Polygon> <outerBoundaryIs> <LinearRing> <coordinates> -89.27784000753446,30.31437999248219,0 -89.27338538253034,30.31475285185757,0 -89.27344000753038,30.31528999248307,0 -89.27271000752971,30.3156799924834,0 -89.18654000744947,30.33208999249872,0 -89.18943000745215,30.33170999249834,0 -89.19390000745631,30.33037999249713,0 -89.19873000746082,30.32926999249609,0 -89.19882260121091,30.32925147687106,0 -89.19882000746091,30.32922999249606,0 -89.20401000746574,30.32811999249503,0 -89.20881000747019,30.32693999249391,0 -89.20882908559523,30.32701592999396,0 -89.20911000747049,30.3269499924939,0 -89.22069000748125,30.32313999249036,0 -89.23492180436952,30.31778146123537,0 -89.23487000749448,30.31769999248531,0 -89.2460800075049,30.31409999248197,0 -89.25360000751192,30.31173999247974,0 -89.26225000751997,30.30954999247772,0 -89.26781000752514,30.30733999247564,0 -89.27782000753447,30.30486999247335,0 -89.27776000753443,30.3094499924776,0 -89.27774188253439,30.30945408622762,0 -89.27784000753446,30.31437999248219,0 </coordinates> </LinearRing> </outerBoundaryIs> </Polygon> </MultiGeometry> <LEVEL_>CD</LEVEL_> <Cnt_LEVEL_>266</Cnt_LEVEL_> <LEVEL_FULL>CATASTROPHIC</LEVEL_FULL> </S_katrina_damage_all_05sep05_final_SIS> </Document> </kml> Ein solcher Export zu Google Earth sieht aktuell folgendermaßen aus:

AUSZUG AUS SAARBRÜCKEN SANKT ARNUAL GESCANNT

Das KML File zum selbst einladen befindet sich Messung_9.2.2012. Teilnahme: Wir laden jeden ein an dem Projekt teilzunehmen! Ein paar Optimierungen am Mikrocontroller-Code müssen noch vorgenommen werden. Der Code wird auch noch veröffentlicht, sobald wir überlegt haben, ob es Projekt-SourceCode Management auf einem HackSaar-Server gibt oder ein externer Dienst wie github (https://github.com/) genutzt werden soll (wäre für Code wohl am Einfachsten). Vor allem in der Auswertung kann man noch viel machen und ist Manpower gefragt! Am Besten beim nächsten Hacksaar Stammtisch mal ansprechen oder bei einem StreetScan-Projekttreffen vorbeikommen! Natürlich müssen die Messungen auch noch erstellt werden, indem man die Hardware durch eine Region spazieren fährt und sich ein geeignetes Raster für passende Regionen planen muss.