Owncloud an bestehende Authentifizierungsysteme anbinden

Own­cloud bie­tet ab der Ver­si­on 6 neben den übli­chen inter­es­san­ten Fea­tures eine kol­la­bo­ra­ti­ve Text­ver­ar­bei­tung an, d.h. meh­re­re Benut­zer kön­nen genau wie bei Ether­pad oder Ether­pad lite gleich­zei­tig an einem Doku­ment arbei­ten. Die For­ma­tie­rungs­mög­lich­kei­ten sind dabei umfang­rei­cher als bei der Ether­pad­de­ri­va­ten, jedoch gegen­über Lösun­gen wir Goo­g­le­Docs noch recht rudi­men­tär. Für vie­le Anwen­dungs­fäl­le reicht es jedoch voll­auf. Wer möch­te, darf das hier nach Ein­ga­be eines Spitz­na­mens ger­ne ein­mal aus­pro­bie­ren. Own­cloud nutzt ODT als nati­ves Format.

Vie­le Schu­len möch­ten ger­ne Own­cloud nut­zen und ver­fü­gen oft schon über eine Schul­ser­ver­lö­sung. Idea­ler­wei­se bie­tet die­se bereits E‑Mailadressen für alle Schul­an­ge­hö­ri­gen über das IMAP-Pro­to­koll an. Das ist z.B. bei IServ der Fall – einer in Nie­der­sach­sen sehr ver­brei­te­ten Lösung. Durch zwei klei­ne Ände­run­gen muss kei­ne sepa­ra­te Nut­zer­ver­wal­tung in Own­cloud mehr betrie­ben wer­den, wenn bereits ein IMAP-Ser­ver im Schul­netz vor­han­den ist.

Es kann eine Grund­in­stal­la­ti­on von Own­cloud als Basis genom­men wer­den. Bei den Apps muss „Exter­nal user sup­port“ zuvor akti­viert wer­den. Eine Datei ist danach zu ändern, eine hinzuzufügen.

Zu ändern­de Datei

Name: config/config.php

Quell­code:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
require_once(dirname(__FILE__).'/../apps/user_external/lib/imap_new.php');
 
$CONFIG = array (
  'instanceid' => '<hier_steht_schon_etwas>',
  'passwordsalt' => '<hier_steht_schon_etwas>',
  'datadirectory' => '<hier_steht_schon_etwas>',
  'dbtype' => 'mysql',
  'version' => '6.0.0.14',
  'dbname' => '<hier_steht_schon_etwas>',
  'dbhost' => 'localhost',
  'dbtableprefix' => 'oc_',
  'dbuser' => '<hier_steht_schon_etwas>',
  'dbpassword' => '<hier_steht_schon_etwas>',
  'installed' => true,
  'forcessl' => true,
  'user_backends'=>array(
   array(
      'class'=>'OC_User_IMAP',
      'arguments'=>array('{<server>:<port>/imap/ssl/novalidate-cert}')
   )
  ),
);

Kom­men­tar:
In Zei­le 2 wird der neu zu erstel­len­de Code (s.u.) ein­ge­bun­den, ab Zei­le 17 wird es inter­es­sant, vor allem in der Zei­le, die mit „argu­ments“ beginnt. Die Anga­ben für Ser­ver und Port sind mit den eige­nen Anga­ben zu fül­len. Ich brau­che für den IServ die Anga­be „nova­li­da­te-cert“, da es sich um ein selbst­si­gnier­tes Cert han­delt – daher zicken auch Apple­ge­rä­te ger­ne mit dem IServ, weil sie sich in der Feh­ler­mel­dung nicht klar aus­drü­cken. Nutzt man eine unver­schlüs­sel­te Ver­bin­dung, was allen­falls zu Test­zwe­cken dien­lich ist, sieht das z.B. so aus:

      'arguments'=>array('{meinserver.xy:143/imap}')

Hin­zu­zu­fü­gen­de Datei:

Name: apps/user_external/lib/imap_new.php

Quell­code:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<?php
/**
 * Copyright (c) 2012 Robin Appelman <icewind@owncloud.com>
 * This file is licensed under the Affero General Public License version 3 or
 * later.
 * See the COPYING-README file.
 */
 
class OC_User_IMAP extends OC_User_Backend{
        private $mailbox;
 
        public function __construct($mailbox) {
                $this->mailbox=$mailbox;
        }
 
        /**
         * @brief Check if the password is correct
         * @param $uid The username
         * @param $password The password
         * @returns true/false
         *
         * Check if the password is correct without logging in the user
         */
        public function checkPassword($uid, $password) {
 
                $mbox = @imap_open($this->mailbox, $uid, $password);
                imap_errors();
                imap_alerts();
 
 
                if($mbox) {
                        imap_close($mbox);
 
                        if(OC_User::userExists($uid)) {
                                  OC_User::setPassword($uid, $password);
                        } else {
                                  OC_User::createUser($uid, $password);
                                  $uida=explode('@',$uid,2);
                                  if(($uida[1] || '') !== '') {
                                        OC_Group::createGroup($uida[1]);
                                        OC_Group::addToGroup($uid, $uida[1]);
                       }
 
                }
                        return $uid;
                } else {
                        return false;
                }
        }
 
}

Kommentar: 
Die­ses Code­stück sorgt dafür, dass beim ers­ten Log­in eines Benut­zers ein Ein­trag in die User-Daten­bank von Own­cloud erfolgt. Dabei wird auch das Pass­wort ver­schlüs­selt gespei­chert, da ansons­ten kei­ne Nut­zung über die Apps von Own­cloud mög­lich ist. Der Nut­zer muss sich mit den glei­chen Daten wie am E‑Mailserver anmel­den. Ändert der Nut­zer sein Pass­wort im IServ oder auf dem E‑Mailserver, wird die­se Ände­rung bei bestehen­dem Log­in in Own­cloud übernommen. 

Update:
Mit dem Hack funk­tio­niert auch die Nut­zung mit der Own­cloud-App problemlos.

Wir sind die Roboter

Die Dämp­fe von Löt­zinn bren­nen einer kon­zen­triert über den Löt­kol­ben gebeug­ten Schü­le­rin in den Augen, der Geruch von Röst­zwie­beln liegt in der Luft, über­all lie­gen elek­tro­ni­sche und mecha­ni­sche Bau­tei­le her­um. Selt­sa­me Gefähr­te, die an die­je­ni­gen aus der Mad-Max-Trio­lo­gie anzu­knüp­fen schei­nen, fah­ren über den Flur und dre­hen wie von Geis­ter­hand vor Wän­den und Hin­der­nis­sen um. Rechts wird geflucht über die unver­meid­li­chen Trei­ber­pro­ble­me unter Windows8, links lacht sich dar­über der Nut­zer eines Ubun­tu-Desk­tops ins Fäust­chen, wäh­rend die Grup­pe im hin­te­ren Bereich das Schei­tern des letz­ten Algo­rith­mus bei einem kräf­ti­gen Biss in das selbst­ge­bau­te Hot­dog und einer Par­tie Mine­craft verarbeitet.

Die Situa­ti­on ent­stammt nicht dem Ent­wick­lungs­la­bor einer nerdi­gen Elek­tronik­fir­ma, son­dern beschreibt die Atmo­sphä­re in unse­rer neu­en Ardui­no-AG auf dem letz­ten Regio­nal­grup­pen­tref­fen recht genau. Da kann nach nicht ein­mal acht Wochen dann schon sowas herauskommen:

Die Hard­ware habe ich nach einem Schü­ler­ent­wurf nach­ge­baut. Die hier zu sehen­den Komponenten

  • ein Ardui­no UNO-Nachbau
  • ein Adafruit-Motor­s­hield-Nach­bau
  • ein HC-SR04 Ultraschallsensor
  • ein 4WD-Chas­sis
  • sechs Mignon-Akkus
  • ein Bat­te­rie­fach
  • Kabel und ande­rer Kleinkram

kos­ten etwa 50,- Euro, wenn man etwas war­ten kann. Die not­wen­di­ge Soft­ware gibt es kos­ten­los zum Down­load. Pro­gram­miert wird in einem C‑ähnlichen Dia­lekt. Der Robo­ter aus dem Video wird von die­sem Pro­gramm gesteuert: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
    #include <AFMotor.h>
 
    AF_DCMotor motor_01(1, MOTOR12_64KHZ);
    AF_DCMotor motor_02(2, MOTOR12_64KHZ);
    AF_DCMotor motor_03(3, MOTOR12_64KHZ);
    AF_DCMotor motor_04(4, MOTOR12_64KHZ);
 
    // HC-SR04
    // VCC auf 5V
    // Trig auf Trigger Pin (löst Ultraschallimpuls aus)
    // Echo auf Echo Pin (Zeit in ms bis zum Empfang des Echos)
    // GND auf GND
 
    #define echoPin 15 // Echo Pin
    #define trigPin 14 // Trigger Pin
    int turn = 1;      // Drehrichtungsänderung wenn "festgefahren"
    int count = 0;     // Anzahl der Drehausweichversuche pro Richtung
 
    long duration, distance; // Dauer um Abstand zu berechnen
 
    void setup() {
 
     motor_01.setSpeed(190);  // Wir fahren nicht volle Pulle
     motor_02.setSpeed(190);
     motor_03.setSpeed(190);
     motor_04.setSpeed(190);
 
     Serial.begin (9600);
     pinMode(trigPin, OUTPUT);
     pinMode(echoPin, INPUT);
 
    }
 
    void loop() {
 
 
     /* The following trigPin/echoPin cycle is used to determine the
     distance of the nearest object by bouncing soundwaves off of it. */ 
 
     digitalWrite(trigPin, LOW); 
     delayMicroseconds(2); 
 
     digitalWrite(trigPin, HIGH);
     delayMicroseconds(10); 
 
     digitalWrite(trigPin, LOW);
     duration = pulseIn(echoPin, HIGH);
 
     //Calculate the distance (in cm) based on the speed of sound.
     distance = duration/58.2;
 
     //Delay 50ms before next reading.
     delay(50);
 
     if (distance < 25 && turn > 0 )
 
     {
 
       motor_01.run(FORWARD);   // Motor 1 vorwärts laufen lassen
       motor_02.run(FORWARD);
       motor_03.run(FORWARD);
       motor_04.run(FORWARD); 
 
       delay(200);
 
       motor_01.run(BACKWARD);
       motor_02.run(BACKWARD);  // Motor 2 rückwärts laufen lassen
       motor_03.run(FORWARD);
       motor_04.run(FORWARD);
 
       delay(200);
 
       count++;
 
       if (count >= 3 ) {   
 
         turn = -turn;
 
       }
 
     } 
 
     else if (distance < 25 && turn < 0 )
 
     {
 
       motor_01.run(FORWARD);   // Vorwärts fahren
       motor_02.run(FORWARD);
       motor_03.run(FORWARD);
       motor_04.run(FORWARD); 
 
       delay(200);
 
       motor_01.run(FORWARD);
       motor_02.run(FORWARD);  // Motor 2 rückwärts laufen lassen
       motor_03.run(BACKWARD);
       motor_04.run(BACKWARD);
 
       delay(200);
 
          count++;
 
       if (count >= 3 ) {   
 
         turn = -turn;
 
       }
 
     }
 
     else
 
     {
       motor_01.run(BACKWARD);   // Motor 1 vorwärts laufen lassen
       motor_02.run(BACKWARD);
       motor_03.run(BACKWARD);
       motor_04.run(BACKWARD); 
 
       count = 0;
 
     }
 
    }

Beim Expe­ri­men­tie­ren mit der Ardui­no­platt­form gibt es ganz vie­le ver­schie­de­ne Herausforderungen: 

  • Es muss zumin­dest in Grund­zü­gen pro­gram­miert werden
  • Die­se Pro­gram­me bedür­fen einer stän­di­gen Optimierung
  • Ver­drah­tet“ man mit Löt­kol­ben und Schrau­bern­dre­her oder gleich im Pro­gramm selbst? – Im obe­ren Pro­gramm sind z.B. „falsch“ ange­schlos­se­ne Moto­ren durch ent­spre­chen­de Code­än­de­run­gen kom­pen­siert worden.
  • Wie struk­tu­riert man sein Pro­gramm so, dass man es die Woche dar­auf noch ver­steht? – Mor­gen wer­den wir uns mit Unter­pro­gram­men und der Para­me­ter­über­ga­be beschäftigen.
  • Wie arbei­ten die Sen­so­ren eigent­lich? (Der HC-SR04 muss z.B. so aus­ge­rich­tet wer­den, dass er nicht schon Uneben­hei­ten auf dem Boden als Hin­der­nis erfasst, mit meh­re­ren Sen­so­ren erhö­he ich die Mess­ge­nau­ig­keit usw.)
  • Wie löse ich die vie­len mecha­ni­schen Probleme?
  • Die meis­ten Pro­gram­mier­bei­spie­le im Netz sind auf Englisch …

Ich fin­de es pri­ma, dass Infor­ma­tik hier erfahr­bar wird und dass nicht nur vir­tu­ell ver­mit­tel­te Erfah­run­gen und Lern­an­läs­se vor­han­den sind. Grund­struk­tu­ren zum Pro­gram­mie­ren geben wir in der AG vor, da rei­nes Aus­pro­bie­ren schnell zu Frus­t­er­leb­nis­sen führt, ins­be­son­de­re wenn meh­re­re Akto­ren und Sen­so­ren dazukommen.
Die Schü­le­rin­nen und Schü­ler doku­men­tie­ren das im in einem Doku­Wi­ki, was sie über Akto­ren und Sen­so­ren her­aus­fin­den oder stel­len auch ganz Code­schnip­sel ein. Neben­bei ler­nen sie etwas über Syntax.

Startup – die ersten Tablets sind bereit

Ich woll­te für den ers­ten Ver­such mit Tablets nicht viel Geld ver­bren­nen, ich woll­te als Admi­nis­tra­tor die Gerä­te zen­tral ver­wal­ten und mir die­se Arbeit auch mit ande­ren tei­len kön­nen. Es han­delt sich um Schul­ge­rä­te, die ent­we­der für den ergän­zen­den Ein­satz im Kon­text mit BYOD oder für typi­sche Auf­ga­ben in Grup­pen gedacht sind. Wir wol­len dabei als Schu­le Erfah­run­gen mit die­ser Gerä­te­klas­se sam­meln, bevor wir uns Din­ge wie einen Klas­sen­satz ans Bein binden.

Die Wahl fiel schon im letz­ten Jahr auf die aus­lau­fen­de Nexus7-Rei­he (Modell 2012). Hier waren fol­gen­de Din­ge sichergestellt:

  • Ver­sor­gung mit Betrieb­sys­tem­up­dates durch Goog­le (ins­be­son­de­re das ein­ge­schränk­te Pro­fil war mir hier wichtig)
  • Robust und gut verarbeitet
  • Gute Ver­sor­gung mit Apps
  • zen­tral mana­ge­bar mit Goog­le Apps for Edu­ca­ti­on oder Meraki
  • Preis-/Leis­tungs­ver­hält­nis hervorragend

Wei­ter­hin sind wir eine recht gut ver­netz­te Schu­le. Wir woll­ten auch eine ein­fa­che Mög­lich­keit, Medi­en aller Art indi­vi­du­ell im Unter­richt nut­zen. Die Wahl fiel hier auf den DLNA-Ser­ver medi­atomb. In der Pra­xis wird das so lau­fen, dass Kol­le­gin­nen und Kol­le­gen Medi­en auf unse­ren Schul­ser­ver in ein ent­spre­chen­des Ver­zeich­nis hoch­la­den. Als Hiera­chie wird hier das jewei­li­ge Fach gewählt, das einen Ord­ner für jede Lehr­kraft erhält. Die­ses Ver­zeich­nis wird jeden Tag auf den Media­ser­ver „ent­leert“, dort auto­ma­tisch gescannt und die neu­en Medi­en ste­hen dann am nächs­ten Mor­gen im gesam­ten Schul­netz bereit. Bei uns han­delt es sich dabei vor­ran­gig um Medi­en, für das der Kreis oder das Land Online­li­zen­zen erwor­ben hat.

Sie las­sen sich dann mit einer spe­zi­el­len App, die es für fast alle Platt­for­men gibt, wie am eige­nen Fern­se­her zu Hau­se auf dem jewei­li­gen Medi­en­ge­rät (PC, Lap­top, Han­dy, Tablet, Fern­se­her etc.) abspielen.

Ver­wal­tung mit Meraki

Ich nut­ze für die Ver­wal­tung der Tablets das kos­ten­lo­se Mera­ki. Das geht natür­lich nur leid­lich gut mit Schul­ge­rä­ten, die unter einer ID lau­fen und so Per­so­nen­be­zo­ge­nes zumin­dest ver­wäs­sern. Es ist aus Daten­schutz­grün­den kei­ne Opti­on für 1:1 Lösun­gen! Mit Mera­ki kann man eine Men­ge Sache machen – bei Andro­ids z.B.:

  • die Kame­ra zen­tral ein- oder ausschalten
  • WLAN-Net­ze konfigurieren
  • Apps fern­ge­steu­ert installieren
  • Ver­schlüs­se­lung erzwingen
  • u.v.m.

Das funk­tio­niert über eine spe­zi­el­le, kos­ten­lo­se App. Die­se wie­der­um wird dadurch „ver­am­melt“, dass ich das Fea­ture „ein­ge­schränk­tes Pro­fil“ von Android ab Ver­si­on 4.3 nut­ze. Das Haupt­pro­fil ist mit einem Pass­wort geschützt. Im Haupt­pro­fil kann man fest­le­gen, wel­che Apps im ein­ge­schränk­ten Pro­fil zur Ver­fü­gung ste­hen – lei­der geht genau das noch nicht mit Mera­ki. Ich wer­de das so lösen, dass ich je Monat fünf Apps, die sich Kol­le­gen wün­schen, nach tota­li­tä­ren Kri­te­ri­en aus­wäh­le und dann zur Nut­zung freigebe.

Auch für iOS-Gerä­te könn­te übri­gens Mera­ki eine inter­es­san­te Alter­na­ti­ve zum Apple Con­fi­gu­ra­tor sein. Neben dem übli­chen App-Deploy­ment und einer VPP-Inte­gra­ti­on kann man auf iOS-Gerä­ten zur­zeit fol­gen­de Funk­tio­nen zen­tral administrieren:

iOS_meraki
Dazu kommt noch, dass mit Mera­ki auch ein cloud­ba­sier­tes Manage­ment von WLAN-Net­zen mög­lich ist (ver­gleich­bar Aero­Hi­ve)  – die Gerä­te sind aber cis­co­ty­pisch nicht ganz bil­lig.

 Unheimliches

Mera­ki führt mir zie­mich unsanft vor Augen, dass sowohl Tablets als auch Andro­id­han­dys ziem­li­che gute Über­wa­chungs­ge­rä­te sind. Die Ortung funk­tio­niert auch ohne GPS oder Han­dy­netz adress­ge­nau. Ich kann Para­me­ter wie Lade­zu­stand, ver­füg­ba­re WLAN-Net­ze, Gerä­te-ID, Betriebs­zei­ten, Geo­po­si­ti­on usw. in Echt­zeit adress­ge­nau aus­le­sen. Wenn Mera­ki das per App kann, wird Goog­le es auch kön­nen. Ob es bei iOS anders aus­sieht? Wahr­schein­lich nicht …

Verschlüsselung von Schülerdaten auf dem eigenem Rechner mit EncFs

Ich habe als Linux­er, Apple- und Goo­gle­miss­trau­en­der end­lich mit EncFs einen Weg gefun­den, Daten von Schü­le­rin­nen und Schü­lern auf mei­nem Sys­tem so zu ver­schlüs­seln, dass auch Aspek­te des tech­ni­schen Daten­schut­zes gewahrt sind. EncFs arbei­tet datei­ba­siert, d.h. die ein­zel­ne Datei wird ver­schlüs­selt, sodass auch übli­che Linux-Back­up­kon­zep­te (etwa rsync) hier grei­fen. Das ist zwar nicht ganz so per­for­mant, wie eine con­tai­ner- oder volu­men­ba­sier­te Lösung, jedoch ist bei Bit­feh­lern nicht gleich das gan­ze Volu­me gefährdet.

Wiki­pe­dia nennt fol­gen­de Vor- und Nach­tei­le von EncFs:

Auf­grund sei­ner datei­wei­sen Ver­schlüs­se­lung weist EncFS eini­ge Vor­tei­le gegen­über ande­ren Kryp­to­da­tei­sys­te­men auf:

  • Es belegt kei­ne fes­te Grö­ße auf dem Daten­trä­ger. Es wird nur der Platz belegt, der tat­säch­lich für die ver­schlüs­sel­ten Datei­en benö­tigt wird. Daten kön­nen in EncFS gespei­chert wer­den, bis das Datei­sys­tem, in dem es sich befin­det, voll ist.
  • Tei­le des über EncFS-ver­schlüs­sel­ten Datei­sys­tems kön­nen auf ver­schie­de­nen Daten­trä­gern abge­legt sein. Zum Bei­spiel kann ein Ord­ner im (ver­schlüs­sel­ten) Quell­ver­zeich­nis per NFS ein­ge­hängt und ein wei­te­rer lokal vor­han­den sein.
  • Daten­si­che­rungs­pro­gram­me kön­nen gezielt die ein­zel­nen ver­än­der­ten ver­schlüs­sel­ten Datei­en sichern, die sich in der Zwi­schen­zeit geän­dert haben. Es muss nicht jedes Mal die gesam­te Par­ti­ti­on gesi­chert wer­den, wie es bei ver­schlüs­sel­ten Par­ti­tio­nen der Fall ist.

Auf­grund die­ses Ansat­zes erge­ben sich jedoch auch eini­ge Nachteile:

  • Per EncFS abge­spei­cher­te Daten wei­sen die­sel­ben Beschrän­kun­gen auf, wie das Datei­sys­tem, in dem der Quell­ord­ner liegt.
  • Eine Frag­men­tie­rung der ver­schlüs­sel­ten Daten führt zu einer Daten­frag­men­tie­rung im Quellverzeichnis.
  • Die Rech­te­ver­wal­tung wird nicht neu imple­men­tiert, somit kann jeder die Anzahl der Datei­en, ihre Zugriffs­rech­te, Grö­ße und Län­ge des Datei­na­mens (der Datei­na­me sel­ber wird jedoch mit­ver­schlüs­selt) und das Datum der letz­ten Ände­rung sehen.

Quel­le: http://de.wikipedia.org/wiki/EncFS#Vor-_und_Nachteile

Ich ver­lie­re etwas Kom­fort, was ich aber gar nicht ein­mal so schlecht fin­de: Will ich auf mei­ne ver­schlüs­sel­ten Datei­en zugrei­fen, muss ich zuvor noch ein klei­nes Script aus­füh­ren, nähe­res im Ubun­tu-Wiki.

So blei­ben die Datei­en auch im Betrieb ver­schlüs­selt, wenn ich sie nicht benö­ti­ge. Sind die Datei­en entschlüs­selt, so habe ich ein­fach ein Ver­zeich­nis im Datei­baum, in das ich ganz nor­mal spei­chern kann. Sind die Datei­en verschlüs­selt, ist die­ses Ver­zeich­nis schlicht leer. Sie lie­gen eigent­lich in einem ver­steck­ten Ver­zeich­nis – es beginnt mit einem Punkt und wird so in Linux­fi­le­ma­na­gern meist nicht ange­zeigt. Es lässt sich aber zugäng­lich machen – nur lie­gen dar­in eben nur ver­schlüs­sel­te Datei­en, die frei­lich über Meta­da­ten wie Name, letz­tes Zugriff­da­tum, Besit­zer etc. etwas von sich preis­ge­ben – nur an die Inhal­te der Datei­en kommt man halt nicht. EncFs gibt es auch für Win­dows – es kann dort aber nur unter Schmer­zen instal­liert werden.

Die Post-Privacy-Falle im Kontext kollektiver Naivität

Micha­el See­mann und ande­re arbei­ten sich am Begriff „Post-Pri­va­cy“ geis­tes­wis­sen­schaft­lich ab. Was bedeu­tet „Post-Pri­va­cy“?

Post-Pri­va­cy (aus­ge­spro­chen bri­tisch [pəʊst ˈpɹɪv.É™.si], ame­ri­ka­nisch [poÊ­Šst ˈpɹaɪ.vÉ™.si], über­setzt „Was nach der Pri­vat­heit kommt“) ist ein Begriff, der einen Zustand beschreibt, in dem es kei­ne Pri­vat­sphä­re mehr gibt und Daten­schutz nicht mehr greift.[1]

Quel­le: http://de.wikipedia.org/wiki/Post-Privacy

Sehr grob gespro­chen meint Post-Privacy:

Jedes weiß alles über jeden oder kann sich mit geeig­ne­ten Instru­men­ten die­ses Wis­sen ver­schaf­fen – unab­hän­gig vom jewei­li­gen Sta­tus der Per­son in der Gesellschaft.

Eine reiz­vol­le Vorstellung:

  • … das Par­tei­spen­den­kon­strukt eines Hel­mut Kohl entzaubern
  • … die Ver­trä­ge von Toll-Coll­ect einsehen
  • … Licht in die Cau­sa Wulff bringen
  • … usw.

Eine für mich nicht so reiz­vol­le Vor­stel­lung habe ich im letz­ten Arti­kel beschrie­ben. Mit der Debat­te um Post-Pri­va­cy sind immer auch Hoff­nun­gen verbunden:

  • … der klei­ne Mann wird zum Wel­ten­ret­ter (Snow­den-Para­dox)
  • … die Welt wird gerech­ter, weil qua­si durch die Hin­ter­tür die direk­te Demo­kra­tie gelebt wer­den kann
  • … allein die Ver­füg­bar­keit bestimm­ter Infor­ma­tio­nen wird dafür sor­gen, dass Ver­hal­ten sich ändert
  • … usw.

Nennt mich pes­si­mis­tisch – ich hal­te die­sen Ansatz für naiv. Die­se Schlacht wird nicht geis­tes­wis­sen­schaft­lich (fast allein auf die­ser Ebe­ne wird in Feuil­le­tons öffent­lich wahr­nehm­bar dis­ku­tiert), son­dern tech­no­lo­gisch geschlagen.

Dazu ein Beispiel:

Was mache ich als Geheim­dienst, wenn ich eine Ziel­per­son aus­spio­nie­ren möch­te? Ich muss mich um meh­re­re Din­ge küm­mern, wenn ich das mit Hil­fe von digi­ta­len End­ge­rä­ten des Benut­zers (Han­dy, PC, Smart­TV) bewerk­stel­li­gen möchte:

  • idea­ler­wei­se hin­ter­las­se ich kei­ne Spu­ren dabei
  • idea­ler­wei­se wird die Funk­ti­on des Gerä­tes dabei nicht beeinträchtigt
  • idea­ler­wei­se ent­zie­he ich die Über­wa­chungs­maß­nah­me der Kon­trol­le des Benutzers

Des­we­gen ist so etwas wie ein Bun­destro­ja­ner („Ich instal­lie­re als Staat eine Über­wa­chungs­soft­ware auf dei­nem PC“) eine sel­ten däm­li­che Idee, da ich dazu mei­ne Know-How in Form eines Pro­gram­mes aus der Hand geben muss. Ich weiß nicht, an was für einen Besit­zer des PCs ich gera­te: Wenn ich Pech habe, fin­det ein gewief­ter Nerd mein Pro­gramm, ana­ly­siert es und legt es in omi­nö­sen Tausch­bör­sen offen. Wenn es ihm zusätz­lich gelingt, den Daten­ver­kehr von die­sem Pro­gramm zu mir als Geheim­dienst zu ent­schlüs­seln, bzw. zu einer fes­ten IP zurück­zu­ver­fol­gen, bin ich gelie­fert, da Grund­vor­aus­set­zun­gen für eine Über­wa­chungs­maß­nah­me eben die Unsicht­bar­keit (= Intrans­pa­renz) eben­die­ser Maß­nah­me ist. Ein Bun­destro­ja­ner ist damit nie etwas zur Über­wa­chung vie­ler, son­dern allen­falls bei geziel­ten Obser­va­ti­ons­maß­nah­men mit arg begrenz­tem Ziel­rah­men ein­setz­bar. Was wir bis­her gese­hen haben, hal­te ich nur für eine Machbarkeitsstudie.

Bei mei­nem Hos­ter gab es in die­sem Jahr einen inter­es­san­ten Vor­fall mit einer mir bis­her unbe­kann­ten Spe­zi­es von Schad­pro­gramm: Es schrieb sich nicht auf die Fest­plat­te, son­dern drang durch eine Sicher­heits­lü­cke in einem Dienst in den Haupt­spei­cher ein und trieb dann von dort sein Unwe­sen. Da Ser­ver u.U. lan­ge lau­fen, kann so ein Pro­gramm sehr lan­ge unbe­merkt blei­ben und ist zudem äußerst schwie­rig zu ana­ly­sie­ren – Viren­scan­ner durch­kä­men zunächst ein­mal die Festplatte.

Auf Han­dys ist eine per­ma­nen­te Über­wa­chung des Sys­tems durch den Anwen­der oft gar nicht erst mög­lich – bei Apple­ge­rä­ten z.B. „by design“ nicht gewünscht. Bei so einem fremd­ge­steu­er­ten Sys­tem brau­che ich also als Geheim­dienst im Ide­al­fall nur Zugriff auf den Anbie­ter selbst, um gren­zen­los über­wa­chen zu kön­nen. Wenn ich mir eine Lücke auf dem Schwarz­markt kau­fe, kann das im Ein­zel­fall nütz­lich sein, ska­liert aber nicht gut, weil ich immer damit rech­nen muss, dass ich nicht der Ein­zi­ge bin, der Zugriff auf den ent­spre­chen­den Code hat.

Bestimmt sind bei die­sem „Tech­nik­ge­la­ber“ schon eine Men­ge Men­schen ausgestiegen.

Quint­essenz:

Tech­no­lo­gisch sind staat­li­che Orga­ne oder pri­va­te Fir­men wie Goog­le dem nor­ma­len Anwen­der, der in einer „Post-Privacy“-Welt lebt, haus­hoch über­le­gen. Mit Daten, die anfal­len, wird das gemacht wer­den, was tech­no­lo­gisch mög­lich ist.

Eine Kon­trol­le jed­we­der Art ist uto­pisch und zwar nicht des­we­gen, weil sie prin­zi­pi­ell unmög­lich ist, son­dern viel­mehr des­we­gen, weil sie immenses tech­no­lo­gi­sches Wis­sen erfor­dert – vie­le im Web2.0 erklä­ren immer noch Leu­te für ver­rückt, die ver­bind­li­chen Infor­ma­tik­un­ter­richt von Kin­des­bei­nen an for­dern. Medi­en­kom­pe­tenz in einem päd­ago­gi­schen Sin­ne ver­stan­den hilft ggf. etwas dabei, das Übels­te zu ver­hin­dern oder zu ver­zö­gern – auf der oft kol­por­tier­ten „Anwen­dungs­ebe­ne“ wird sie allein nicht dazu füh­ren, dass wir in der Lage sein wer­den, das Macht­ge­fäl­le zwi­schen uns und den Tech­no­lo­gie­rie­sen (Staat & Pri­vat­wirt­schaft) zu verändern.

Die­je­ni­gen, die es im Prin­zip könn­ten, sind oft genug Ziel­schei­be von Hohn und Spott gewe­sen. Damit mei­ne ich z.B. Daten­schüt­zer, die das Leben in der Wahr­neh­mung vie­ler ja ein­fach nur unbe­qe­mer und unzeit­ge­mä­ßer machen wol­len. Bequem­lich­keit unter Ver­lust von Grund­rech­ten („Das Netz ist ein grund­rechts­frei­er Raum“) sehe ich unter sehr vie­len Aspek­ten als problematisch.

Gebets­müh­le:

Ja, natür­lich darf man Gerä­te ein­fach nur „benut­zen“. Ich kann auch die Welt ein­fach so benut­zen. Trotz­dem hat man mich mit Che­mie, Mathe, Phy­sik oder Bio­lo­gie gequält und die wenigs­ten strei­ten ab, dass es sich dabei um nütz­li­che Dis­zi­pli­nen han­delt. Bei Infor­ma­tik und „Tech­nik­ge­döns“ ist das immer ganz anders.

1 6 7 8 9 10 24