Sprachsteuerung und Vlingo telefonieren nach Hause

Mehr zufällig entdeckte ich neulich beim Entwickeln einer App etwas in der Logcat Ausgabe des Samsung Galaxy Note, dass mich stutzig machte. Irgendein Prozess rauschte da mit folgender Zeile durch: “I/HttpRequest-BackgroundHttpManager323(10019) …”
Neugierig geworden, untersuchte ich das etwas genauer und richtete einen Filter ein, der mir die dazu gehörenden Ausgaben etwas übersichtlicher nach Process ID (PID) auf den Bildschirm brachte. Wie sich dabei herausstellte, stammten diese Logcat-Ausgaben von der – auf dem Samsung Galaxy Note vorinstallierten – Software “Sprachsteuerung“, die auch als App „Vlingo“ im Market erhältlich ist.

Vorab einige Daten zu der verursachenden App:
APK: com.vlingo.client.samsung:
Service: com.vlingo.client.userlogging.UALService <- Das ist der verursachende Service
Speicherort: /system/app/VoiceToGo.apk
Version: 2.9.0

 

Nun habe ich die gefilterten Daten natürlich genauer analysiert und konnte folgende Fakten feststellen:

1. Ein Auszug aus dem Logcat, der einen Teil des Übertragungszyklus darstellt:
D/UALService:Timer-323(10019): VLG_transmitting user activity data <– Hier startet der Vorgang
D/HttpManager:Timer-323(10019): VLG_Queing background http request: ActivityLog
…….
…….
D/VLServiceUtil:BackgroundHttpManager323(10019): VLG_** vlclient: <– Ab hier werden schon mal die Device Daten aufbereitet
DeviceMake=samsung;
DeviceOSName=Android;
DeviceModel=GT-N7000;
DeviceOS=2.3.6;
Language=de-DE;
ConnectionType=DirectTCP;
Carrier=T-Mobile A;
CarrierCountry=AT;
DeviceID=359532540167434;
AudioDevice=Android
……..
……..
D/AndroidLocationUtils:BackgroundHttpManager323(10019): VLG_Getting location <– Hier kommen die Standortdaten dazu
D/AndroidLocationUtils:BackgroundHttpManager323(10019): VLG_Found provider : network<– network Wlan als Standortquelle
……..
……..
D/AndroidLocationUtils:BackgroundHttpManager323(10019): <– Hier werden die Standortdaten aufbereitet
VLG_Got Lat=46.178338204999932;
Long=14.362434382504343;Alt=0.0;
GSM_MCC=232;GSM_MNC=03;CID=2107023;LAC=58400;RAC=0
…….
…….
D/HttpUtil:BackgroundHttpManager323(10019): VLG_extraHeaders: <– Hier wird der komplette HTTP Header aufgebaut
{X-vlsr=AppID=com.samsung.android.umpc,
Accept-Language=de-DE,de;q=0.7,en;q=0.5,
X-vllocation=Lat=46.178338204999932;Long=14.362434382504343;Alt=0.0;
GSM_MCC=232;GSM_MNC=03;CID=2107023;LAC=58400;RAC=0,
Accept-Charset=utf-8,ISO-8859-1;q=0.5,*;q=0.5,
X-vlsoftware=Name=SamsungVoiceUI; Version=2.9.0.B1104; AppChannel=Preinstall Free,
x-vlclientdate=Date=2012-01-21,
X-vlclient=DeviceMake=samsung;
DeviceOSName=Android; DeviceModel=GT-N7000; DeviceOS=2.3.6;
Language=de-DE; ConnectionType=DirectTCP; Carrier=T-Mobile A;
CarrierCountry=AT; DeviceID=359532540167434; AudioDevice=Android,
X-vlprotocol=Version=3.6; ResponseEncoding=text/xml,
X-vvs=Version=1.0,
Content-Type=application/octet-stream;boundary=——————————-1878979834,
Cache-Control=no-cache,no-store,max-age=0,no-transform}
…….
…….
I/HttpRequest-BackgroundHttpManager323(10019): VLG_** Getting new http connection. method POST hc com.vlingo.client.android.core.http.custom.AndroidVStreamConnection@40625f00
D/HttpRequest:BackgroundHttpManager323(10019): VLG_** postData=<user-log><user-id>359532540167434</user-id><setup started=“
D/HttpRequest:BackgroundHttpManager323(10019): VLG_** GZip compressing post data…
D/HttpRequest:BackgroundHttpManager323(10019): VLG_** response code: 200 <– Hier wird geprüft ob der Server auch antwortet
…….
D/CookieHandler:BackgroundHttpManager323(10019): VLG_** domain: samsungvuiasr.vlingo.com
01-21 23:37:46.705: D/CookieHandler:BackgroundHttpManager323(10019): VLG_** done extracting
01-21 23:37:46.705: D/HttpRequest:BackgroundHttpManager323(10019): VLG_data len: 68
01-21 23:37:46.715: D/HttpRequest:BackgroundHttpManager323(10019): VLG_** finished <– Übertragung beendet
…….
…….
D/UALService:BackgroundHttpManager323(10019): VLG_recv user log response
D/ThreadPoolExecutor:BackgroundHttpManager323(10019): VLG_finished worker execution: <– Übertragung korrekt beendet.
com.vlingo.client.core.http.HttpManager$HttpRequestFetchTask@405b3db8
2. Diese Daten werden an folgende URL “unverschlüsselt” übermittelt:
http://samsungvuiasr.vlingo.com:80/voicepad/activitylog
(Das die Übertragung unverschlüsselt erfolgt ist an dem verwendeten Protokoll HTTP ersichtlich)
3. Die Übertragung dieser Daten erfolgt auch dann, wenn die Sprachsteuerung nicht verwendet wird!

4. Die Übertragung dieser Daten erfolgt exakt im 4 Minuten Takt.

5. Informationen zu diesen Übertragungen
Diese sollten eigentlich in den Datenschutzrichtlinien oder Nutzungsbedingungen zu finden sein.
Die URL für die Datenschutzrichtlinie : http://www.vlingo.com/wap/privacy/de
Die URL für die Nutzungsbedingungen: http://www.vlingo.com/wap/terms/de
Version der Datenschutzrichtlinien: Zuletzt aktualisiert am 08.11.11
Zur Sicherheit entzieht sich Samsung beim ersten Start der App „Sprachsteuerung“ sämtlicher Verantwortung, wie im folgenden Screenshot (links) zu sehen ist. Erst im darauffolgenden Dialog wird lediglich auf die Datenschutzrichtlinien und Nutzungsbedingungen hingewiesen, aber sein wir doch mal ehrlich: Wer liest sie sich wirklich durch? Der Durschnittsnutzer nicht!

In der Datenschutzrichtlinie von VLINGO sind folgende – hier im Auszug gezeigten – Aussagen zu finden:
Aussage: Ohne ausdrückliche Genehmigung werden von vlingo NIEMALS Informationen zu Ihrer Person gesammelt oder außerhalb von vlingo offen gelegt
Kommentar: Das stimmt insofern scheinbar nicht, als dass der Übermittlung der IMEI bspw. niemals zugestimmt wurde.

Aussage: Wir sammeln Namen von Personen und Unternehmen aus Ihrem Adressbuch einzig zu dem Zweck, Ihnen beim Sprechen eines Kontaktnamens eine hohe Servicequalität bieten zu können.
Kommentar: Mit den Personen Daten aus dem Adressbuch verhält es sich so, dass diese bereits beim ersten Start an VLINGO übermittelt werden.
Aussage: Wenn Sie sich für standortbasierte Services angemeldet haben, erfassen und speichern wir den Standort Ihres Mobilgeräts nur, wenn Sie sprechen
Kommentar: Das kann so definitiv nicht stimmen. Wie man in obenstehender Auflistung der an Vlingo übertragenen Parameter sehen kann, wurden Standortinformationen an Vlingo zu einem Zeitpunkt übertragen, zu dem definitiv NICHT der Vlingo Service genutzt wurde.
Darüber hinaus habe ich mich NICHT bewusst für Standortbasierte Services angemeldet!
Aussage: Wir wissen nicht, wer Sie sind, wenn Sie die Standortermittlungskomponente unseres Services verwenden.
Kommentar: Auch diese Aussage erscheint nicht glaubhaft. Vlingo kennt die IMEI und den Standort. Jetzt zu behaupten nicht zu wissen wer man ist, erscheint da nicht glaubhaft.
Aussage: Vlingo sorgt mithilfe physischer, technischer und verfahrenstechnischer Methoden für die Sicherheit Ihrer personenbezogenen Informationen.
Kommentar: Hört sich nett an, stimmt aber ebenfalls nicht. Die an Vlingo übermittelten Daten werden unverschlüsselt über das Internet an einen Vlingo Server übertragen, der darüber hinaus auch noch öffentlich erreichbar ist.
Siehe: http://samsungvuiasr.vlingo.com:80/voicepad/activitylog
Inwieweit dieser Server, bzw. die dahin übermittelten Daten nun “sicher” aufbewahrt werden und vor dem Zugriff durch Dritte geschützt sind, mag sich jedermann selbst ausmalen.
Auf jedem Fall ist der von VLINGO verwendete Server nicht auf dem letzten Stand der Version und dürfte die eine oder andere Sicherheitslücke aufweisen.
Aussage: Die gesammelten Informationen werden nicht dazu verwendet (und können nicht dazu verwendet werden), Ihr Gerät oder Sie als Person zu identifizieren.
Kommentar: Auch das kann nicht stimmen, da die IMEI eine weltweit eindeutige Identifizierungsnummer des Gerätes ist, mit deren Hilfe das Gerät direkt identifiziert werden kann.
Doch es werden nicht nur informationen zum Standort und zum Gerät übertragen. Bei der erstmaligen Benutzung beginnt die ungefragte Übertragung folgender Daten an den Vlingo Server – natürlich unverschlüsselt:
6. Senden aller Namen aus den Kontakten
Wenn die App Sprachsteuerung neu gestartet wird und die beiden Hinweis-Screens bestätigt wurden, beginnt die App im Hintergrund alle Namen aus den Kontakten an Vlingo zu übertragen.
Diese Daten werden an folgende URL übermittelt:
http://samsungvuiasr.vlingo.com:80/voicepad/lmtt
Beispiel:
D/HttpRequest:BackgroundHttpManager1(24427): <LMTT><PIM t=“w“><e uid=“1384″><fn>WGKK</fn><ln>10/1</ln><c></c></e><e uid=“147″><fn>Auskunft</fn><ln>118 676</ln><c></c></e><e uid=“228″><fn>Taxi</fn><ln>60</ln><c></c></e>……..
7. Senden aller Musiktitel inklusive Interpret, Titel, Speicherort, Genre, Jahr auf der SD-Karte
Wenn die App Sprachsteuerung neu gestartet wird und die beiden Hinweiss-Screens bestätigt wurden, beginnt die App im Hintergrund alle Musiktitel und damit assozierte Daten an Vlingo zu übertragen.
Diese Daten werden an folgende URL übermittelt:
http://samsungvuiasr.vlingo.com:80/voicepad/lmtt
Beispiel:
D/HttpRequest:BackgroundHttpManager2(24427): <LMTT><SU uid=“58″ ttl=“Rebekka und ich“ art=“Ludwig Hirsch“ cmp=“Rebekka Bakken“ alb=“In Ewigkeit Damen“ gen=““ yr=“2006″ fld=“/mnt/sdcard/Samsung/Music“/>……..
I/LMTTDBUtil-BackgroundHttpManager2(24427): VLG_opened DB. got android.database.sqlite.SQLiteDatabase@405e39f8
I/LMTTChunkUpdate-BackgroundHttpManager2(24427): VLG_LMTTChunkUpdate: _ !!!! SUCCESSFUL CHUNK TRANSFER !!!!
I/LMTTChunkUpdate-BackgroundHttpManager2(24427): VLG_LMTTChunkUpdate: _ chunk had 52 lmtt items
I/LMTTChunkUpdate-BackgroundHttpManager2(24427): VLG_LMTTChunkUpdate: _ total for whole transfer is now 52
I/LMTTChunkUpdate-BackgroundHttpManager2(24427): VLG_LMTTChunkUpdate: _HttpResponse() from ‚type=“song,playlist“ count=“52,0″“‚
I/LMTTChunkUpdate-BackgroundHttpManager2(24427): VLG_LMTTChunkUpdate: _ALL DONE LMTT UPDATE – SUCCESS
I/LMTTChunkUpdate-BackgroundHttpManager2(24427): VLG_LMTTChunkUpdate: _ response is com.vlingo.client.core.http.HttpResponse@40527cb0
8. Gegenmaßnahmen:

1. Zunächst sollte man auf jedem Fall die Option “Standort verwenden” über die Einstellungen der Sprachsteuerung deaktivieren. Dies kann man einfach über Menü – Einstellungen der Sprachsteuerung und dort dann den Haken bei “Standort verwenden” weg nehmen. Diese Maßnahme bewirkt, dass ab sofort keine Standortinformationen mehr an Vlingo übertragen werden.

2. Wenn man über “Menü – Anwendungen – Anwendungen verwalten – Sprachsteuerung” die Daten der Anwendung löscht, hört der Datenwahnsinn auf. Es werden fortan keine Daten mehr an Vlingo gesendet. Allerdings ist dann die App Sprachsteuerung nicht mehr verwendbar.

3. Nutzer mit Rootzugriff könnten die App einfrieren, oder löschen. Allerdings ist nicht sicher, inwieweit dann weitere Funktionen in Mitleidenschaft gezogen werden.

Fazit:
Auch wenn bei der erstmaligen Verwendung ein Warnhinweis bestätigt werden muss, dass Daten im Hintergrund an Vlingo gesendet werden, ist dies kein einfacher Fauxpas mehr und lässt sich mit Serviceverbesserung nicht mehr erklären. Umso mehr, als dass der wirkliche Umfang der Datenübertragung nicht bekannt gegeben wird und es durch die unverschlüsselte Übertragung Datenschutztechnisch ein Desaster darstellt. Hier sind Missbrauch Tür und Tor geöffnet worden.

Anmerkung: Die App Spachsteuerung ist in dieser Form nur auf dem Samsung Galaxy Note zu finden. Sie soll auch auf dem Samsung Galaxy SII vorinstalliert sein, was ich jedoch persönlich zur Zeit noch nicht bestätigen kann.

Ich möchte mich an dieser Stelle auch bei meinem Freund Andreas Voetz bedanken, der diesen Blog gemeinsam mit mir aufbereitet hat und bei AndroidPIT als Blog gepostet hat.

Tagged , , , , , , , .Speichere in deinen Favoriten diesen permalink.

3 Antworten zu Sprachsteuerung und Vlingo telefonieren nach Hause

  1. Pingback:FotoVossBlog » Blog Archive » Vlingo die zweite und es kommt noch schlimmer…

  2. Pingback:FotoVossBlog » Blog Archive

  3. hboss sagt:

    Danke für den Blog

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert