Wie genau funktioniert bytejail?

Jails, Identitäten, Verbindungsdateien - klingt kompliziert, ist es aber nicht!

Identitäten

Als Identität bezeichnen wir ein kryptographisches Schlüsselpaar, welches lokal im bytejail client generiert wird.
Dieses Schlüsselpaar besteht aus einem privaten und einem öffentlichen Schlüssel.

Grundlegendes Verständnis

  • Wer im Besitz des öffentlichen Schlüssels ist, kann etwas abschließen (verschlüsseln).
  • Wer im Besitz des privaten Schlüssels ist, kann es wieder aufschließen (entschlüsseln).
Sie als Kunde besitzen sowohl den privaten als auch den öffentlichen Schlüssel.
Dieses Verfahren wird als Asymmetrisches Kryptosystem [wikipedia] bezeichnet und ermöglicht es in unserem Fall etwas zu verschlüsseln, was nur Sie (der Kunde) wieder entschlüsseln können.

Generierung des Schlüsselpaares

Ein Schlüsselpaar wird aus zwei frei wählbaren Eingaben des Kunden berechnet.
Die Eingabefelder, welche als Berechnungsgrundlage dienen, werden Schlüsselpasswort 1 und Schlüsselpasswort 2 bezeichnet.

Jegliches Textzeichen aus dem UTF-8 Zeichensatz ist als Eingabe zugelassen. Beispiel: あ, ょ, ㇴ, |, ², %, A, ä, #, (Leerzeichen)
Für beide Felder gilt eine maximale Länge von 1024 Zeichen.

Es bietet sich grundsätzlich an, einen Passwortmanager, wie zum Beispiel KeePass [http], für die Generierung und auch die Speicherung der Passwörter zu verwenden.
So können Sie lange und komplizierte Passwörter verwenden, ohne sich diese merken zu müssen.

Sinnvolle Eingaben (zusammengefasst):

  • Lange Passwörter, welche mit Hilfe eines Passwortmanagers generiert und gespeichert werden
  • Sätze, die über beide Eingabefelder aufgeteilt werden
  • E-Mail Adresse und ein Passwort als weitere Eingabe
  Achtung: Stellen Sie in jedem Fall sicher, dass Sie Ihre Passwörter nicht verlieren oder vergessen!
Da nur Sie selbst Kenntniss über die festgelegten Passwörter haben, ist eine Wiederherstellung durch bytejail ausgeschlossen!

Die eigentliche Berechnung wird mit Hilfe der Open-Source (MIT) Bibliothek: NaclKeys durchgeführt.

Am Ende der Berechnung erhalten Sie Ihren öffentlichen Schlüssel (als Base58 kodierte Zeichenkette) und können diese in der bytejail console hinterlegen.
Mit dem hinterlegten öffentlichen Schlüssel ist es bytejail möglich, Ihre Jails und Verbindungsdateien asymmetrisch zu verschlüsseln.

Die Identitätsdaten müssen bei jedem Verbindungsaufbau aus dem bytejail client erneut eingegeben werden. Der bytejail client berechnet dann aus den eingegebenen Daten erneut Ihren privaten Schlüssel, um die Verbindungsdatei zu entschlüsseln und anschließend eine Verbindung aufzubauen.

Beispiele für Schlüsselpasswörter
Schlüsselpasswort 1: Franz jagt im komplett verwahrlosten Taxi quer durch Bayern.
Schlüsselpasswort 2: d16bfee7cc0d3f28090d0f0557efc08abef847a8995ba327298772cf874fd39b

Ergibt: 2PzYqs39t1PH42iY8y2A5gpTptueKyzpxEjo7JSmAH1gcUfmrZZ (öffentlicher Schlüssel, wird in der bytejail console hinterlegt)

Schlüsselpasswort 1: 4ËââÁ87"¶7DÑ×eÖt@ðµæ(20ÀbÏÙ±1dËJ!¹¬æ<û$@¯`ì`*q÷bx¨Þð:é%ð:úu{
Schlüsselpasswort 2: .-ÇGjjÏzT? ÖÌáC˹¹ÐÐEÈà2Os^#^^äDzøR»+Z@é7èócZz¼ìlÀÁÿ¹M)ýUý,ò

Ergibt: 2NwtskxFhhDW6er7Q4VCWz8MwpoJ9heVKMC2uRFDZSEv8yMCEbc (öffentlicher Schlüssel, wird in der bytejail console hinterlegt)

Schlüsselpasswort 1: [email protected]
Schlüsselpasswort 2: v5UN@9Ch@*z+X@^VN43E3M p1

Ergibt: 2PCzZqjnGCifhoawgATzp4pc1brvv8TrZLTGTNymCw7Df5jcVNz (öffentlicher Schlüssel, wird in der bytejail console hinterlegt)

Mit Hilfe des öffentlichen Schlüssels wird bei der Erstellung eines Jails eine asymmetrisch verschlüsselte Verbindungsdatei erstellt, welche dann nur durch Kenntnis beider Schlüsselpasswörter wieder geöffnet werden kann.

FAQ: Generierung einer Identität


Verbindungsdateien

Was sind Verbindungsdateien?
Wenn Sie in der bytejail console ein Jail mit einer zuvor hinterlegten Identität erstellen, wird dieses auf den bytejail Servern angelegt.

Im Hintergrund werden hierbei mehrere Prozesse angestoßen (vereinfachter Ablauf):

  1. es wird am gewählten Standort Speicherplatz mit einer eindeutigen Adresse reserviert
  2. die erstellte Adresse wird mehrfach asymmetrisch verschlüsselt (2-Mann-Regel)
  3. es wird ein Clientzertifikat für die spätere Authentifizierung am bytejail System erzeugt
  4. Signaturen zur Authentifizierung der Serververbindung werden erzeugt
  5. alle Informationen werden in einer verschlüsselten (nur durch den Kunden zu öffnende) Verbindungsdatei zusammengefasst
  6. es wird eine minisign Signatur für die zuvor verschlüsselte Verbindungsdatei erstellt
  7. die Verbindungsdatei und die zugehörige Signatur werden dem Kunden in der bytejail console zum Download bereitgestellt

Erstellte Verbindungsdateien werden von bytejail gespeichert und können zu jeder Zeit erneut in der bytejail console heruntergeladen werden.
Grundsätzlich kann eine Verbindungsdatei nur mittels privatem Schlüssel geöffnet/entschlüsselt werden, was die Kenntnis der Schlüsselpasswörter voraussetzt.
Eine Verbindungsdatei muss somit nicht geheim gehalten und kann überall gespeichert werden.

Das Lesen/Entschlüsseln von Verbindungsdateien durch bytejail ist ausgeschlossen.

Bibliothek welche zur Verschlüsselung verwendet wird: StreamCryptor

Details zur 2-Mann-Regelung

Wie bereits erwähnt wird beim Erstellen eines Jails, Speicherplatz mit einer eindeutigen Adresse reserviert.
Ohne die Kenntnis dieser Adresse ist es unmöglich (seitens bytejail) festzustellen, welches Jail oder welche Jailinhalte zu welchem Kunden gehören.

Da die Adresse mehrfach asymmetrisch verschlüsselt wird, werden zum Entschlüsseln mehrere private Schlüssel und Signaturen benötigt.

Ein Teil der benötigten Informationen werden seitens bytejail gespeichert, die restlichen Informationen befinden sich in der Verbindungsdatei des Kunden. Sobald beide Teile vorhanden sind, kann die eindeutige Adresse rekonstrukiert werden und ein Zugriff auf das Jail ist möglich.

bytejail stellt mit diesem Verfahren und dem Aufteilen von Informationen sicher, dass ein Auskunftsschutz garantiert ist und ein Zugriff durch Unberechtigte (Dritte) ausgeschlossen ist.


Jails

Daten in Jails
Im bytejail Universum werden sämtliche Daten, die Sie von Ihrer lokalen Festplatte zu bytejail transferieren in sogennante Jails gespeichert.

Grundsätzlich gilt: alle Dateien und Dateinamen werden vor einem abgehenden Transfer (hochladen), lokal auf Ihrem System Ende-zu-Ende verschlüsselt und von META Daten befreit.

Es werden also niemals unverschlüsselte Dateien Ihren Computer verlassen!
Lokale Verschlüsselung

Um eine sichere und zeitgemäße Ende-zu-Ende Verschlüsselung zu gewährleisten, setzt bytejail auf moderne Kryptographie. Auch wenn AES immer noch als extrem sicher gilt, hat sich bytejail gegen diesen Algorithmus entschieden und verwendet statt dessen libsodium basierte Verschlüsselung. Während der Planung und Entwicklung von bytejail ist so die Open-Source (MIT) Bibliothek StreamCryptor entstanden. StreamCryptor kann frei verwendet werden und ist für jeden öffentlich einsehbar. Es wurde außerdem ein Sicherheitsaudit durch die Firma Cure53 aus Berlin durchgeführt, welches ebenfalls öffentlich (englisch) zugänglich ist.





Hochladen lokaler Daten in ein Jail

Wenn Sie über den bytejail client Dateien in ein Jail hochladen, wird jede dieser Dateien vor dem Hochladen lokal Ende-zu-Ende verschlüsselt. Nach der Verschlüsselung von Datei und Dateinamen wird die Datei über einen TLS 1.2 gesicherten Kanal auf die bytejail Server transferiert.

Wir setzen an allen Standorten mehrere Tahoe-LAFS Grids als Speichertechnologie ein.

Die Vorteile von Tahoe-LAFS:

  • dezentralisiertes Speichern von Daten (hohe Ausfallsicherheit)
  • eingebautes Erasure coding [Wikipedia] (automatische Wiederherstellung von beschädigten Dateiteilen)
  • extrem hoher Datenschutz
Bibliothek, die zur lokalen Verschlüsselung verwendet wird: StreamCryptor

Herunterladen von Daten aus einem Jail

Im bytejail client sind alle in einem Jail enthaltene Dateien mit Ihrem orginalen und unverschlüsselten Dateinamen aufgelistet.
Der bytejail client ruft nach einem erfolgreichen Verbindungsaufbau eine Ende-zu-Ende verschlüsselte Dateiliste der im Jail enthaltenen Dateien ab und entschlüsselt diese lokal, damit sie für den Benutzer im bytejail client lesbar sind.

Wenn sich der Benutzer entschließt, eine Datei auf sein lokales System herunterzuladen, fordert der bytejail client diese mit dem verschlüsselten Dateinamen an.
Nach erfolgreichem Download wird die Datei lokal entschlüsselt und steht dem Benutzer zur weiteren Verwendung bereit.

Entfernen von Daten aus einem Jail

  Das Löschen oder Entfernen von Daten aus einem Jail ist endgültig. Gelöschte Daten können nicht wiederhergestellt werden.