vw

DSGVO und die Automobilindustrie

Als Werbeagentur haben wir uns in den letzten Wochen intensiv mit der Datenschutz Grundverordnung – DSGVO befasst. In diesem Zusammenhang stellte sich für mich die Frage, welche Konsequenzen hat dies auf Fahrzeuge, die permanent Daten über unser Fahrverhalten sammeln. Mein VW aus dem Jahre 2017 blendet ständig Warnsymbole ein und kontrolliert meinen Fahrstil. Angeblich werden auch Daten über das Fahrverhalten an sich gesammelt, also wie wird gebremst und beschleunigt etc. Über einen Sensor an der Front wird erfasst wie frühzeitig ich bei Gefahren reagiere und vieles mehr. Was mein Fahrzeug genau macht, hat mich schon immer interessiert und auch die Frage, wer wann zu diesen Daten Zugang hat und wo diese Daten am Ende landen.

Der Müdigkeitssensor zeigt bei mir immer dann eine angebliche Müdigkeit an, wenn ich entspannt auf der Autobahn fahre und nicht mehr nervös beschleunige oder bremse. Eigentlich der beste und sicherste Zustand für einen Fahrer. Wenn dies aber als Müdigkeit gewertet wird, hat man bei einem Unfall unter Umständen ein Problem, da ein Gutachter behaupten könnte man sei übermüdet gefahren und das Auto hätte dies erkannt.

Solange diese Techniken nicht von einer Norm abgedeckt sind, sind sie sicherlich nicht gerichtsverwertbar. Dennoch hinterlassen sie einen Eindruck und ein Unternehmen könnte – wie auch schon Versicherungen – auf die Idee kommen meine Leasing-Verträge nach meinem bisherigen Fahrverhalten zu gestalten.

Es besteht also vor allem ein Aufklärungsbedarf von Seiten der Hersteller. Und für die Zukunft stellt sich die Frage, wie gehen wir mit den Daten um, da sie essentiell sind für das sukzessive autonome Fahren.

Um ein wenig Licht ins Dunkel zu bringen habe ich folgenden Brief an VW in Wolfsburg geschrieben:

 

Sehr geehrte Damen und Herren,

ich habe bei Ihnen folgendes Fahrzeug für 3 Jahre geleast:

Angebotsnummer:
Vertragsnummer:
Händler:
Modellschlüssel:

Entsprechend der Datenschutzgrundverordnung habe ich das Recht auf Auskunft, welche Daten genau über mich vom Fahrzeug gespeichert werden, zudem wo und wie diese Daten verarbeitet werden. Wer hat wann auf die Daten Zugriff?
Zudem bitte ich Sie mir alle über mich vorhandenen Daten zu übermitteln.
Ich beantrage hiermit ebenfalls, dass Sie mir mitteilen wie ich die Löschung aller Daten vornehmen und das weitere Sammeln unterbinden kann.

Ein wichtiger Aspekt der DSGVO ist die Zweckgebundenheit und die Datensparsamkeit.

Für die Erfüllung des Leasingvertrages sehe ich nur die Speicherung der gefahrenen Kilometer als integraler Bestandteil.
Alle anderen Daten, die das Fahrzeug erhebt, sind nicht relevant für die Durchführung des Vertrages. Ich bitte Sie das Sammeln dieser zusätzlichen Daten komplett einzustellen und alle vorhanden Daten, nach der Übermittlung an mich, auf allen Medien außerhalb und innerhalb des Fahrzeuges zu löschen. Ebenfalls bitte ich Sie das Sammeln aller Daten, außer des Kilometerstandes, einzustellen.

Was die Verkehrssicherheit betrifft können Daten in der jeweiligen Situation erhoben und verarbeitet werden, sollen aber innerhalb einer technisch notwendigen Zeitspanne (ein paar Sekunden, bis spätestens zum Abstellen des Fahrzeuges) wieder gelöscht werden.

Einer Übermittlung, der über mich erhobenen Daten, an Dritte widerspreche ich hiermit explizit.

Ich bitte um umgehende Mitteilung, Zusendung meiner Daten und einer Angabe, wann das Datensammeln in meinem Fahrzeug von Ihnen abgestellt werden kann und wer dafür zuständig ist.

Ich bitte ebenfalls mir mitzuteilen welche Daten Sie über mich außerhalb des Fahrzeuges erhoben haben und wer wann und wie Einsicht hat und auch diese an mich zu übermitteln.

Zusammenfassend bitte ich um folgendes:

a. Auskunft (wo werden wann, welche Daten gesammelt, wer hat Einsicht)
b. Übermittlung meiner Daten
c. Einstellen des Datensammelns
d. Löschung aller bereits gesammelten Daten

Mit freundlichen Grüßen

Thomas Hezel

 

Ich bin nun gespannt wie sich der Konzern oder der Händler zu meiner Anfrage äußert.

 

Ein zweiter Brief an den VW-Händler in Berlin

Dieser wurde am 8.6.2018 beantwortet mit dem Ausdruck einiger Daten (Adresse, Telefonnummer, Email etc.), aber ohne die Daten, die im Fahrzeug gespeichert werden. Dies ist auch verständlich, da ich noch bei keiner Inspektion war, es also keine dirkete Gelegenheit gab die Daten auszulesen.
Es wurde mir bestätigt, dass meine Kontaktdaten aus der Werbedatei gelöscht wurden.
Bezüglich der durch das Fahrzeug gesammelten Daten hat man mich an den Konzern  verwiesen. Bezüglich der Daten in Zusammenhang mit dem Leasing-Vertrag an Volkswagen Finacial Services.

 

Update 28.5.2018 – VW-reagiert mit einer Email (unverschlüsselt) und einem nicht funktionierenden Link

Am 28.05.2018 um 15:38 schrieb VWGS R: WOB, KKM MARKETINGSPERRE <info-datenschutz@volkswagen.de>:
Sehr geehrter Herr Hezel,
vielen Dank für Ihre Anfrage vom 24.05.2018. Damit wir Ihre Anfrage bearbeiten können, benötigen wir zumindest Ihren Vor-und Nachnamen, Ihre Adresse sowie Ihr Geburtsdatum. Bitte ergänzen Sie ebenfalls den Halterschaftszeitraum für Ihr Leasingfahrzeug.
Auf der Internetseite www.datenschutz.volkswagen.de/auskunftsanfrage können Sie uns Ihre Angaben auf elektronischem Weg zusenden.
Freundliche Grüße
[Vorname / Nachnahme des Ansprechpartners — gelöscht]
Volkswagen Group Services GmbH I Standort Wolfsburg I Kaufmännische Dienstleistungen
Volkswagen Kundenbetreuung – Team Datenschutz
Braunschweiger Str. 101
38444 Wolfsburg
05361 – 9 15 XXX
Sitz der Gesellschaft: Wolfsburg
Amtsgericht Braunschweig: HRB 100516
Geschäftsführung: Sebastian Krapoth (Sprecher), Jürgen Klöpffer, Hartmut Rickel
Ein Unternehmen im Volkswagen Konzern | A Volkswagen Group Company

Meine Antwort

Sehr geehrte Damen und Herren,

leider funktioniert der von Ihnen angebotene Link nicht!
Sie sind ebenfalls verpflichtet eine sichere Übertragung (Verschlüsselung) für Emails anzubieten.
Ich habe von Ihnen keinen öffentlichen PGP-Schlüssel.

Mit freundlichen Grüßen
Thomas Hezel

Update 8.6.2018 – VW-reagiert mit einer Email

Sehr geehrter Herr Hezel,

entschuldigen Sie die verzögerte Beantwortung Ihrer Anfrage. Vielen Dank für Ihren Hinweis. Bitte beachten Sie jedoch, dass eine Verschlüsselung in diesem Fall nicht notwendig ist, da keine personenbezogenen Daten übermittelt werden. Wir bedauern, dass Sie die Seite  über den angegebene Link nicht erreichen konnten.  Versuchen Sie es erneut über folgenden Link.

https://www.datenschutz.volkswagen.de/auskunftsanfrage

Sofern es  Ihnen dennoch nicht möglich ist, den angegebenen Link zu öffnen, sind wir Ihnen bei der Dateneingabe gerne behilflich. Sie erreichen uns werktags in der Zeit von 08:00 – 17:00 Uhr unter  05361 – 9 15 0 10. Im Rahmen des zwischen der Volkswagen AG und der Volkswagen Group Services GmbH bestehenden Vertragsverhältnisses wende ich mich mit obenstehendem Anliegen an Sie.

Freundliche Grüße

[Vorname / Nachnahme des Ansprechpartners — gelöscht]
Volkswagen Group Services GmbH I Standort Wolfsburg I Kaufmännische Dienstleistungen
Volkswagen Kundenbetreuung – Team Datenschutz

Danach habe ich online das Formular ausgefüllt, das jetzt funktioniert hat.

Update 27.6.2018 – VW-reagiert mit einer Email

Sehr geehrter Herr Hezel,

in Ihrer Anfrage mit der Vorgangsnummer xxxxx-xxxx-xxxx-xx vom 26. Juni 2018 haben Sie uns Ihr Anliegen auf Auskunft Ihrer personenbezogenen Daten mitgeteilt.

Wir haben die von Ihnen angegebenen Stammdaten nach eingängiger Prüfung nicht bzw. nicht vollständig in unseren Stammdatensystemen identifizieren können. Zu Ihrer eigenen Sicherheit sowie zum Schutze der Rechte Dritter sind daher weitere Identifizierungsmaßnahmen nötig.

Die Identifizierung Betroffener führen wir mithilfe des PostIdent-Services der Deutschen Post AG durch. Im Rahmen der Identifizierung mittels PostIdent haben Sie die Möglichkeit sich entweder in einer Filiale der Deutschen Post oder webbasiert per Videochat zu identifizieren.

  • Um die Identifizierung zu starten, klicken Sie bitte auf folgenden Link oder kopieren Sie den Link in Ihren Browser: [Link von mir gelöscht]

Für eine webbasierte Identifikation per Videochat benötigen Sie ein internetfähiges Endgerät mit einer angeschlossenen Kamera sowie ein gültiges Ausweisdokument. Bitte beachten Sie das beiliegende Informationsblatt zum Ablauf des PostIdent-Verfahrens.

  • Nach dem Öffnen des Links können Sie sich im Online-Portal der Post auch einen Coupon ausdrucken und diesen zusammen mit einem gültigen Ausweisdokument in eine Filiale der Deutschen Post bringen, sofern Sie eine stationäre Identifizierung bevorzugen.

Wir bitten um Ihr Verständnis, dass wir Ihre Anfrage nicht weiter bearbeiten können, bis Ihre Identität eindeutig festgestellt ist.

Im Rahmen des zwischen der Volkswagen AG und der Volkswagen Group Services GmbH bestehenden Vertragsverhältnisses wende ich mich mit obenstehendem Anliegen an Sie.

Freundliche Grüße

[Vorname / Nachnahme des Ansprechpartners — gelöscht]
Volkswagen Group Services GmbH I Standort Wolfsburg I Kaufmännische Dienstleistungen
Volkswagen Kundenbetreuung – Team Datenschutz

Update 24.7.2018 – PostIdent-Service ist abgeschickt

Ich habe mich per PostIdent identifiziert und warte auf eine Antwort

 

… in Kürze hier die Fortsetzung …

 

 

Autor: Thomas Hezel

from TemplaVoila! to Fluidtemplates

TYPO3 – easy change from TemplaVoila! to Fluidtemplates

A small step for a coder – a big step for the upgrading possibilities of your website!

TemplaVoila! is outdated long time ago, but still around in some TYPO3 installations. A shift to Fluidtemplates, in combination with Backend-Layouts, seems to be a big hassle, but is indeed not so complicated since the principles are pretty much the same. In both cases we map a content form a backend column into a certain area of a predefined html-template.

How to do it

a. first step

First we must find out which elements in our main template are mapped with TemplaVoila!, therefor we need the extension (including Static-Info-Tables) still in action, before we disable it. Important is, whether it is an „inner“ or an „outer“ mapping. With „inner“ we just replace the inside of the html element with a viewhelper and a variable. If it is an „outer“ mapping, we have to replace the the whole html-element as such with the viewhelper. Example of an „inner“ mapping:
<div id="myMapID"><f:format.raw>{variableLaterInTypoScript}</f:format.raw></div>

 

templa voila to fuid templates
the path to the mapping – click on (in may case) „ik_TemplaVoila“

 

templa voila to fluid
„Modify DS /TO“
mouse over element mapping
the mapping – mouse over the html-elements shows their ID-number

 

templa voila to fluid mouse over
mouse over shows the ID of the element („#headline“)

Next you write down a list of the names of the columns („pageHeaderHeadline, banner …“) and the corresponding element names and Ids. The columns names you then use to create a backend layout with the same name, numbering from „0“ left to the accordant last number on the right. Check your old columns, because not all of the mapped IDs are coming from a column in the backend, some are replaced by „lib“ or „temp“ TypoScript variables. So just create the same column structure as it was with TemplaVoila! After assigning the backend layout to the root page, the first step is done.

 

b. second step – changes on the main page template

As said before, some of the „markers“ (viewhelpers) are getting their information from a TypoScript variable, like the Menu e.g.

main template fluid
main template fluid

The others are coming from the backend columns.

Now you take your list and replace the html elements on your list, with an viewhelper („<f:format.raw>{yourVariable}</f:format.raw>“). If it is a „inner mapping“ put the viewhelper inside the element.

We also have to delete everything above and including the html body tag. Don’t forget the closing tags at the end!

You have to do these steps very careful, because getting into a wrong element will mess up the whole thing. Work on a copy of the template file!.

 

c. third step – TypoScript in the root of the website

10 = FLUIDTEMPLATE
10 {
     template = FILE
     file = fileadmin/zazu/default/templates/zazu_template.html
     partialRootPath = fileadmin/zazu/default/templates/Partials
     layoutRootPath = fileadmin/zazu/default/templates/Layouts
        variables {
           h1TopSlogan < styles.content.get
           h1TopSlogan.select.where = colPos=0
           rubrikH < styles.content.get
           rubrikH.select.where = colPos=1
           unterNav < lib.field_unternav
           hauptNav < lib.field_hauptnav
           footerNav < lib.field_footernav
        }
  }

The TemplaVoila! TypoScript can be deleted:

 

10 = USER
10.userFunc = tx_templavoila_pi1>main_page

 

d. fourth step – move the content

This is easy to do if you work on a copy (or „Staging“ as it called by the provider Mittwald). After you deactivate the „static-info-tables“ and the „templaVoila!“ Extension, all content will be in the „main column“ now you have to move the content elements into their old order. It is no problem if you can switch between an old implementation and the new one to check what was where. Otherwise you have to find the order by yourself or memory. Anyway with such a step you should always work on a copy!

 

There are probably some extensions doing similar work in a automated process. But who wants to deal with a complicated extension for a small website. In case it is a bigger site of course one should consider to go into something more automated.

Comments and additions are welcome!

 

Autor: Thomas Hezel

DSGVO opt-in for Cookies

DSGVO = Datenschutzgrundverordnung or GDPR = General Data Protection Regulation – TYPO3 and opt-in in Cookies

According to the German hoster Mittwald there is only one TYPO3 extensions that provides a real opt-in for cookies.
Since it looks like an opt-in for cookies will be the final demand by 25th of May 2018, I checked the TYPO3 extension „cookies“ and looked how it behaved under different conditions. You can get the extension here: https://extensions.typo3.org/extension/cookies/

First of all you have to upload it into TYPO3, then add the static template and after that make your settings at the constants panel.

Don’t forget to put your starting page ID in the field „JavaScript Fallback page“ of the constants in the root template. Otherwise you get problems with cHash and the submit is not going through, so you get allways a popup, asking wether you want to sent the formular again. If you have cHash-Problems you can also try to put „$GLOBALS[‚TYPO3_CONF_VARS‘][‚FE‘][‚pageNotFoundOnCHashError‘]“ in the Install Tool Settings on „false“.

After opening your domain in the browser for the first time, there is a dialog window opening at the top of your window (cookie hint).
But checking the cookies in the browser revealed, that Google and others had already set their cookies. So, the setting of cookies via a third party JavaScript is not stopped by the extension. Only the TYPO3-cookie is not set yet.

So this is not a real opt-in!

You can, as described in the extension manual, then use a TYPO3 conditions to unload for example your Google Analytics tracking code. But the cookie that was set at the first load of the page will remain. Of course by setting the browser to block third party cookies and making browser settings to stop tracking will help. But this is then not a real opt-in for a single webpage.

My solution for a real cookie opt-in

The extension sets 2 additional cookies

a. tx_cookies_hidden
b. tx_cookies_disabled

a. This is used to track whether you have already made a choice about cookies, so the dialog will not appear again on the next subpage.
b. If you have chosen to deactivate cookies, this cookie is set to carry  along your choice, while you surf through the website.

TypoScript at the root of the website

page.5 < tt_content.list.20.cookies_main

[globalVar = _COOKIE|tx_cookies_hidden = 1]
page.headerData.1 =TEXT page.headerData.1.value (
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-xxxxxxxx-x"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-xxxxxxxxx-x', {'anonymize_ip': true });
</script>
)
[global]
[globalVar = _COOKIE|tx_cookies_disabled = 1] && [globalVar = _COOKIE|tx_cookies_hidden = 1]
page.headerData.1 >
[global]

Explanation

If the cookie „tx_cookies_hidden“ exists (value „1“), then write the Google tracking code in the header. Meaning the user has clicked on „I agree“, so the cookie „tx_cookies_hidden“ was created.

If the cookie „tx_cookies_hidden“ exists and the cookie „tx_cookies_disabled“ exists, meaning the user has opted for „disable cookies“ (this could happen on the first possibility or later on), then erase what is stored in the page.headerData.1 object.

Now we have one more problem

Clicking on the „I agree“ button doesn’t provoke a reload of the page. As a result no Google tracking code is written in the header since the information only comes to action after a reload. The button „activate cookies“ or „deactivate cookies“ results in a page reload, so we only have the problem with the „I agree“ button. But if the user goes for „I agree“ no tracking code is written and no Google cookie is set before the next reload.

This can be solved with jQuery code for all pages:

//cookies
$('#tx_cookies_hide input').click(
function() {
setTimeout(
function() {
location.reload();
},
500);
});

The delay is needed, so the browser has time to write first the cookies from the extension and to set the „globalVar“ before the reload is activated.

Example where you can see it in action: https://www.implantologie-hopf.de

Addition:

To make the jQuery reload work in the iPhone and iPad world you need to put the cursor to „pointer“ for the „I agree“ button. Seems to be some „Apple-mind-bug“:

CSS:


#tx_cookies_hide input {
cursor: pointer;
}

 

UPDATE:
May 16th 2018 – Version 5.0 of the extension is available and has some changes!

a. name change from cookie „tx_cookies_hide“ to „tx_cookies_accepted“ please mind the „ed“ of „accepted“

b. id name change for the „I agree“ button to #tx_cookies_accept“, please be carefull here wie have no „ed“ but just an „…_accept“!

c. css for iPhone cursor: pointer changes id-selector

d. some action response text is added and can be set on „display: none“, or used

 

a. TS  changes to:


page.5 < tt_content.list.20.cookies_main

[globalVar = _COOKIE|tx_cookies_accepted = 1]
page.headerData.1 =TEXT page.headerData.1.value (
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-xxxxxxxx-x"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-xxxxxxxxx-x', {'anonymize_ip': true });
</script>
)
[global]
[globalVar = _COOKIE|tx_cookies_disabled = 1]
page.headerData.1 >
[global]

 

b. jQuery selector for the reload with the „I agree“ button changes to:

//cookies
$('#tx_cookies_accept input').click(
function() {
setTimeout(
function() {
location.reload();
},
500);
});

 

c. CSS for the iWorld jQuery window reload bug:


#tx_cookies_accept input {
cursor: pointer;
}

d. CSS:

#tx_cookies .typo3-messages {
  display: none;
  }

 

Update 20th May 2018 – Extension Cookies Verson 5.0.1 is available

The author of the extension (Sven Burkert) has reacted, sent me an email and made some changes:

If the domain is „www.abc.de“ the cookies from Google are having the domain name „.abc.de“. Before the PHP-script didn’t delete in this case the Google cookies. With version 5.0.1  this cookies will also be deleted.

Sven Burkert also noted, that if you are not loading the JavaScript of the extension, clicking on the „I agree“ button will not trigger a reload of the web-page. In some cases – if you are not looking for an opt-in – it is desirable to avoid a reload.

 

For all other cases my little JavaScript will do the reload.