Category Archives: tracking

Let’s Encrypt with Lighttpd

Save the page https://gethttpsforfree.com/ locally and use a clean browser to open the HTML file.
Create your keys and everything.
Cat domain.key and chained.pem into a new pemfile.
Grab the Let’s Encrypt Authority X1 (IdenTrust cross-signed) pemfile from https://letsencrypt.org/certificates/
Put those two files in a safe place on your server.
Don’t forget to set proper permissions on the files.
ssl.ca-file = "/path/to/lets-encrypt-x1-cross-signed.pem" # the Let's Encrypt certificate
ssl.pemfile = "/path/to/pemfile.pem" # your pemfile

Restart lighttpd.
Done.

Oakland: All license plate reader data (ALPR)

WTF!

https://data.oaklandnet.com/browse?q=alpr via https://news.ycombinator.com/item?id=10642139

817159 timestamped car plate locations.

oakland scans
oakland selected scans

Pages:

https://data.oaklandnet.com/Public-Safety/All-License-Plate-Reader-Data-ALPR-September-23-20/6dab-n9nd
https://data.oaklandnet.com/Public-Safety/All-license-plate-reader-data-ALPR-04-01-2014-thru/k76g-27ne
https://data.oaklandnet.com/Public-Safety/All-license-plate-reader-data-ALPR-3-1-2013-4-1-20/m64r-jeei
https://data.oaklandnet.com/Public-Safety/All-license-plate-reader-data-ALPR-3-19-2014-3-31-/wy2w-ue82
https://data.oaklandnet.com/Public-Safety/All-license-plate-reader-data-ALPR-4-1-14-thru-5-3/7axi-hi5i
https://data.oaklandnet.com/Public-Safety/All-license-plate-reader-data-ALPR-5-13-2012-7-3-2/f28j-9q95
https://data.oaklandnet.com/Public-Safety/All-license-plate-reader-data-ALPR-7-6-2011-12-19-/7xz6-yzxz
https://data.oaklandnet.com/Public-Safety/All-license-plate-reader-data-ALPR-8-6-2012-8-12-2/gyu7-qpwz
https://data.oaklandnet.com/Public-Safety/All-license-plate-reader-data-ALPR-8-26-2012-9-19-/bd9f-4pn8
https://data.oaklandnet.com/Public-Safety/All-license-plate-reader-data-ALPR-9-15-2012/vwcs-329i” clas
https://data.oaklandnet.com/Public-Safety/All-license-plate-reader-data-ALPR-10-20-2012-11-2/cyhz-jk8v
https://data.oaklandnet.com/Public-Safety/All-license-plate-reader-data-ALPR-11-20-2012-12-3/jxx3-67d2
https://data.oaklandnet.com/Public-Safety/All-license-plate-reader-data-ALPR-12-19-2013-1-31/h4qp-hsyy
https://data.oaklandnet.com/Public-Safety/All-license-plate-reader-data-ALPR-12-23-2010-thru/t7dd-x7dh

grab.sh:

ids=”6dab-n9nd
7axi-hi5i
7xz6-yzxz
bd9f-4pn8
cyhz-jk8v
f28j-9q95
gyu7-qpwz
h4qp-hsyy
jxx3-67d2
k76g-27ne
m64r-jeei
t7dd-x7dh
vwcs-329i
wy2w-ue82″

for id in ${ids}
do
echo “Grabbing ${id}”
wget -a wget.log -x –content-disposition “https://data.oaklandnet.com/api/views/${id}/rows.csv?accessType=DOWNLOAD”
# screw excel wget -a wget.log -x –content-disposition “https://data.oaklandnet.com/api/views/${id}/rows.csv?accessType=DOWNLOAD&bom=true”
wget -a wget.log -x –content-disposition “https://data.oaklandnet.com/api/views/${id}/rows.json?accessType=DOWNLOAD”
wget -a wget.log -x –content-disposition “https://data.oaklandnet.com/api/views/${id}/rows.pdf?accessType=DOWNLOAD”
wget -a wget.log -x –content-disposition “https://data.oaklandnet.com/api/views/${id}/rows.rdf?accessType=DOWNLOAD”
wget -a wget.log -x –content-disposition “https://data.oaklandnet.com/api/views/${id}/rows.rss?accessType=DOWNLOAD”
wget -a wget.log -x –content-disposition “https://data.oaklandnet.com/api/views/${id}/rows.xls?accessType=DOWNLOAD”
wget -a wget.log -x –content-disposition “https://data.oaklandnet.com/api/views/${id}/rows.xlsx?accessType=DOWNLOAD”
wget -a wget.log -x –content-disposition “https://data.oaklandnet.com/api/views/${id}/rows.xml?accessType=DOWNLOAD”
wget -a wget.log -x –content-disposition “https://data.oaklandnet.com/api/views/${id}/rows.xml?accessType=DOWNLOAD”
done

exit

Be aware that only the CSV format is guaranteed to have all records. At least that’s what some files say.

$ sed ‘s#,.*##g’ *.csv | sort | uniq | wc -l
817159

sed ‘s#,.*##g’ *.csv | sort | uniq -c | sort -h | tail
grep -h ‘^PLATENUMBER,’ *.csv | sed ‘s#,”(#,#g’ | sed ‘s#)”##’
grep -hEo “\(37.*\)\”” *.csv | sed ‘s#[()” ]*##g’

Happy stalking :(

Tracking deutscher Onlinemedien

Tracking deutscher Onlinemedien - 1

Weil ich jedes Mal das Würgen kriege, wenn Medienvertreter über die pösen pösen Ad-Blocker meckern und wie das Internet ohne Werbung keine Inhalte hätte. Weil es niemanden etwas angeht, wer, was, wann und wo liest. Weil ich https://pad.systemli.org/p/SSL-Zeitung eine tolle Initiative finde. Weil Gephi Spaß bringt. :)

Tracking deutscher Onlinemedien - lightbeamLightbeam for Firefox ist ein nettes Tool, um Verbindungen zwischen Webseiten zu tracken und visualisieren. Ich habe es installiert und rund 90 Internetauftritte zufälliger Zeitungen und Magazine aufgerufen (Liste am Ende dieses Beitrags). Ich habe dabei “klassische” Medien bevorzugt

YOU HAVE VISITED 92 SITEs
YOU HAVE CONNECTED WITH 260 THIRD PARTY SITEs

Yumm yumm! Leider ist der eingebaute Graph ziemlich hässlich und unübersichtlich. Daher habe ich die Daten exportiert, etwas umformatiert und in Gephi visualisiert.

In Lightbeam: “Save Data”. Es kommt eine lightbeamData.json-Datei raus. Diese hab ich dann (per Holzhammer) mit GNU/Linux-Bordmitteln bekämpft. Erst mit sed Zeilenumbrüche eingefügt, dann mit awk die interessanten Felder extrahiert, mit sed bereinigt und dann Duplikate entfernt:

sed 's/\],/\],\n/g' lightbeamData.json | awk -F "," '{print $1"\t"$2}' | sed 's/[\["]//g' | sort | uniq > lightbeamData.tsv

Um sie anschließend direkt in Gephi laden zu können, müssen die Spalten Titel haben. Also zum Beispiel einfach “source[TAB]target” in die erste Zeile einfügen.

In Gephi ist es dann eigentlich ganz einfach. Neues Projekt, Data Laboratory -> Import Spreadsheet. Die lightbeamData.tsv-Datei auswählen. Tab als Trennzeichen und als Edges-Tabelle laden. Next -> Finish, Fertig!

Im Overview unten auf das Label Attributes Icon klicken und “Id” auswählen, jetzt werden die Nodes beschriftet. Links bei Ranking (Degree) -> Label Size als maximale Größe zum Beispiel 2 auswählen. Mit einem der Slider unten kann man die gesamte Textgröße dynamisch ändern. Und dann mit den Layouts herumspielen. Um ein schönes Endprodukt zu bekommen ist Label Adjust ganz furchtbar toll (verfälscht aber natürlich vorherige Layout-Algorithmen). Per Mouseover kann man sich benachbarte Nodes anzeigen lassen. Da kommt dann zum Beispiel sowas bei raus:

Tracking deutscher Onlinemedien - 2

Tracking deutscher Onlinemedien - 3

Tracking deutscher Onlinemedien - bild

Tracking deutscher Onlinemedien - fb

Tracking deutscher Onlinemedien - kugel

Tracking deutscher Onlinemedien - nuggad

Tracking deutscher Onlinemedien - süddeutsche

Tracking deutscher Onlinemedien - yieldlab

Fazit: HTTP Switchboard oder Request Policy lohnen sich.

Die folgenden Domains wurden besucht:

http://www.aachener-zeitung.de
http://www.abendblatt.de
http://www.abendzeitung-muenchen.de
http://www.alfelder-zeitung.de
http://www.augsburger-allgemeine.de
http://www.badische-zeitung.de
http://www.badisches-tagblatt.de
http://www.berliner-kurier.de
http://www.berliner-zeitung.de
http://www.berlinonline.de
http://www.bild.de
http://www.bnn.de
http://www.braunschweiger-zeitung.de
http://www.bremer-nachrichten.de
http://www.bz-berlin.de
http://www.cellesche-zeitung.de
http://www.cn-online.de
http://www.derwesten.de
http://www.dewezet.de
http://www.dnn-online.de
http://www.donaukurier.de
http://www.echo-online.de
http://www.einbecker-morgenpost.de
http://www.express.de
http://www.faz.net
http://www.fr-online.de
http://www.freiepresse.de
http://www.freitag.de
http://www.general-anzeiger-bonn.de
http://www.goettinger-tageblatt.de
http://www.goslarsche.de
http://www.handelsblatt.com
http://www.haz.de
http://www.heute.de
http://www.hildesheimer-allgemeine.de
http://www.jungewelt.de
http://www.ln-online.de
http://www.lvz-online.de
http://www.lz-online.de
http://www.main-netz.de
http://www.mainpost.de
http://www.maz-online.de
http://www.mdr.de
http://www.merkur-online.de
http://www.mittelbayerische.de
http://www.mopo.de
http://www.morgenpost.de
http://www.morgenweb.de
http://www.mz-web.de
http://www.n-tv.de
http://www.ndr.de
http://www.neuepresse.de
http://www.neuewestfaelische.de
http://www.nordbayerischer-kurier.de
http://www.nordbayern.de
http://www.noz.de
http://www.nw-news.de
http://www.nwzonline.de
http://www.op-online.de
http://www.ostsee-zeitung.de
http://www.otz.de
http://www.prosieben.de
http://www.rhein-zeitung.de
http://www.rheinpfalz.de
http://www.rotenburger-rundschau.de
http://www.rp-online.de
http://www.saarbruecker-zeitung.de
http://www.schwaebische.de
http://www.schwarzwaelder-bote.de
http://www.spiegel.de
http://www.stern.de
http://www.stuttgarter-zeitung.de
http://www.sueddeutsche.de
http://www.suedkurier.de
http://www.swp.de
http://www.sz-online.de
http://www.tagesschau.de
http://www.tagesspiegel.de
http://www.taz.de
http://www.teckbote.de
http://www.thueringer-allgemeine.de
http://www.tz.de
http://www.volksstimme.de
http://www.wa.de
http://www.welt.de
http://www.weser-kurier.de
http://www.westfalen-blatt.de
http://www.wn.de
http://www.zeit.de

Heimlich versteckte Randnotizen:
Ja, ich habe die “guten” Seiten ignoriert, die sich ausserhalb der Spaghettibälle befinden. In Lightbeam waren dies: rotenburger-rundschau.de, einbecker-morgenpost.de, bremer-nachrichten.de, alfelder-zeitung.de, jungewelt.de, neuewestfaelische.de.

Da ich einige Domains direkt im Router blocke könnte die Wirklichkeit noch schlimmer aussehen.

Ich habe das Gefühl, dass Lightbeam mehr Verbindungen suggeriert/erzeugt, als tatsächlich anfallen…