class: center, middle, inverse, title-slide # CorrelAid Projektinfrastruktur ## Einführung in Veracrypt --- ## Unsere Projektinfrastruktur - Kommunikation  - **Verschlüsselung**  - **Dateiaustausch**  --- ## Verpflichtungserklärung Datenschutz - solltest du vorab erhalten haben (z.B. über Slack), sonst siehe [hier](https://correlcloud.org/index.php/s/7PSskX9yN7RKmoi?path=%2Ftemplate_data_privacy) - Definiert verschiedene Szenarien, die nicht alle auf euer Projekt zutreffen müssen - für alle: Verschwiegenheit / Datengeheimnis - Anforderungen an die Datensicherheit können variieren --- class: middle, center, inverse # Datensicherheit / Verschlüsselung --- ## Personenbezogene Daten personenbezogene Projektdaten sollten _nie dauerhaft unverschlüsselt_ auf eurem Rechner gespeichert werden. -- ⚠️ auch pseudonymisierte Daten (z.B. ohne Namen / Email-Adressen) sind meistens noch personenbezogene Daten<sup>1</sup> -- Ausnahmen: - synthetische ("fake") Daten: können unverschlüsselt bleiben - initialer Datentransfer via CorrelCloud: Daten sind temporär unverschlüsselt (im `Downloads` Ordner) -> so schnell wie möglich verschlüsseln / verschieben<sup>2</sup> .footnote[ [1] Die DSVGO stellt sehr hohe Anforderungen an die Anonymisierung von Daten. [2] Mehr zum initialen Datenaustausch heute Mittag ] --- ## Verschlüsselung **Optionen**: verschlüsseltes Heimverzeichnis oder VeraCrypt | verschlüsseltes Heimverzeichnis | kein verschlüsseltes Heimverzeichnis | |---------------------------------------------------------|---------------------------------------------------------| | VeraCrypt wird nicht benötigt | VeraCrypt wird benötigt | | anschließende Löschung der Daten | anschließende Löschung der Daten | --- ## Verschüsseltes Heimverzeichnis - Möglich bei - Windows Pro und Enterprise -> leider nicht verfügbar für Home - manchen Windows 10 Home Geräten: [Device Encryption](https://support.microsoft.com/de-de/windows/ger%C3%A4teverschl%C3%BCsselung-in-windows-10-ad5dcf4b-dbe0-2331-228f-7925c2a3012d) - Mac OS ab Mac-OS X 10.4: [FileVault](https://support.apple.com/en-us/HT204837) - den meisten Linux-Distributionen<sup>1</sup> - **Das Adminkonto des Rechners muss ebenfalls passwortgeschützt sein** .footnote[ [1] es ist bei den meisten Distributionen nicht möglich, nachträglich Verschlüsselung zu aktivieren. Falls deine Festplatte nicht verschlüsselt ist, benutze bitte Veracrypt. ] --- class: middle, center, inverse # 5 Minuten Check, ob eine der built-in Optionen für euch verfügbar ist --- ## VeraCrypt - Verschlüsselungsprogramm und TrueCrypt Nachfolger - Ein VeraCrypt Container ist eine passwortgeschützte _Datei_ auf dem Rechner, die nur von VeraCrypt nach Passworteingabe gelesen werden kann - VeraCrypt bindet (nach Passworteingabe) die Datei als _Laufwerk_ im Betriebsystem ein ("Mount") - So können alle andere Programme auf die Daten im Container zugreifen - Dieses Laufwerk ist nur so lange verfügbar, wie auch VeraCrypt läuft --- ## VeraCrypt Funktionsweise .center[ ] .center[ **Container Datei**  ⬇️  ⬇️ **Container ist als Laufwerk gemounted und Dateien können benutzt werden**   ] --- ## Einen Veracrypt Container erstellen - installiere [VeraCrypt](https://www.veracrypt.fr/en/Downloads.html) und starte es -- ### Neuen Container erstellen - wenn nicht anders angegeben die Standardeinstellungen bestätigen - verschlüsselte **file container** (nicht Partition!) - Ort und Namen für Container bestimmen (muss im Heimverzeichnis liegen) -> **lege die Datei dort ab wo du sonst den Projektordner ablegen würdest** (z.B. `home/frie/correlaid/projekte/`) - Dateigröße eingeben (1GB (1024 MB) sollte ausreichen) - Passwort setzen: benutzt einen Passwort, welches von eurem Passwortmanager<sup>1</sup> erstellt wurde oder benutzt eine [Passphrase](https://www.useapassphrase.com/) mit mindestens vier Wörtern .footnote[ [1] z.B. hat [bitwarden](https://bitwarden.com) einen kostenlosen Plan. ] --- ## Veracrypt Container einbinden / mounten - Wähle die Containerdatei aus - Wähle einen der Laufwerksbuchstaben (Windows) bzw. Slots (Mac/Linux) aus - wähle in Zukunft immer den gleichen, warum also nicht einfach den allerersten - "Dismount" wenn du nicht mehr mit den Projektdaten arbeiten willst --- class: inverse, center, middle # Was machen wir jetzt mit dem Container? --- ## Disclaimer Wir haben die folgenden Szenarien noch nicht exzessiv in der Praxis getestet. **Feedback ist gerne willkommen!** --- ## Szenario 1: GitHub, ganzes Repo in Container - jede:r Analyst:in hat einen eigenen Veracrypt Container ✅ - das ganze Repository ist im Container - (Roh)daten / nicht anonymisierte Daten werden nicht über GitHub synchronisiert (`.gitignore`)! -- #### Vorteile - unkompliziertes Arbeiten in Verbindung mit RStudio Projekten (oder vgl. in Python): Container mounten, Doppelklick auf `.Rproj`, let's go - Pfade zum Lesen der Daten bleiben relativ #### Nachteile - Container muss immer gemountet werden, selbst wenn nicht mit Daten gearbeitet wird --- ## Szenario 3: wenig / ohne Code, CorrelCloud - Projekte ohne Code / mit wenig Code, aber mit DSVGO-relevanten Daten, können ausschließlich über die CorrelCloud synchronisiert werden - die Kombination mit Veracrypt ist allerdings **ziemlich unpraktisch**. 😞 --- ## Optionen ### Option 1 - Der CorrelCloud-Ordner muss lokal in dem durch VeraCrypt eingebundenen Laufwerk angelegt werden - D.h. du musst VeraCrypt immer starten bevor du NextCloud startest und dabei den gleichen Laufwerksbuchstaben wie immer zuweisen - sonst findet NextCloud den Ordner nicht - ❓ ❓ --> zu unpraktisch/verwirrend ❌ -- ### Option 2 - Ablage einer gemeinsamen Container Datei (nur für Daten!) in der CorrelCloud - Präsentationen etc. außerhalb des Containers - Updates durch Team Lead - Passwort wird über sicheren Channel (z.B. Signal oder mündlich) geteilt. --> weniger kompliziert, aber nur gut, wenn Daten nicht häufig geupdatet werden (nehmen wir jetzt mal an!) --- ## Szenario 2, Option 2: Konfiguration NextCloud - *Auf [https://correlcloud.org](https://correlcloud.org/) einloggen* - *NextCloud-Client herunterladen* - [NextCloud Client]([NextCloud Client](https://nextcloud.com/install/) herunterladen und installieren - Account einrichten - obige URL eingeben - Namen und Passwort eingeben - Warten bis NextCloud synchronisiert - Prüfen, ob alle Ordner synchronisiert wurden - sehr große Ordner müssen nochmal explizit bestätigt werden - **nur Team Lead**: Container-Datei mit Daten in Projektordner verschieben --- ## Workflow 1. **Szenario 2**: NextCloud starten und warten bis die NextCloud synchronisiert hat 2. *VeraCrypt starten und Container als Laufwerk einbinden* - Warte bis der Container als Laufwerk eingebunden wurde 3. Arbeiten, arbeiten, arbeiten ... und dabei natürlich Spaß haben ;-) 4. VeraCrypt: "Dismount" 5. VeraCrypt schließen 6. **Szenario 2**: Warten bis die NextCloud synchronisiert hat 7. **Szenario 2**: NextCloud stoppen 8. Andere Programme schließen und abmelden und herunterfahren 9. Feierabend --- ## Fazit - Für Projekte mit Code arbeiten wir mit GitHub und haben das ganze Projekt im VeraCrypt Container - Für Projekte ohne / mit wenig Code kann die CorrelCloud verwendet werden. wir benutzen eine gemeinsame Container-Datei für die Daten --- ## Hands On: Projektsetup - Code (Szenario 1): - Container mounten - git clone - später: Rohdaten in `data/raw` kopieren - wenig / kein Code (Szenario 2, Option 2) - ggf. NextCloud einrichten - Team Lead: Container Datei in CorrelCloud Ordner verschieben - Container mounten - Dateien in Container verschieben - Container dismounten --- ## Fragen? Fragen! - Wenn bei der Nutzung der Software Fragen auftauchen, du unsicher bist wie du vorgehen sollst wende dich an deine:n Projektleiter:in oder Projektkoordinator:in - gerne an Frie: andere Toolideen (betriebssystemübergreifend), Feedback / konstruktive Kritik zur Benutzerfreundlichkeit der Szenarien 👀 - *Probiere nichts einfach aus was möglicherweise die Sicherheit der Daten oder deines System gefährden könnte*