Das Einbinden einer OpenStreetmap Karte und der Datenschutz (DSGVO)

Guten Morgen,

ich binde mit Leaflet die Tiles von https://{s}.tile.openstreetmap**.de** ein.

  1. Ist es richtig, dass diese Kacheln ausschließlich in Deutschland auf Servern gespeichert sind?
  2. Wird, wenn jemand meine Website besucht und die Karte ansieht, die IP-Adresse des Besuchers an den Tile Server übertrage? Falls ja, wird diese gespeichert?

Ich danke euch im Voraus für eventuelle Antworten bei diesem leidigen Thema.

Astrid

Derzeit auf genau einem Server. Der steht derzeit in Deutschland.

Ja. Der Client holt die Kachel ohne Umwege (Proxy oder so…) vom Tile Server ab und der weiss, mit wem er redet. Muss er auch, er liefert sie ja an den Client.

Weiss nicht.

Grüße
Max

Es sei denn man setzt da selbst einen Proxy auf und nutzt dessen URL in Leaflet, OpenLayers, oder was auch immer, als Tile Base URL. Dann sieht der eigentliche Tile Server ausschließlich die IP des Proxies (es sei den der Proxy implementiert den “Ich frage für …” Header dessen richtiger Name mir gerade entfallen ist).

Die Frage stellt sich bei jeder externen Seite, welche durch “meine Homepage” aufgerufen wird. Und sei es nur ein Bild, Smiley, Cookie, Like-Button, etc.

**[ironische_Bürokratie]**Mit jeder externen Seite muss dann ein Auftragsdatenverarbeitungsvertrag abgeschlossen werden, Bsp. 1&1. Ideal für jedes Forum, alle User setzen externe Bilder und Smileys ein, und die Moderatoren kommen nicht mehr hinterher mit Prüfen, Löschen oder dem Abschluss von Auftragsdatenverarbeitungsverträgen. :laughing: [/ironische_Bürokratie]

Vielen lieben Dank für eure bisherigen Antworten.

Mir ist nicht ganz klar, warum die IP Adresse des Website Besuchers nötig ist. Eigentlich muss der Tile Server doch nur die Adresse meines Webservers kennen um die Kacheln richtig auszuliefern. Habe ich da einen Denkfehler?

Wahrscheinlich ist es so, dass im HTTP-Request die Adresse des Website Besuchers automatisch aufgenommen wird. Davon habe ich aber zu wenig Ahnung.

Wenn ich euch richtig verstehe, kann man das Weiterleiten der IP Adresse des Website Besuchers nur über einen zwischengeschalteten Proxy selbst beeinflussen. Ist das richtig?

Ich sehe da ein grundsätzliches Misverständnis.

Inhalte die via javascript oder ähnliches auf einer Webseite eingebunden werden, werden vom Client (das heisst der Browser des Websitebesuchers) direkt abgerufen.

Sprich in diesem Fall verbindet der Browser direkt mit tile.openstreetmap.de und es werden keine Daten vom Websitebetreiber an openstreetmap.de weitergeleitet. Deshalb ist die rechtliche Situation eher so, dass der Betreiber von openstreetmap.de als eigenständiger “Controller” im Sinne des GDPR anzusehen ist und keine DPA nötig ist (was aus vielerei Gründen so oder so nicht vernünftig möglich wäre).

Sinnvoll wäre ev. in der Datenschutzerklärung auf der Website auf den Sachverhalt hinzuweisen (der natürlich auch für alle JS-libraries etc gilt die auf der Seite angebunden werden, wenn sie nicht lokal gehostet werden).

IANAL

PS: die Teile des GDPR die sich mit der “Controller - Processor” Beziehung befassen gehen mindestens implizit davon aus, dass ein Auftragsverhältnis vorliegt ,was bei der Nutzung von Dienste der OSMF in der aktuellen Form eher nicht der Fall ist.

Mal abgesehn von der Möglichkeit einen Proxy zu betreiben wie Hartmut erwähnt, und was auch wieder Nachteile mit sich bringt…

Es läuft so:

1 Ich (also mein Browser) besuche Dich (deine Seite) und lese alles, was da steht. Deine Texte, Dein Design… Insbesondere lese ich ein Stück Javascript (Leaflet, Openlayers)
2 Du sagst mir in diesem Javascript “und die Kacheln für die Karte gibts bei OSM, die gehören hier links oben hin”
3 Ich nehme Verbindung zu OSM auf und hole dort die Kacheln
4 Ich baue sie nach der Anweisung in (2) in deine Seite ein

Dieses Vorgehen ist auch recht praktisch, z.B. wird dann dein Server und dein Tarif nicht belastet mit dem Durchleiten von Karten und man kann mehrere Tileserver betreiben, von denen vielleicht auch mal einer ausfallen kann und die zusammen eine viel höhere Bandbreite haben als Dein Server…

Grüße
Max

  • Du gibts Leaflet mit wo die Kacheln zu finden sind
  • Der Leaflet-JavaScript Code wird im Browser des Besuchers ausgeführt
  • Alle Zugriffe auf die eigentlichen Kartenkacheln erfolgen direkt vom Rechner des Besuchers aus
  • Nur der Leaflet-JavaScript und CSS-Code, und die Leaflet-Icons für die verschiedenen Steuerflächen werden über Deinen Webserver geladen
  • Der Kachelserver weiß erst einmal nicht mal dass die Zugriffe von Leaflet generiert wurden, er sieht nur die IP-Adresse des Rechners der die Kacheln tatsächlich anfordert, und das ist der des Besuchers, und nicht Dein Webserver

Wenn Du das nicht willst dann musst Du einen Proxy haben der die Kacheln von Deinem Webserver aus abruft und dann das Ergebnis an den Besucher weitergibt. Das kann ein vollständiger Proxy wie “Squid” sein, ein spezieller Tile-Proxy, oder im einfachsten Fall einfach ein kleines Script dass die Anfragen weiterleitet und die Ergebnisse zurück schickt.

Wenn Du dann die Adresse dieses Proxys als Tile URL in Leaflet nutzt greift der Rechner des Besuchers tatsächlich nur auf Deinen Webserver zu, und dieser muss sich dann darum kümmern die tatsächlichen Daten zu beschaffen und an den Besucher weiterzureichen.

Das erzeugt nicht viel Last auf Deinem Webserver, benötigt aber deutlich mehr Übertragungsvolumen als wenn nur der Leaflet-Code von da ausgeliefert wird. Du musst ja nun wirklich jede einzelne Kartenkachel selbst übertragen, und auch selbst abrufen, statt das einfach den Kachelserver und den Browser des Besuchers unter sich ausmachen zu lassen.

Was aber, je nach Belastung des Servers, ohnehin sinnvoll (oder gar von der Tile-Policy) gefordert sein kann.

@SimonPoole: Während man in der Datenschutzerklärung über die Einbindung von Drittanbieterseiten liest, ist die eigene IP-Adresse doch meistens schon an diverse Drittanbieter geflossen. :smiley:
Da bräuchte es schon so eine Art Vorschaltseite “Datenschutzhinweise”, die ganz ohne Cookies und Drittanbieter auskommt und erst abgenickt werden müsste. Vermutlich muss die DSGVO durch Rechtsprechung für die Praxis erstmal tauglich gemacht werden. Ist man deswegen als Homepage-Betreiber demnächst Freiwild für Abmahnanwälte? Ich kann doch gar nicht beeinflussen, was Drittanbieter mit den IP-Adressen anstellen? Zudem können die jederzeit Ihr Geschäftsgebahren ohne mein Wissen ändern. Zukünftig aber gar keine anderen Quellen, Cookies, etc zu nutzen, kann aber auch keine Lösung sein? Oder male ich da zu schwarz? :expressionless:

Wie lange speichert der Kachelserver IP-Adressen? Werden diese nur anoymisiert gespeichert oder vollständig? Was wird zur IP-Adresse noch alles gespeichert? Datum, Uhrzeit, Art des Browsers, Herkunftsort der Anfrage, Betriebssystem, etc.? Was schreibt man also in seine Datenschutzerklärung rein, wenn man den OSM-Kachelserver einbindet? Vermutlich muss ich dann in meiner Datenschutzerklärung auf die Datenschutzerklärung von OSM verweisen, oder?

Dann sind wir beim Thema “cacheing Proxy”, das ist nochmal eine ganz andere Baustelle. Eine einfache Proxy-Lösung die nur Requests durchreicht und Ergebnisse zurücksendet verringert die Last auf dem Tileserver nicht, die Requests kommen dann eben nur von einer anderen Adresse, aber erst einmal in gleicher Anzahl.

Ja und das ist aus meiner Sicht unvermeidlich um die Funktion des Tileservers zu gewährleisten.

Unser Apache Server schreibt das übliche Standard-Logfile, das so aussieht:

remote-ip - - [04/May/2018:16:47:28 +0200] “GET /tiles/osmde/16/34787/22369.png HTTP/1.1” 200 10799 “https://www.openstreetmap.de/karte.html” “Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0”

Die Logfiles werden ebenfalls wie üblich rotiert und die alten Daten werden gelöscht. Momentan wird wöchentlich rotiert und die Daten werden nach 10 Rotationsschritten weggeworfen.

Wie man oben sieht kann man folgendes feststellen:

Eine Maschine, die vorgibt ein Firefox-Browser (59) unter Windows 7 (64bit) zu sein und sich hinter der IP “remote-ip” versteckt, hat die Kachel https://tile.openstreetmap.de//tiles/osmde/16/34787/22369.png am obigen Datum vom Tileserver geladen. Mit großer Wahrscheinlichkeit handelt es sich also um einen Windows 7 Benutzer mit Firefox, der https://www.openstreetmap.de/karte.html aufgerufen hat. Aber Achtung, keine dieser Daten muss wirklich stimmen. Das einzige Datum, das man hier nicht fälschen kann ist die remote-ip und selbst dabei könnte es sich um einen Proxyserver handeln.

Diese Daten benötigt man, weil es immer wieder Leute gibt, die gnadenlos automatisiert Kacheln runterladen sonst könnte ich das logging tatsächlich abschalten.

Im Normalfall schaut sich niemand in diese Daten an. Das passiert nur dann, wenn mal wieder jemand Unfug treibt, denn dann hilft diese Datei dabei den Verursacher zu finden und gegebenenfalls zu versuchen diesen zu sperren.

Gruss

Sven

Für mein unmaßgebliches Rechtsempfinden dürfte das ein „berechtigtes Interesse“ darstellen, das zur verhältnismäßigen Speicherung auch ohne Einwilligung berechtigt.

–ks

Eine TCP-Verbindung (und damit auch http/https) wird durch 4 Parameter eindeutig definiert:
IP-Adresse des Clients, IP-Adresse des Servers, Client-Port und Server-Port.

Ohne diese Parameter ist es schlichtweg unmöglich eine Ende-Zu-Ende Kommunikation durchzuführen.

Ob man die Client-IP auch nach beendeter Kommunikation irgendwo speichert ist ein anderes Thema.

Sven

Vielleicht noch mal etwas einfacher: Dein Denkfehler besteht darin, dass die Kacheln gar nicht über deinen Webserver laufen, sondern direkt vom Tileserver an deinen Besucher geschickt werden.

Das ist so, als würdest du ein Bild, das auf einer anderen Website steht, mit einem entsprechenden Deeplink in deine Seite einbauen (). Dann ruft der Browser deines Besuchers, sobald er darauf stößt, bei diesem anderen Server an und lässt sich von da das Bild schicken. Das Leaflet-Skript macht prinzipiell nichts anderes: es bindet die passenden Kacheln per Deeplink auf den Tileserver ein. Sobald also das Leaflet im Browser deines Besuchers ausgeführt wird, wird sich der die Kacheln vom OSM-Tileserver holen. Dein Server sieht gar nichts davon. Die Seite wird erst im Browser des Besuchers aus Bestandteilen zusammengebaut, die er sich in der ganzen Welt zusammengesucht hat.

Vielleicht auch noch wichtig zum Verständnis: Ausgeführt wird ein Javascript, also auch Leaflet, immer clientseitig, also im Browser des Besuchers, niemals auf deinem Server. Dein Webserver kann gar kein Javascript. Er liefert nur den Text des Skripts aus und sagt dem Besucher: Mach damit, was du willst.

–ks

Mit solchen pauschalen Aussagen, ohne den Hintergrund zu kennen, wäre ich in den heutigen Zeiten von node.js und Co. gaaaanz vorsichtig :stuck_out_tongue:

Dir ist aber kontextbezogen schon klar, dass sich meine Aussage nicht an ein Fachpublikum richtete, und dass eine vollständigere Differenzierung dieser zugegebenermaßen verallgemeinernden Aussage möglicherweise den Irritationspegel weiter hätte ansteigen lassen, den sie einklich senken sollte :smiley:

–ks

Es scheint sich generell die Meinung durchzusetzen, dass eine explizite Einwilligung einzuholen eine ganz schlechte Idee ist (d.h. anstatt auf legitimes Interesse verweisen).

Das kannst du schon wenn du über den Dienst einen Vertrag abschliesst.

Wir sind daran das zu dokumentieren.

Am besten schon, ja.

Vielen Dank an alle für die hilfreichen Antworten.

Ist diese Dokumentation schon öffentlich?

@aselnigu: Laut Wochennotiz Nr. 405 (siehe Lizenzen) dürfte es dieses Dokument sein.

@SimonPoole: Vielen Dank für die Ausführungen. Allerdings stelle ich mir (nicht nur bei OSM) die Frage, ob es in Deutschland rechtlich zulässig ist, einfach auf eine englischsprachige Datenschutzerklärung zu verweisen. Schließlich ist nicht jeder Deutsche der englischen Sprache mächtig. Ich denke dabei an englischsprachige AGB’s von amerikanischen Firmen, welche Dienstleistungen (auch) in Deutschland anbieten. Ich meine gelesen zu haben, dass dies nicht rechtens sei. Nun sind AGB’s und Datenschutzerklärungen durchaus verschiedene Dinge. Allerdings sollten doch beide Sachverhalte für Otto-Normalbürger verständlich sein, d.h. ganz ohne juristisch geschultes Übersetzungsbüro? Oder schieße ich hier gedanklich über das Ziel hinaus?