AirPlay, DLNA, Miracast in schulischen Netzwerken

Mit Air­Play, DLNA oder neu­er­dings auch Mira­Cast las­sen sich Bild­schirm­in­hal­te digi­ta­ler End­ge­rä­te kabel­los an ein Wie­der­ga­be­ge­rät sen­den. In der Schu­le wird das im Ide­al­fall ein Bea­mer sein.

Für Bea­mer gibt es net­te Zusatz­ge­rä­te mit HDMI-Ausgang:

  • Mira­cast-Adap­ter (muss nicht auf­wän­dig kon­fi­gu­riert werden)
  • Minix-TV-Boxen (besit­zen Android, bedür­fen daher etwas Auf­merk­sam­keit, sind aber sehr fle­xi­bel durch das gro­ße App-Ange­bot und las­sen sich auch mit z.B. Mera­ki zen­tral managen)
  • jeder güns­ti­ge HDMI-Stick mit Android
  • App­leTV

Die Pro­to­kol­le zum Spie­geln des End­ge­rä­te­bild­schirms haben alle einen Schön­heits­feh­ler, der in gro­ßen Net­zen mit meh­re­ren Gerä­ten ein Pro­blem wer­den kann: Sie sind für den Heim­be­reich ent­wi­ckelt und wen­den sich daher an tech­nisch nicht ver­sier­te Anwender.

Die Fol­gen:

  • alle Gerä­te im glei­chen Netz­werk sind für alle End­ge­rä­te als Wie­der­ga­be­ge­rät sichtbar
  • das letz­te Gerät gewinnt immer

Ich kann Herrn Mei­er in Raum XY mei­nen Bild­schirm­in­halt „bea­men“, wenn Herr Mei­er dort gera­de arbei­tet. Ich muss nur das von Herrn Mei­er benutz­te End­ge­rät als Wie­der­ga­be­ge­rät aus­wäh­len – es braucht dafür kei­ne Bös­wil­lig­keit, son­dern ledig­lich einen klei­nen Ver­tou­ch­er oder Vertipper.

Ein­zi­ge löb­li­che Aus­nah­me ist App­leTV – hier lässt sich zumin­dest ein Pass­wort für die Benut­zung ver­ge­ben – in der Schu­le bringt die­ses Fea­ture jedoch kei­ner­lei Vor­tei­le – schließ­lich muss das Pass­wort ja allen bekannt sein, die Inhalt strea­men wol­len. Für jedes Gerät ein eige­nes Pass­wort zu ver­wen­den, dürf­te kaum prak­ti­ka­bel sein.

Aus­weg:

Ich span­ne in den „betrof­fe­nen“ Klas­sen eige­ne WLAN-Net­ze mit eige­nem IP-Bereich auf. Mit geeig­ne­ter Firm­ware lässt sich die Sen­de­leis­tung so weit her­un­ter­re­geln, dass Raum­gren­zen nur mit Mühe über­sprun­gen wer­den. Schu­len rate ich zur Anschaf­fung von Acces­s­points bzw. WLAN-Rou­tern, die sowohl rou­ten als auch bridgen kön­nen – idea­ler­wei­se bei­des gleich­zei­tig mit ver­schie­de­nen SSIDs (z.B. Bea­mer & Inter­net). Das HDMI-Zusatz­ge­rät hängt dann mit im gerou­te­ten Netz­werk. Das klappt recht zuver­läs­sig und eben nicht über Raum­gren­zen hinweg.

Bei den HDMI-Zusatz­ge­rä­ten emp­feh­le ich zur­zeit die Andro­iden in Ver­bin­dung mit Mera­ki, wenn es meh­re­re Gerä­te sein sol­len. So lässt sich das Gan­ze zen­tral per Web­ober­flä­che ver­wal­ten und die gan­ze App-Welt des Play­s­to­re steht auf dem Bea­mer zur Ver­fü­gung – für vie­les braucht man dann zudem kei­nen Rech­ner mehr :o)…

 

 

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.

1 6 7 8 9 10 24