12 October 2019

Grundlagen

Die Kryptographie gehört nicht gerade zu den einfachsten Themenbereichen in der Informatik. Kryptographie dient für

  • Vertraulichkeit

  • Integrität

  • Authentizität

Auf der Homepage Bundesamt für Sicherheit in der Informationstechnik findet man ein schönes Video [1] mit einer kleinen Erklärung zu Verschlüsselung.

Punkt-zu-Punkt Verschlüsselung

Client-Server Verschlüsselung

Verschlüsselte Kommunikation von Client zu Server. Ein XMPP Client findet sich mit einem XMPP Server. Die Verbindung wird für die Anmeldung (Übertragung von Benutzername und Passwort) aber auch für die gesamte Kommunikation zwischen den Kommunikationspartner. Um die Sicherheit der Kommunikation von Client und Server zu gewährleisten, sollte die Kommunikation verschlüsselt werden.

Server-Server Verschlüsselung

Verschlüsselte Kommunikation von Server zu Server. Da XMPP eine dezentrale / föderative Architektur hat, müssen nicht alle Benutzer ihren XMPP Account bei einem Anbieter erstellen. Jeder Benutzer kommuniziert nur mit dem Server seines Anbieters. Die Server stellen die Kommunikation zwischen den verschiedenen Servern her. Diese Kommunikation solle ebenfalls verschlüsselt erfolgen, da auch hier die gesamten Daten zur Kommunikation (Verbindung und Nachrichten) übertragen werden werden.

End-zu-End Verschlüsselung

Die End-zu-End Verschlüsselung wird verwendet, um die Daten zwischen den Kommunikationspartner zu verschlüsseln, unabhängig von der Punkt-zu-Punkt Verschlüsselung im Netzwerk.

Off-the-Record Messaging (OTR)

Verschlüsselung mit OTR.

OMEMO

End-to-end Verschlüsselung mit OMEMO.

OMEMO steht für Multi-End Message and Object Encryption. Einige Informationen zu OMEMO findet man auf der Homepage von conversations [2]. OMEMO Encryption für Person-zu-Person Chats mit mehreren Geräten ist in XEP-0384 [3] beschrieben.

Schlüsselaustausch

Eine Herausforderung bei der Verschlüsselung, ist der Austausch des Schlüssels. Bei einem asymmetrisches Kryptosystem hat man einen privaten und einen öffentlichen Schlüssel. Der private Schlüssel darf nicht weitergegeben. Der öffentliche Schlüssel wird an die Kommunikationspartner verteilt, um die Daten zu verschlüsseln.