Entwickler Magazin   3.2015 - Visual Application Design

Erhältlich ab:  April 2015

Autoren / Autorinnen: 
Sabine Bernecker-Bendixen ,  
Thomas Eichstädt-EngelenKai Kreuzer ,  
Rob Soree ,  
Christoph Ebert ,  
René Schröder ,  
Elena BochkorVeikko Krypczyk ,  
,  
Carsten Eilers ,  
Tam Hanna ,  
Maik Wojcieszak ,  
Tam Hanna ,  
Tam Hanna ,  
Elena BochkorVeikko Krypczyk ,  
Tam Hanna ,  
Alexander Rudolph ,  
Peter Adolphs ,  
Nils Königshofen

Liebe Leserinnen, liebe Leser,

jeder erfolgreichen Applikation liegt eine gute Idee zugrunde. Egal, ob man einen intuitiven Service, eine innovative Informationsanwendung oder ein packendes Spiel entwickelt – der Kreativität sind keine Grenzen gesetzt. Doch was folgt nach der bahnbrechenden Idee? Welche Schritte sind zu gehen, welche Maßnahmen zu ergreifen? Hier gehen die Vorstellungen aller Beteiligten oft weit auseinander, und nach vielversprechenden Kick-off-Meetings stellt sich schnell Ernüchterung ein. Unterschiedliche Erwartungshaltungen spiegeln sich in unterschiedlichen Vorstellungen über Vorgehensweise und in konträren Zielvorstellungen wider.

Diese Problematik ist natürlich kein neues Phänomen. Die Integration verschiedener Stakeholder bei der Applikationsentwicklung ist mindestens so alt wie die Applikationsentwicklung selbst, die vorgeschlagenen Lösungen sind vielfältig.

Der Ansatz des Visual Application Designs versucht, wie der Name schon sagt, das Problem auf visueller Ebene zu lösen: Nachdem die Projektanforderungen und -spezifikationen schriftlich festgelegt worden sind, folgt die Entwicklung von Wireframes oder Mockups, um allen Beteiligten möglichst umgehend ein klares Bild des zu erwartenden Ergebnisses vorzulegen.

Während dieser Ansatz in Web- und Designagenturen mittlerweile an der Tagesordnung ist, tun sich klassische IT-Entwicklungsabteilungen häufig noch schwer damit. Dabei sind die Gründe, Zeit in die Erstellung von Wireframes bzw. Mockups zu investieren, vielfältig: Der Fokus vieler Applikationen liegt heutzutage auf der Benutzeroberfläche. Begriffe wie Usability und User Experience sind nicht ohne Grund zu Buzzwords geworden.

Wireframes oder Mockups illustrieren das User Interface bzw. dessen Gerüst schon vor der Entwicklung. Die verwendeten Funktionen und Methoden werden visualisiert, konzeptionelle Schwächen werden frühzeitig enttarnt. Das spart Kosten, denn die Behebung von Mängeln wird mit fortschreitendem Entwicklungsprozess immer teurer. Diese Vereinfachung von Komplexität hat eine integrierende Wirkung. Nicht nur werden die internen Stakeholder an einen Tisch gebracht, auch die Kundenseite kann frühzeitig involviert werden.

Wie sich das Prinzip des Visual Application Designs auch in den agilen Prozessen der klassischen IT-Softwareentwicklung verorten lässt, beschreibt Nils Königshofen ab Seite 40. Nehmen Sie sich sein Plädoyer zu Herzen, denn Nutzerfreundlichkeit ist keine Raketenwissenschaft, sondern basiert auf einer gezielten Projektkonzeption, die visuelle, strukturelle und inhaltliche Aspekte von Anfang an berücksichtigt.

ebert_christoph_sw.tif_fmt1.jpgChristoph Ebert, Redakteur

Website Entwickler Magazin Entwickler Magazin Entwickler Magazin

Dem Anfänger fällt es oft schwer, den Einstieg in die Programmierung oder besser in den gesamten Prozess der Softwareentwicklung zu finden. Fragen nach der Wahl der richtigen Programmiersprache oder welche Entwicklungsumgebung am besten geeignet ist, sind zu beantworten. In einer mehrteiligen Serie präsentieren wir einen umfassenden Einführungskurs in die Softwareentwicklung und legen dabei den Schwerpunkt auf die eigentliche Programmierung, also die Implementierung.

Aller Anfang ist schwer! In der Tat gilt diese Aussage auch bedingt für den Einstieg in die professionelle Softwareentwicklung. In einer umfassenden Artikelserie (siehe Kasten „Artikelserie“) präsentieren wir einen Einstieg in die Softwareentwicklung für den anspruchsvollen Leser. Wir richten uns damit explizit an Anfänger, die noch keine umfassenden Kenntnisse in der Programmierung (Implementierung) von Software gesammelt haben. Zu unserer Zielgruppe gehören also zum Beispiel Studierende der Informatik am Anfang ihres Studiums oder angrenzender Disziplinen, die praktische Kenntnisse in der Programmentwicklung erwerben möchten. Auch der interessierte Autodidakt findet hier einen kompakten Einstieg. Der Fokus der Abhandlungen liegt eindeutig auf der Implementierung. Bei der Betrachtung dieser technischen Disziplin wird dabei nicht vernachlässigt, dass die eigentliche Programmierung lediglich einen Teilschritt des gesamten Entwicklungszyklus (Abb. 1) darstellt. Wir werden an den geeigneten Stellen darauf hinweisen und Quellen zum tieferen Einstieg nennen.

krypczyk1.tif_fmt1.jpgAbb. 1: Der Entwicklungszyklus einer Software umfasst mehrere Phasen; unser Fokus ist die Implementierung

Programmierung

Das Ziel eines jeden Softwareentwicklungsprozesses ist die Bereitstellung von Programmen. Dabei spielt es vom Grundsatz zunächst keine Rolle, auf welchem System ein solches Computerprogramm laufen soll. Neben den klassischen Programmen für den Desktop spielen heute Anwendungen für die so genannten mobilen Endgeräte (Smartphone, Tablet) zunehmend eine Rolle. Zur Entwicklung von Computerprogrammen bedient man sich einer Programmiersprache. Ausgangspunkt ist stets ein Problem der realen Welt. Beispielsweise sollen Berechnungen durchgeführt werden, oder die Daten der Kunden sind systematisch zu verwalten. Auch Computerspiele fallen in diese Kategorie. Das Problem muss analysiert und damit einer Lösung zugänglich gemacht werden. Dafür werden Algorithmen verwendet. Ein Algorithmus wird wie folgt definiert [1]: „Ein Algorithmus ist eine detaillierte und explizite Vorschrift zur schrittweisen Lösung des Problems“. Es gelten folgende Eigenschaften:

  • Die Ausführung des Algorithmus erfolgt in einzelnen Schritten

  • Jeder Schritt umfasst lediglich eine einfache Grundaktion

  • Zu jedem Zeitpunkt muss klar sein, welcher Schritt als Nächstes auszuführen ist

Danach wird die Problemstellung in einer Programmiersprache verfasst. Man spricht auch vom Quellcode (Quellprogramm, Sourcecode). Programmiersprachen sind mehr oder weniger an den Bedürfnissen der Problemstellung ausgerichtet und erlauben damit eine problemorientierte Formulierung der Lösung. Von der Technik des Computers wird weitgehend abstrahiert. Der Computer selbst versteht lediglich die Maschinensprache (eine Folge von 0 und 1). Zwischen Quellprogramm und Maschinenprogramm findet die Übersetzung statt. Dieser Vorgang wird durch den Compiler erledigt. Letztendlich kann der gesamte Vorgang des Programmierens auch in Analogie zum Kommunikationsprozess zwischen Menschen aufgefasst werden. Beispielsweise erklärt man als Erwachsener eine recht komplexe Situation der realen Welt kindgerecht, lediglich unter Zuhilfenahme des kindlichen Wortschatzes (Abb. 2).

krypczyk2.tif_fmt1.jpgAbb. 2: Mensch-Maschine-Kommunikation über eine Programmiersprache [2]

Der Übersetzer (Compiler) bestimmt also, für welche Zielsysteme (Hard- und Software) das Programm erstellt wird. Er ist dabei u. a. auf das Betriebssystem und den Prozessor abgestimmt (Abb. 3).

krypczyk3.tif_fmt1.jpgAbb. 3: Prinzip der Übersetzung von Programmen [2]

Welche Sprache?

Diese Frage kann man nur bedingt beantworten. Gleich vorweg: Es gibt keine ideale – für alle Zwecke geeignete – Programmiersprache. Grundsätzlich können die einzelnen Sprachen bezüglich der von ihnen unterstützten Konzepte eingeordnet werden. Je nach Problemstellung eignet sich die eine oder andere Sprache besser, sie wird durch das gewählte Betriebssystem umfassender unterstützt, oder die dafür verfügbaren Werkzeuge (Entwicklungsumgebungen) sind besonders leistungsfähig. Auch die historische Entwicklung der Programmiersprachen spielt bis heute eine große Rolle. Einige Sprachen haben sich universell etabliert und weisen eine breite Palette an Konzepten auf, andere Sprachen haben auf neueste Entwicklungen reagiert und damit bewusst mit „Altlasten“ gebrochen. Eine (nicht vollständige) Übersicht bekannter und zugleich historischer Programmiersprachen zeigt Tabelle 1.

Name der Sprache

Entstanden

Sprachkategorie

Anwendungsgebiet

Bemerkungen

Fortran (Formula Translation)

1954–1957

Prozedural

Mathematisch-technische Probleme

Erste problemorientierte Sprache; Weiterentwicklung Fortran 77, Fortran 90

Algol 60 (Algorithmic language)

1958–1960

Prozedural

Mathematisch-wissenschaftliche Probleme

Anlehnung an mathematische Formeltradition; knappe einheitliche und geschlossene Defini­tion der Sprache. Weiterentwicklung: Agol 68

Cobol (Common Business Oriented Language)

1959–1960

Prozedural (objektorientiert)

Kaufmännische Probleme, fürtechnisch-naturwissen­schaft­liche Probleme ungeeignet

Keine klare Definition, unsystematischer Auf­­bau, ei­ne der am weitesten verbreiteten Sprachen; 1997 erweitert zu OO-Cobol mit objektorientierter Konzeption

Lisp (List Processing)

1959–1962

Funktional

Symbolmanipulation

Unterscheidet sich wesentlich von Fortran, Agol oder Cobol, besonderes in den Datenstrukturen

Basic (Beginner’s All Purpose Symbolic Instruction Code)

1963–1965

Prozedural

Kleinere mathematisch-technische Probleme

Dialogorientiert, Sprachumfang nicht einheitlich festgelegt; Weiterentwicklung: Visual Basic

PL/1 (Programming Language 1)

1964–1967

Prozedural

Mathematisch-technische und kaufmännische Probleme

Sehr umfangreich; mangelnde Systematik und Überblickbarkeit

Simula 67

1965–1967

Prozedural

Mathematisch-wissenschaftlich-technische Probleme und Simulation

Erweiterung von Agol 60; enthielt wichtige Konzepte für die objektorientierte Programmierung

Pascal (nach Blaise Pascal)

1971

Prozedural

Mathematisch-technische und kaufmännische Probleme

Weiterentwicklung von Agol 60; Berücksichtigung von didaktischen Gesichtspunkten

C

1974

Prozedural

Systemnahe Programmierung

Als Nebenprodukt zum Betriebssystem Unix entstanden; sehr verbreitet

Modula-2

1976

Prozedural (objektorientiert)

Mathematisch-technische und kaufmännische Probleme

Weiterentwicklung von Pascal, Modulkonzept, Modula-3 objektorientiert

Prolog

1977

Prädikativ

Anwendung mit symbolischen Formeln

Einsatz bei Expertensystemen

Ada

1979

Prozedural (objektorientiert)

Echtzeitanwendung

Weiterentwicklung von Pascal, Ada-95 um Objektorientierung erweitert

SQL

1970–1980

Deklarativ

Datenbankanwendung

1983 genormt

Smalltalk-80

1970–1980

Objektorientiert

Anwendungs- und Softwaresysteme

Objektorientierte Programmierung, erste objektorientierte Sprache

C++

1980–1983

Prozedural (und objektorientiert)

Anwendungs- und Softwaresysteme

Obermenge von C, erweitert im ANSI-Standard 1998

Eiffel

1986–1988

Objektorientiert

Umfangreiche Softwaresysteme

Konstruktion zuverlässiger, erweiterbarer und wiederverwendbarer Software; enthält Zusicherungen

Oberon

1988

Objektorientiert

Bildung (Universitäten)

Weiterentwicklung von Modula-2

Java

1990–1997

Objektorientiert

Anwendungen in vernetzten und heterogenen Umgebungen

Berücksichtigt C++- und Smalltalk-80-Konzepte; inzwischen breiter Anwendungsbereich

C#

2000–2002

Objektorientiert

Anwendung auf Microsoft-Plattformen

Große Ähnlichkeit mit Java; zugeschnitten auf die .NET-Plattform

Tabelle 1: Überblick über einige Programmiersprachen [2]

Und welche Sprache wählen wir jetzt? Egal ... naja nicht ganz! Um den Einstieg in der Programmentwicklung so einfach wie möglich zu gestalten, sollte man eine universelle Sprache mit guter Werkzeugunterstützung, einer Vielzahl von Anwendungsmöglichkeiten und ausreichender Verbreitung wählen. Auch moderne Konzepte sollten unterstützt werden. Hat man erst einmal die Grundlagen einer Sprache verstanden, so fällt es relativ leicht, eine zweite oder dritte Programmiersprache zu lernen. Es gibt stets viele Gemeinsamkeiten. Mit der Zeit wird man die Unterschiede als Chance sehen, für die aktuelle Problemstellung seinen Favoriten auszuwählen. Letztendlich bleibt es aber auch eine Frage des Geschmacks. Wir haben uns für C# entschieden. Dafür sprechen die folgenden Gründe:

  • Es ist eine moderne Sprache, mit Potenzial für die unterschiedlichsten Anwendungstypen (Desktop, App, Web)

  • Sie basiert auf dem leistungsfähigen .NET-Framework, das heute als Standard für die Entwicklung von Windows-Applikationen gilt

  • Die Sprache ist relativ einfach zu erlernen, die Komplexität von C und C++ ist außen vor geblieben

  • Sie bietet bestmögliche Unterstützung durch die integrierte Entwicklungsumgebung Visual Studio

  • Verfügbarkeit von vielfältigen Informationen (Fachbücher, Internet, Community)

  • Compiler und Werkzeuge für den Einstieg sind frei verfügbar

Handwerkszeug

Die Effizienz der Programmerstellung wird maßgeblich durch die Qualität der zur Verfügung stehenden Entwicklungsumgebung definiert. Für .NET-Anwendungen und C# wird Visual Studio verwendet. Für den durchaus professionellen Einstieg steht Visual Studio Community – aktuell in Version 2013 – zur Verfügung. Der Download erfolgt von [3], die Installation unterscheidet sich nicht von einem herkömmlichen Anwendungsprogramm.

Ein erstes Programm

Beginnen wir mit einem ersten Test. Wir erstellen eine Windows-Applikation. Sie werden sehen, es ist recht einfach. Motivierend dürfte wirken, dass mithilfe der integrierten Entwicklungsumgebung Visual Studio mit wenigen Handgriffen der Rahmencode für eine komplette Anwendung erstellt ist. Starten wir sogleich:

  • Start von Visual Studio 2013.

  • Wir rufen den Assistenten für ein neues Projekt über den Menüpunkt Datei | Neues Projekt auf (Abb. 4).

  • Aus den angebotenen Vorlagen wählen wir Visual C# | Windows-Desktop und unmittelbar den ersten Eintrag Windows-Forms-Anwendung.

  • Im unteren Teil des Dialogfelds sind der Name des Projekts und der Speicherort anzugeben. Sinnvoll ist es auf jeden Fall, einen eigenen Ordner anzulegen.

  • Mit Klick auf den Button OK wird das Projekt erstellt. Nach wenigen Augenblicken ist dieser Vorgang abgeschlossen, und man landet direkt im Entwurfsmodus des einzigen Formulars der künftigen Anwendung (Abb. 5).

  • Einem ersten Start steht nun nicht mehr im Wege. Klicken Sie dazu direkt in der Symbolleiste von Vi­sual Studio auf Starten. Die Anwendung wird darauf unmittelbar ausgeführt. Natürlich wird nur ein leeres Fenster angezeigt, das jedoch bereits alle typischen Eigenschaften einer Windows-Applikation erfüllt: Man kann das Fenster verschieben, minimieren, maximieren oder schließen. Auch das Systemmenü ist vorhanden.

krypczyk4.tif_fmt1.jpgAbb. 4: Auswahl eines neuen Projekts in Visual Studio
krypczyk5.tif_fmt1.jpgAbb. 5: Formular der Anwendung – automatisch von Visual Studio erzeugt

Nun wollen wir unsere erste Anwendung erweitern. Zur Demonstration grundlegender Aspekte werden wir einige Textfelder zur Oberfläche hinzufügen. In diese Textfelder können später Zahlen erfasst werden, mit denen wir einfache Berechnungen durchführen und das Ergebnis an ein anderes Textfeld zurückgeben. Folgende Schritte sind dazu notwendig:

  • Ziehen Sie aus dem Werkzeugkasten (Ansicht | Werkzeugkasten) drei TextBox-Steuerelemente und einen Button auf das Formular.

  • Zur Beschriftung der Textfelder ergänzen wir drei weitere Elemente vom Typ Label.

  • Über den Eigenschafteneditor (Ansicht | Eigenschaftenfenster bzw. die Taste F4) können zu jedem Steuerelement die Eigenschaften wunschgemäß angepasst werden. Zu den im Formular platzierten Steuerelementen nehmen wir dazu die Einstellung gemäß Tabelle 2 vor.

  • Beim Klick auf den Button sollen die in den Textboxen Zahl 1 und Zahl 2 erfassten Zahlenwerte addiert werden und das Ergebnis ist in der Textbox auszugeben. Dazu ist Code zu schreiben. Unterhalb des Menüpunkts Ansicht dienen die Einträge Code und Designer dem Umschalten zwischen dem grafischen Editor für das Formular und dem Quelltexteditor. Damit beim Klick auf den Button eine Aktion ausgelöst wird, muss ihm ein Ereignis zugeordnet werden. Dazu wählt man den Button aus und klickt im Eigenschafteneditor auf das Symbol für die Ereignisse. Man wählt das Ereignis Click, indem man mit der linken Maustaste doppelt neben das Wort „Click“ in das leere Feld klickt. Es öffnet sich automatisch der Quelltexteditor.

  • Es muss der Code zur Berechnung in der so genannten Ereignisbehandlungsmethode hinterlegt werden. In unserem Beispiel heißt die Ereignisbehandlungsmethode button1_Click(…). Erfassen Sie dazu den Code gemäß Listing 1. Sie müssen jetzt noch nicht alle Anweisungen verstehen. Einige Erläuterungen erfolgen noch im nächsten Textabschnitt, der vollständige Zusammenhang wird erst im Laufe der weiteren Beiträge klar.

  • Wenn Sie den Quelltext richtig erfasst haben (keine Hervorhebungen für Fehlerhinweise), können Sie danach die Anwendung neu starten und ausprobieren. Sie können jetzt zwei ganze Zahlen addieren und das Ergebnis wird nach Klick auf Berechnen angezeigt.

Listing 1

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace WindowsFormsApplication1
{
  public partial class Form1 : Form
  {
    public Form1()
    {
      InitializeComponent();
    }
 
    private void button1_Click(object sender, EventArgs e)
    {
      int Zahl1;
      int Zahl2;
      int Ergebnis;
      Zahl1 = int.Parse(textBoxZahl1.Text);
      Zahl2 = int.Parse(textBoxZahl2.Text);
      Ergebnis = Zahl1 + Zahl2;
      textBoxErgebnis.Text = Ergebnis.ToString();
    }
  }
}

Eigenschaft

Wert

TextBox 1

Name

textBoxZahl1

TextBox 2

Name

textBoxZahl2

TextBox 3

Name

textBoxErgebnis

Label 1

Text

Zahl 1

Label

Text

Zahl 2

Label 3

Text

Ergebnis

Button

Text

Berechnen

Tabelle 2: Anzupassende Eigenschaften der Steuerelementen im Formular

Eine erste Analyse

In diesem Abschnitt erfolgt eine knappe Analyse des Quelltexts aus Listing 1:

  • Die Zeilen 1 bis 9 enthalten using-Anweisungen (z. B. using System). Damit werden Bibliotheken geladen, die bei der Programmierung benötigt werden. Standardmäßig hat Visual Studio bereits ein paar sinnvolle Vorschläge gemacht. Zunächst sind hier keine weiteren Anpassungen notwendig.

  • Jede Anweisung muss mit einem Semikolon abgeschlossen werden.

  • Zeile 11: Jeder Programmcode muss einem Bereich zugeordnet werden. Diese Bereiche werden als namespace bezeichnet. Wenn die Projekte umfangreicher werden, dienen die Namespaces der späteren Strukturierung des Quellcodes. Auch hier macht Visual Studio bereits einen Vorschlag. Solche Bereiche werden in geschweiften Klammern (Zeile 12 und Zeile 32) eingefügt.

  • Auch andere zusammenhängende Bereiche müssen in geschweifte Klammern gesetzt werden. Dabei sind Bereiche ineinander zu schachteln.

  • Zeile 13: C# ist eine objektorientierte Sprache, d. h. alle Anweisungen müssen innerhalb von Klassen erfolgen (das Klassenkonzept wird ausführlich in Teil 3 dargestellt). Grundsätzlich ist das Formular auch eine Klasse mit den Namen Form1. Alle Klassen gehören einem bestimmten Typ an (hier vom Typ Form).

  • Zur Klasse Form1 gehört u. a. die Ereignisbehandlungsmethode button_Click(…) (Zeile 20 bis Zeile 30). Von Bedeutung sind jetzt die Zeilen 22 bis 28)

  • Zeile 22: Definition einer Variablen (dient der Speicherung von Werten eines bestimmten Typs) mit dem Namen Zahl1. Der Typ ist int (integer = Ganzzahl).

  • Zeile 23: Definition einer Variablen mit dem Namen Zahl2. Der Typ ist wieder int.

  • Zeile 24: Definition einer Variablen mit dem Namen Ergebnis. Der Typ ist wieder int.

  • Zeile 25: Zuweisung des Wertes aus der Textbox (textBoxZahl1) in die Variable Zahl1. Der eingegebene Wert steht in der Text-Eigenschaft der Textbox, und es handelt sich um eine Zeichenkette. Diese Zeichenkette muss in eine Zahl gewandelt werden. Das erfolgt mittels der Methode int.Parse(…).

  • Zeile 26: Wie Zeile 25 für die Variable Zahl2.

  • Zeile 27: Durchführung der Addition und Zuweisung des Ergebnisses an die Variable Ergebnis.

  • Zeile 28: Das Rechenergebnis aus der Variable Ergebnis wird in der Textbox (textBoxErgebnis) angezeigt. Dazu muss es von einer Zahl (Typ int) nunmehr in eine Zeichenkette gewandelt werden. Dies erledigt die Methode ToString().

Umfassende Erläuterungen zu Klassen, deren Bestandteilen und Datentypen erfolgen in den kommenden Beiträgen der Artikelserie.

Unsere Basis: .NET

Windows-Applikationen werden meist auf der Basis des so genannten .NET-Frameworks entwickelt. Der oben beschriebene allgemeine Vorgang der Programmerstellung (Quellcode => Kompilieren => Maschinecode) wird bei Verwendung einer .NET-Programmiersprache noch etwas abgeändert. Der Programmcode wird beim Kompilieren in eine Zwischensprache, den so genannten MSIL-Code (Microsoft Intermediate Language Code), übersetzt. Dieser Zwischencode ist für alle verwendeten Programmiersprachen gleich. Erst bei der Ausführung des Programms wird aus dem MSIL-Code mittels des Just-in-time-(JIT-)Compilers in Maschinencode übersetzt (Abb. 6).

krypczyk6.tif_fmt1.jpgAbb. 6: Grundkonzept JIT-Compiler [4]

Damit eine .NET-Anwendung auf dem Rechner ausgeführt werden kann, ist es erforderlich, dass die .NET-Laufzeitumgebung (in der aktuellen Version) auf dem Zielrechner vorhanden ist. Dies ist bei allen aktuellen Windows-Versionen automatisch der Fall. Das .NET-Framework ist eine Entwurfs- und Laufzeitumgebung. Die Hauptkomponenten sind [4]:

  • Common Language Specification (CLS): .NET-Anwendungen können in unterschiedlichen Sprachen (Visual Basic .Net, C#, F# …) entwickelt werden. Um aus diesen unterschiedlichen Ansätzen einen einheitlichen Zwischencode (MSIL) zu erzeugen, sind Richtlinien und Standards zu definieren, die eine .NET-Sprache einhalten muss. Damit wird sichergestellt, dass innerhalb eines Projekts mehrere Sprachen verwendet werden können.

  • Common Language Runtime (CLR): Die Laufzeitumgebung – sie ist die Basis dafür, dass .NET-Programme auf dem Zielrechner ausgeführt werden können.

  • .NET-Klassenbibliothek: Es wird eine Vielzahl von Klassen (mit jeder Version ist die Zahl der Klassen gestiegen) zur Verfügung gestellt, die in den Programmen verwendet werden können. Für fast jeden Anwendungszweck gibt es vorbereitete Klassen, die eine effektive Programmerstellung unterstützen.

  • Compiler für die diversen Programmiersprachen, z. B. für C#, VB.NET, F# usw.

Die Details der .NET-Klassenbibliothek (Funktionsweise, Aufbau) werden einem im Laufe der Programmierung schnell vertraut.

krypczyk7.tif_fmt1.jpgAbb. 7: Handskizze des UI zur Beispielaufgabe

Fazit, Hausaufgabe und Ausblick

Sie haben etwas über Programmierung, Programmiersprachen und die Programmentwicklung allgemein erfahren. Auch ein erstes Testprogramm – gewissermaßen zur Motivation – haben wir erstellt. Im kommenden Teil der Artikelserie werden wir uns mit den Kernelementen der Programmentwicklung auseinandersetzen. Wir betrachten die wichtigsten Elemente eines Algorithmus. Beginnend bei Datentypen und Variablen werden wir uns danach mit den Ablaufstrukturen eines Computerprogramms auseinandersetzen. Viele dieser Dinge sind seit den Anfängen der Programmierung nahezu unverändert. Aber auch neue technische Entwicklungen finden sich wieder. Bis dahin möchten wir Sie ermuntern, neugierig zu stöbern und sich interessiert mit den Inhalten dieses ersten einführenden Teils auseinanderzusetzen. Damit Sie Ihren Wissenstand gut kontrollieren können, finden Sie im Textkasten („Hausaufgabe“) eine kleine Übung. Die Lösung steht unter [6] zur Verfügung.

krypczyk_veikko_sw.tif_fmt1.jpgDr. Veikko Krypczyk studierte und promovierte in Betriebswirtschaftslehre mit dem Schwerpunkt Wirtschaftsinformatik. Er ist Fachautor und begeisterter Entwickler.

bochkor_olena_sw.tif_fmt1.jpgOlena Bochkor studierte Betriebswirtschaftslehre u. a. mit dem Schwerpunkt Wirtschaftsinformatik. Weitere Informationen zu diesen und anderen Themen der IT finden Sie unter http://it-fachartikel.de.

Die Geheimdienste (und nicht nur die) möchten so viel wie möglich über alles und jeden wissen. An alle Daten kommen sie nicht so einfach ran, darum beschränken sie sich oft auf die die eigentlichen Daten beschreibenden Metadaten. Das lässt sich der Öffentlichkeit auch viel besser verkaufen, denn die Metadaten sind ja „völlig harmlos“.

Ich frage mich ja immer, ob die Geheimdienste uns wirklich für so dämlich halten und denken, dass wir ihnen tatsächlich alles glauben, was sie uns auftischen. Wenn die Metadaten so harmlos sind, warum sollten die Geheimdienste sie dann überhaupt haben wollen? Allein schon, dass Geheimdienste, Polizei und Co. offenbar ein solch großes Interesse an Metadaten haben, beweist doch, dass sie diese für äußerst nützlich halten. Grund genug, in diesem Artikel unter die Lupe zu nehmen, was Metadaten über unser aller Leben verraten.

Die Daten aus der Vorratsdatenspeicherung

Fangen wir mit der altbekannten Vorratsdatenspeicherung für die Telekommunikation an. Die gesammelten Metadaten enthalten zwei Arten von Informationen. Da sind zum einen die Standortinformationen. Bei einem Festnetzanschluss wissen die Auswerter also, wann von einem bestimmten Telefonanschluss telefoniert wurde. Das ist noch nicht so besonders interessant, zumal das Telefon ja von mehreren Personen benutzt werden kann. Sehr viel interessanter sind die Standortdaten im Fall eines Mobiltelefons. Zunächst einmal, weil das im Allgemeinen nur von einer Person genutzt wird, und in der Folge natürlich, weil bei jeder Nutzung der aktuelle Standort in Form der genutzten Funkzelle gespeichert wird. Egal, ob der Anschlussinhaber selbst jemanden anruft oder angerufen wird, ob er eine SMS sendet oder empfängt, ob er im Internet surft oder in seinem Smartphone (vielleicht sogar erfolglos) nach neuen Mails sucht – jedes Mal wird die vom Handy genutzte Funkzelle gespeichert.

Dazu kommen die Informationen über die Ziele der Kommunikationsvorgänge: Wer wurde angerufen, und wer hat angerufen, wem wurde eine SMS geschickt, und von wem wurde eine SMS empfangen. Außerdem wird gespeichert, wie lange jeweils kommuniziert wurde.

Sehr interessant: Standortdaten von Mobiltelefonen

Was sich allein aus den Standortdaten von Mobiltelefonen herausfinden lässt, wenn man sie mit öffentlich verfügbaren Informationen kombiniert, wurde schon 2011 anhand der Vorratsdaten des Grünen-Politikers Malte Spitz gezeigt [1]. Der hatte seinen damaligen Mobilfunkanbieter T-Mobile auf Herausgabe der Daten verklagt, die im Rahmen der damals vorgeschriebenen Vorratsdatenspeicherung im Zeitraum August 2009 bis Februar 2010 gesammelt worden waren [2]. Da sich das Verfahren hinzog und das Bundesverfassungsgericht in der Zwischenzeit die Vorratsdatenspeicherung für verfassungswidrig erklärt und die Löschung aller gespeicherten Daten angeordnet hatte, war plötzlich Eile geboten. Nach einer außergerichtlichen Einigung hat Malte Spitz die gesammelten Daten ohne die gespeicherten Telefonnummern erhalten. Es fehlen also die Informationen darüber, wen er angerufen hat und wer ihn angerufen hat, wem er eine SMS geschickt hat und von wem er eine erhalten hat [3].

Die Daten enthalten also „nur“ noch die Informationen darüber, wann sich Malte Spitz wo aufgehalten hat, zu welchen Zeiten er sein Handy benutzt hat und zu welchen nicht, wann er telefoniert oder eine SMS verschickt hat. Die Standortdaten sind im Fall von Malte Spitz sehr fein aufgelöst, denn er hatte sein Smart­phone so konfiguriert, dass es alle 10 Minuten nach neuen ­E-Mails sucht. Alle 10 Minuten hat sich das Gerät also bei einer Funkzelle angemeldet und damit seinen Standort in den Vorratsdaten verewigt.

Aus den Änderungen der Funkzellen kann nicht nur festgestellt werden, wo das Mobiltelefon sich befindet, sondern auch, wie schnell es sich bewegt. Und damit zumindest teilweise auch, welches Verkehrsmittel genutzt wird. 700 km/h schafft nur ein Flugzeug, bei 300 km/h wurde wohl ein ICE genutzt. Schwieriger wird es im Bereich 100 bis 150 km/h, aber da verrät ein Blick auf Karte meist, ob die Bewegung entlang einer Autobahn oder einer Schienenstrecke erfolgte.

Die erhaltenen Daten hat Malte Spitz der „Zeit Online“ zur Verfügung gestellt, wo man aus diesen Daten und öffentlich bekannten Informationen über Malte Spitz eine interaktive Karte erstellt hat [3], [4]. Seine Bewegungen wurden mit seinen Tweets und Blogeinträgen zu den jeweiligen Zeitpunkten verknüpft, außerdem werden seine auf der Website der Grünen veröffentlichten Termine zusammen mit den Daten dargestellt. Wenig verwunderlich, stimmen die Orte der Termine und die zum jeweiligen Zeitpunkt genutzten Funkzellen überein.

Speziell hervorgehoben wurden die Daten vom 12. September 2009 [5]. Damals fand in Berlin die Demonstration „Freiheit statt Angst“ gegen den Überwachungswahn statt, die von Malte Spitz mit organisiert wurde. Daher nahm er natürlich auch daran teil, sodass eine Bestätigung durch die Standortdaten ja eigentlich nicht nötig wäre. Bei jedem normalen Telefonnutzer hätten die Auswerter der Daten so aber erfahren, dass er sehr wahrscheinlich bei der Demo war. Eine Möglichkeit, die ja auch andernorts von der Polizei bereits aktiv für Überwachungszwecke genutzt wurde.

Viel interessanter: Kommunikationsdaten

Noch viel interessanter als die Standortdaten sind die Kommunikationsdaten. Wenn man weiß, wer wie lange mit wem kommuniziert hat, kann man sehr gut die Beziehungen zwischen den einzelnen Personen ermitteln. Dazu kommen Informationen wie zum Beispiel die Betreffzeilen von E-Mails, die oft etwas über den Inhalt der Mail verraten (und vieles mehr). Darüber, was die Metadaten alles verraten, gibt es inzwischen mehrere Experimente und Studien.

Beispiel 1: Eine Woche im Leben von Ton Siedsma

Der Niederländer Ton Siedsma hat ab dem 11. November 2013 eine Woche lang eine App auf seinem Smartphone laufen lassen, die alle Metadaten sammelt und diese Daten an ein Forscherteam liefert [6]. Erfasst wurden der Standort seines Handys, die Nummern, die er angerufen oder an die er eine SMS geschickt hat, die Absender, Empfänger und Betreffzeilen verschickter und empfangener E-Mails und die URLs der besuchten Websites.

Ausgewertet wurden die Daten vom Journalisten Dimitri Tokmetzis, dem iMinds-Forschungsteam der Universität Gent sowie Mike Moolenaar, dem Inhaber von „Risk and Security Experts“. Aus den Metadaten dieser einen Woche wurden 15 000 mit einem Zeitstempel versehene Datensätze gebildet. Daraus konnte sehr viel über Ton Siedsma herausgefunden werden:

  • Sein Beruf, sein Alter, seine Arbeitszeiten, wie er zur Arbeit kommt und von wann bis wann er arbeitet; für wen er arbeitet, was seine vermutlichen Aufgaben sind und mit wem er deswegen kommuniziert

  • Den Namen seiner Freundin, mit der er täglich durchschnittlich 100 WhatsApp-Nachrichten austauscht

  • Den Namen und die E-Mail-Adresse seiner Schwester, die noch studiert und an ihrer Abschlussarbeit arbeitet, um die es in der Betreffzeile einer E-Mail geht

  • Dass er Nikolaus gefeiert und dabei die Vergabe der Geschenke ausgelost hat

  • Er liest gerne Sportnachrichten auf bestimmten Portalen und interessiert sich hauptsächlich für Radfahren; er fährt auch selbst gerne Rad und hat bei Google und Yahoo! nach skandinavischen Krimis gesucht, die er deshalb vielleicht gerne liest

  • Er interessiert sich für Philosophie und Religion und ist vermutlich Christ; er suchte nach Informationen über die Religionsexpertin Karen Armstrong, das Thomas-Evangelium, das „Messias Buch des Mittelalters“ und Symbolik in Kirchen und Kathedralen; häufig nutzt er Wikipedia

  • Welche YouTube-Videos er angesehen (wobei der Aufruf von Rick Astleys „Never Gonna Give You Up“ auch die Folge eines Rickrolling sein könnte) und welche Webseiten er gelesen hat, wofür er sich also vermutlich interessiert

  • Er betreibt viel Onlineshopping und empfängt entsprechende Newsletter

  • Er verwendet drei E-Mail-Konten und trennt strikt die Kommunikation:

  • Ein Hotmail-Konto wird für den Empfang von Werbe-E-Mails und die Kommunikation mit einigen Bekannten genutzt, er selbst sendet darüber aber nur selten E-Mails; dieses Konto ist älter als sein anderes persönliches Konto

  • Ein weiteres persönliches Konto wird sehr viel aktiver genutzt und für die Arbeit und die Kommunikation mit engeren Freunden verwendet

  • Er verwendet ein weiteres Konto für die Arbeit

  • Er interessiert sich für IT, Informationssicherheit, Datenschutz und Freiheit im Internet; er sendet regelmäßig PGP-verschlüsselte E-Mails; er verfolgt Nachrichten über Hacking-Angriffe und aufgeflogene Kinderpornoringe – was sich beides mit seinen beruflichen Aufgaben erklären lässt, einen übereifrigen Strafverfolger aber unter Umständen zu Ermittlungen veranlassen könnte, denn vielleicht möchte Ton Siedsma ja auch prüfen, ob man ihm schon auf den Fersen ist

  • Welche politischen Einstellungen er vermutlich hat und mit welcher Partei er wahrscheinlich sympathisiert

  • Er hat in einem geschützten Bereich der Websites seines Arbeitgebers einige Dateien aktualisiert, deren Namen aus den URLs ersichtlich ist

Gefangen im sozialen Netz

Eine soziale Netzwerkanalyse auf Basis des E-Mail-Verkehrs erlaubt es, ausgehend von den verschiedenen E-Mail-Adressen verschiedene Gruppen, denen Ton Siedsma angehört, zu unterscheiden. Diese Daten sähen unter Umständen etwas anders aus, wenn auch die Informationen über die Telefonnutzung in die Auswertung einbezogen würden. Um die Privatsphäre von Ton Siedsmas Kontakten zu schützen, wurde aber darauf verzichtet, die Identität der Benutzer der Telefonnummern aktiv aufzudecken.

  • Über sein Hotmail-Konto kommuniziert er mit einer Gruppe von Freunden und Bekannten, die vermutlich nur aus Männern besteht. Einige davon tragen besonders viel zur Kommunikation bei.

  • Es gibt außerdem Kommunikation mit einer zweiten Gruppe, die von einem Mann namens „Bert“ geleitet wird. Da es sich dabei um eine persönliche Angelegenheit handelt, hat Ton Siedsmas die entsprechenden Hintergrundinformationen (als einziges übrigens) zensiert.

  • Es gibt eine dritte, kleinere Gruppe von Freunden, die sich gemeinsam an der E-Mail-Diskussion beteiligen und sich daher vermutlich untereinander kennen. Einige davon senden auch E-Mails an die zweite persönliche E-Mail-Adresse.

  • Eine weitere Gruppe bildet sich rund um die Arbeits-E-Mail-Adresse. Dabei gehen die E-Mails oft an mehrere Empfänger oder gleich die Gruppenadresse für alle Mitarbeiter. Nur zwei der Mitglieder aus dieser Gruppe kommunizieren auch mit der persönlichen ­E-Mail-­Adresse.

  • Es gibt relativ wenig Kommunikation mit Externen.

Das waren nur die Metadaten, aber es geht noch weiter ...

Bisher wurden nur die Metadaten verwendet. Die Forscher von iMinds verglichen Ton Siedsmas Metadaten mit einer Datei, die 150 Millionen bei Adobe ausgespähte und veröffentlichte Zugangsdaten enthielt. Zwar sind die Passwörter verschlüsselt (vermutlich als ungesalzener Hash-Wert gespeichert, sodass identische Passwörter als identischer Hash-Wert gespeichert wurden), aber die Passwort-Vergessen-Hinweise liegen als Klartext vor.

Einige Adobe-Nutzer verwendeten das gleiche Passwort wie Ton Siedsma, das anhand seiner E-Mail-­Adresse erkannt werden konnte. Deren Passwort-Vergessen-Hinweise waren „Punk-Metall“, „Astrolux“ und „Another Day in Paradise“. Daraus schlossen die Forscher auf Grund von Siedsmas Lieblingsband Strung Out auf das Passwort strungout. Und damit lagen sie richtig, denn damit konnten sie auf sein Twitter-, Goo­gle-und Amazon-Konto zugreifen. Sie sehen daran, wie wichtig es ist, für alle Dienste unterschiedliche Passwörter zu verwenden!

Das war nur ein kleiner Test!

Die Auswertung der Metadaten von Ton Siedsma erfolgte nur mit gängiger Software, die gesammelten Telefonnummern wurden nicht in Namen aufgelöst, und mit Ausnahme der Datei mit den Zugangsdaten von Adobe wurden keine zusätzlichen Daten verwendet. Trotzdem haben die Metadaten von einer einzigen Woche erschreckend viel über Ton Siedsma verraten. Wie viel mehr erfahren dann Geheimdienste und Co., denen viel mehr Daten über einen viel längeren Zeitraum zur Verfügung stehen? Denn sie haben ja nicht nur über ihre Abhörschnittstellen Zugriff auf die Metadaten der Telekommunikation, wie es von der App auf Ton Siedsmas Smartphone simuliert wurde, sondern auch noch über etliche andere Quellen.

Beispiel 2: Sechs Monate im Leben von Balthasar Glättli

Die Vorratsdatenspeicherung gibt es auch in der Schweiz, und auch dort hat einen Grünen-Politiker seine Daten zur Analyse bereitgestellt. Der Nationalrat Balthasar Glättli hat sich die Vorratsdaten seines Mobilfunkbetreibers für den Zeitraum von Januar bis Juli 2013 verschafft und sie auswerten [7], [8] und visualisieren [9] lassen. In den sechs Monaten wurden im Fall von Balthasar Glättli 7 112 Einträge in der Datenbank erzeugt. Davon entfielen 2 610 Einträge (36,7 Prozent, 14,6 pro Tag) auf Internetverbindungen, 3 085 (43,4 Prozent, 17,2 pro Tag) auf SSM/MMS und 1 417 (19,9 Prozent, 7,9 pro Tag) auf Telefonate.

Es wurden insgesamt 5,2 GB Internettraffic verursacht (28,8 MB pro Tag), davon wurden 980 MB (5,5 MB pro Tag) heraufgeladen und 4,2 GB (23,4 MB pro Tag) heruntergeladen. Insgesamt wurden 14 638 ­E-Mails (82 pro Tag) von ca. 6 500 Personen empfangen und 1 654 E-Mails (9 pro Tag) an ca. 600 Personen gesendet.

Das Besondere an Glättlis Daten: Er hat zwar von der Telefongesellschaft nur seine eigenen Daten erhalten, hatte allerdings von einigen anderen Personen eine schriftliche Einwilligung, dass die Telefongesellschaft ihm ihre Identität mitteilen darf und sie mit einer namentlichen Erwähnung einverstanden sind. Während ansonsten alle Gegenstellen der Kommunikation anonymsiert wurden, blieben die Daten dieser Personen also erhalten.

Besonders brisant: Im Überwachungszeitraum hat Balthasar Glättli den geheimen Standort eines geplanten vollgeschützten Rechenzentrums besucht, der sich anhand der Standortdaten seines Handys feststellen lässt. Offiziell befand er sich zum Zeitpunkt dieses Besuchs zusammen mit seinen Kollegen auf einer Tagung in Genf. Zur geheimen Militäranlage wurden sie mit dem Hubschrauber geflogen, da die Reise weniger als zwei Stunden gedauert hat, während eine Zugfahrt über fünf Stunden dauern würde.

Beispiel 3: Fünf Monate im Leben von Sofie Carsten Nielsen un Jens Joel

Zwei dänische Politiker sind beim virtuellen Entblößen noch deutlich weiter gegangen. Die sozialliberale Bildungsministerin Sofie Carsten Nielsen und der sozialdemokratische Parlamentsabgeordnete Jens Joel haben der Zeitung Berlingske für fünf Monate den Zugriff auf ihre E-Mail-Konten, SMS, Finanzamtdaten, Facebook-Aktivitäten, Fitnesstracker und EC-Zahlungen erlaubt [10].

Ausgewertet wurden 18 047 E-Mails, 31 303 Telekommunikationsvorgänge und 2 407 Kontobewegungen. Dazu kamen rund 36 000 Text- und Datennachrichten sowie ein Haufen weiterer Daten, darunter 2 828 Einladungen in Jens Joels elektronischen Terminkalender und 33 740 Ortungspunkte der Lauf-App auf Sofie Carsten Nielsens Smartphone.

Das ist weit mehr, als von der Vorratsdatenspeicherung erfasst wird, einem Geheimdienst ist der Zugriff auf diese Daten aber zuzutrauen. Und der könnte damit das gesamte Privatleben der Betroffenen durchleuchten und zum Teil aus diesen Daten heraus auch auf Personen aus ihrem Umfeld schließen.

Das Ganze erfolgte natürlich mit einem Hintergedanken: Die beiden Politiker wollten mit der im April 2014 erfolgten Veröffentlichung der Ergebnisse eine Diskussion über den NSA-Skandal anstoßen, die in Dänemark bis dahin nicht stattfand.

Die Auswertungen sind teilweise nur auf dänisch verfügbar, aber schon die auch auf Englisch verfügbaren Visualisierungen der Daten sind äußerst beeindruckend [11]. So kann man zum Beispiel Sofie Carsten Nielsen Joggingrunden um Kopenhagens Seen verfolgen, feststellen, was sie im Internet gekauft hat, und sehen, wessen Facebook-Freundschaftsanfragen sie abgelehnt hat. Auch Jens Joels Wege lassen sich nachvollziehen, sowohl in der realen Welt als auch im World Wide Web. Und noch vieles mehr, denn die preisgegebenen Daten sind äußerst umfangreich.

Beispiel 4: Eine Studie der Stanford Law School mit 546 Teilnehmern

Eine Studie [12] der Stanford Law School mit 546 Teilnehmern hat die Brisanz von Metadaten bestätigt [13], [14]. Die freiwilligen Teilnehmer installierten ab November 2013 die speziell für diesen Zweck entwickelte App „Metaphone“ auf ihren Android-Smartphones, die die Telefonnummer der Anrufenden und Angerufenen sowie den Zeitpunkt und die Länge des Gesprächs als auch den aktuellen Standort protokollierten und an die Forscher übermittelten. Diese Daten wurden mit den öffentlichen Verzeichnissen von Yelp und Google Places verknüpft, was sich bereits zuvor als einfache Möglichkeit zur Identifizierung von Anschlussinhabern erwiesen hatte [15]. Die 546 Teilnehmer riefen 33 688 verschiedene Telefonnummern an, bei 6 107 (18 Prozent) dieser Nummern konnte der Anschlussinhaber identifiziert werden.

Im nächsten Schritt wurden die Kontakte herausgefiltert, die zu sensiblen Aktivitäten oder Charakteristiken gehören. So kann zum Beispiel bei Geschäftsanschlüssen oft schon aus dem Namen auf den Geschäftszweck geschlossen werden, bei mehrdeutigen Ergebnissen wurde bei Google nach weiteren Informationen gesucht. Dabei kamen einige brisante Ergebnisse heraus:

  • Teilnehmer A telefonierte mit mehreren lokalen Neurologie-Gruppen, einer Spezial-Apotheke, einer Hotline für seltene Erkrankungen und einer für ein Medikament, das nur für die Behandlung von Multipler Sklerose verwendet wird. Der Teilnehmer selbst oder ein ihm nahestehender Mensch wird also vermutlich an MS erkrankt sein.

  • Teilnehmer B telefonierte länger mit einem Kardiologen eines großen Krankenhauses, sprach kurz mit einem medizinischen Labor, erhielt Anrufe von einer Apotheke und setzte kurze Anrufe an eine Meldehotline für ein medizinisches Gerät zur Überwachung von Herzrhythmusstörungen ab. Der Teilnehmer scheint an Herzrhythmusstörungen zu leiden. Diese Vermutung konnte durch öffentliche Informationen bestätigt werden.

  • Teilnehmer C hat mehrmals bei einem Waffenhändler angerufen, der sich auf bestimmte halbautomatische Waffen spezialisiert hat, und den Kundenservice eines entsprechenden Waffenherstellers kontaktiert. Es wird sich also sehr wahrscheinlich um einen Waffenbesitzer handeln, der ein Problem mit seiner Waffe hat, oder um jemanden, der die Anschaffung einer entsprechenden Waffe plant. Ein Abgleich mit öffentlichen Informationen ergab, dass es sich um einen Waffenbesitzer handelt.

  • Teilnehmer D hat innerhalb von drei Wochen einen Baumarkt, einen Schlosser, einen Händler für Hydrokultur-Ausrüstungen und einen Headshop, der Zubehör für den Cannabis-Konsum verkauft, angerufen. Der Teilnehmer könnte also planen, Cannabis anzupflanzen.

  • Teilnehmerin E führte ein langes, morgendliches Telefonat mit ihrer Schwester. Zwei Tage später rief sie mehrmals eine Schwangerschaftsberatungsstelle an. Zwei Wochen später rief sie dort nochmals kurz an, einen Monat ein letztes Mal. Die Frau könnte also ungewollt schwanger geworden sein und sich über eine Abtreibung informiert haben.

Das waren nur einige auffällige Beispiele. Ob die Schlussfolgerungen zutreffen, wurde nicht durch Nachfragen bei Teilnehmer A, D oder E überprüft. Dazu waren die Themen auch etwas zu sensibel, da hätten die Teilnehmer wohl nicht unbedingt die Wahrheit gesagt.

Die Stanford-Studie zeigt, dass bereits simple Telefonverbindungsdaten sensible Informationen verraten. Ein einfacher Abgleich der Telefonnummern ein- und ausgehender Anrufe mit öffentlichen Datenbanken erlaubt Rückschlüsse auf sensible Informationen, die die Betroffenen teilweise sicher lieber geheim gehalten hätten. Kombiniert man die Daten mit weiteren öffentlichen Informationen, wie zum Beispiel Facebook-Profilen, steigt der Informationsgehalt deutlich. So konnte zum Beispiel der Beziehungsstatus aus den Telefondaten ermittelt und dann mit den Angaben bei Facebook abgeglichen werden [16].

Übrigens fanden die Forscher auch heraus, dass die meisten Teilnehmer über höchstens vier Kontakte miteinander in Verbindung stehen, unabhängig davon, ob sie sich kennen oder nicht [17]. Was den Geheimdiensten sehr gefallen dürfte, denn zum Beispiel die NSA darf bei der Überwachungen von „gefährlichen“ Personen deren Kontakte bis zum dritten Grad in die Überwachung einbeziehen.

Noch mehr Metadaten – in E-Mails

Bisher ging es nur um die Metadaten der Telekommunikation, es gibt aber ja noch viel mehr. Zum Beispiel in E-Mail-Headern. Von Daniel Smilkov, Deepak Jagdish und César Hidalgo vom MIT Media Lab wurde das Analysetool Immersion entwickelt, das aus den E-Mail-Metadaten eines Gmail-, Yahoo!- oder MS-Exchange-Kontos eine interaktive Visualisierung erstellt [18], [19].

Damit können Sie die Veränderungen Ihrer E-Mail-Kommunikation sowie der Beziehungen in Ihren Netzwerken nachvollziehen. Dabei werden nur die Informationen zu Absender, Empfänger und CC sowie die Zeitstempel ausgewertet, auf den eigentlichen Inhalt der E-Mails sowie die Betreffzeile wird nicht zugegriffen.

Falls Sie das Tool nicht selbst ausprobieren möchten (was ich sehr gut verstehen kann, ich habe es auch nicht getan), gibt es eine eindrucksvolle Beschreibung eines Selbstversuchs von Damian Schnyder vom SRF [20].

... oder in Kreditkartendaten

Forscher des Massachusetts Institute of Technology (MIT) in Cambridge und der dänischen Aarhus Universität haben untersucht, was die Metadaten von Kreditkartenzahlungen über die Benutzer verraten [21]. Kurz gesagt: einiges [22], [23].

Ausgewertet wurden die Kreditkartentransaktionen von knapp 1,1 Millionen Menschen in 10 000 Geschäften über einen Zeitraum von drei Monaten. Dabei waren den Forschern weder Namen noch Adressen oder Kreditkartennummern der Benutzer bekannt, lediglich Zahlungen mit der gleichen Kreditkarte waren mit der gleichen zufällig erzeugten Identifikationsnummer markiert. Außer dieser anonymen ID standen den Forschern nur Datum, Ort und Preis der Transaktion zur Verfügung. Das reichte aus, um 90 Prozent der Benutzer zu identifizieren.

Politiker und Geheimdienste als Opfer

Wenn Politiker, Geheimdienste und Co. so gerne die „harmlosen“ Metadaten speichern möchten, kann es ja nicht schaden, wenn sie mal am eigenen Leib erleben, wie „harmlos“ diese wirklich sind.

Das ist zum Beispiel 2013 den EU-Parlamentariern passiert, denen die Metadaten von rund 40 000 E-Mail-Verbindungen „gestohlen“ wurden [24]. Aus der Betreffzeile und den Dateinamen von Anhängen lässt sich in vielen Fällen das Thema der E-Mail ableiten. Absender und Empfänger geben Hinweis auf die innerpolitischen Netzwerke und Beziehungen zu Lobbygruppen. Das wird einigen der Betroffenen gar nicht gefallen haben.

Auch den CIA-Agenten, die 2013 in Italien einen Verdächtigen nach Ägypten entführt haben, wo er dann verhört und gefoltert wurde, sind Metadaten zum Verhängnis geworden. Sie hatten ihre Handys nie ausgeschaltet, sodass ihre Telefon-Metadaten den italienischen Ermittlern die CIA-Operation verrieten und etliche Agenten enttarnten.

Fazit

Die vorgestellten Studien zeigen, was wir ja eigentlich schon immer wussten: Metadaten verraten oft mehr als die eigentlichen Daten. Die Geheimdienste und Strafverfolger sind ja nicht ohne Grund viel mehr hinter den Metadaten her als hinter den eigentlichen Daten. Vermutlich sind die ohne die zugehörigen Metadaten sogar viel weniger wert als die Metadaten allein.

Wenn Ihnen also mal wieder jemand erzählen will, wie harmlos die Metadaten doch sind, erinnern sie ihn einfach an die Erfahrungen von Malte Spitz, Ton Siedsma, Balthasar Glättli, Sofie Carsten Nielsen und Jens Joel. Oder an die EU-Parlamentarier und die CIA-Agenten.

Metadaten fallen allgemein überall da an, wo Daten gespeichert werden. Denn sie dienen ja eigentlich nur dazu, die eigentlichen Daten zu beschreiben. Die Frage ist, was man später damit macht.

eilers_carsten_sw.tif_fmt1.jpgDipl.-Inform. Carsten Eilers ist freier Berater und Coach für IT-Sicherheit und technischen Datenschutz und Autor einer Vielzahl von Artikeln für verschiedene Magazine und Onlinemedien.

Web Blog
Desktop Tablet Mobile
Desktop Tablet Mobile