Arbeiten in Teams und mit Funktionsadressen

Dieser Artikel beschreibt verschiedene Möglichkeiten in Teams und mit Funktionsadressen zu arbeiten. Die unterschiedlichen Varianten sind für verschiedene Anforderungen und Szenarien geeignet.

Hinweis: Im Kontext von VS-NfD gilt das "Kenntnis nur, wenn nötig"-Prinzip. Entsprechend sind Teams, die auf den gleichen Secret-Key, beziehungsweise das gleiche Geheimnis Zugriff haben, auf eine kleine Anzahl von Personen zu begrenzen.

Varianten

Variante 1: Geheimen Key verteilen

Anwendungsfall

Dies Verfahren ist geeignet wenn mehrere Personen Zugriff auf das selbe Mail-Postfach haben.

Vorgehen

  1. Einen "normalen" private Key mit einer Funktionsmailadresse erstellen.
  2. An alle Teilnehmer via "Backup Secret Key" verteilen.

Funktionalität

  • Alle Teilnehmer haben Zugriff auf das Postfach mit der Funktionsadresse und können die Nachricht entschlüsseln.

  • Es wird beim Versenden mit der Funktionsmailadresse mit dem Funktionsmailadressen-Key verschlüsselt und signiert.

    • → Das Team kann die Nachricht lesen und auch verschlüsselt antworten.

Änderung der Team Zusammensetzung

  • Neue Team-Mitglieder bekommen den Secret Key.
  • Wenn Personen das Team verlassen sollte der bisherige Schlüssel zurückgezogen werden und ein Neuer erstellt werden. Sowohl das Revokation-Zertifikat, als auch das der neu erstellte Schlüssel müssen verteilt werden. Da der neue Schlüssel einen anderem Fingerprint hat, muss das neu erstellte Zertifikat durch eine CA oder die Nutzenden beglaubigt werden.

Vorteil

  • einfachste Umsetzung

Zu bedenkende Aspekte

  1. Jeder Teilnehmer kann das Zertifikat ändern.
  2. Mails werden mit dem Funktionsadressen-Key signiert, keine individuelle Zuordnung möglich. (Das kann aber auch gewünscht sein.)

Upgrade des Verfahrens

  1. Ein oder zwei (Vertretung) Personen sind für den Funktionsadressen-Key verantwortlich.
  2. Die ''Sign'' und ''Certify'' Subkeys trennen: a. Es wird ein Key mit getrennten "Certify", "Sign" und "Encrypt" Unterschlüsseln erzeugt. b. Es wird nur der "Sign" und "Encrypt" Teil verteilt, somit können andere keine Änderungen an dem Funktionsadressen-Key machen. (entschärft Nachteil 1, bricht den Vorteil der einfachen Umsetzung)

Vorgehen zur Einrichtung eines Gruppenpostfach-Schlüssels

Für Funktionspostfachschlüssel sollten die Capabilities "Sign und Certify" getrennt sein. Diese werden auf der Kommandozeile (cmd.exe) wie folgt angelegt:

gpg --quick-gen-key  FUNKTIONS_MAIL rsa3072 cert

Ersetzen sie FUNKTIONS_MAIL durch die Mail-Adresse ihres Funktionspostfachs.

Es wird der erzeugte Key mit seinem Fingerprint angezeigt.

Nun die weiteren Schlüssel-Teile (Sub-Keys) wie folgt anlegen:

> gpg --quick-add-key FINGERPRINT rsa3072 sign
> gpg --quick-add-key FINGERPRINT rsa3072 encrypt

Alternativ zu "rsa3072", z.B. "ed25519" oder "brainpoolP384r1" verwenden.

Der Gruppenschlüssel wurde erzeugt und liegt im Schlüsselbund. Diese Version (mit dem geheimen "Certify"-Teil kann genutzt werden um den Schlüssel zu verlängern, einen neue Encryption-Sub-Keys zu erzeugen, oder den Schlüssel zurück zu ziehen. Dieser Schlüssel nur für ausgewählten Personen verfügbar sein.

Es wird nun ein manipulationssichere Version des Secret-Keys ohne "certify" Fähigkeiten erstellt:

> gpg --export-secret-subkeys -a FINGERPRINT > POSTFACH__SECRET_no-certify.asc

Ersetzen sie POSTFACH durch den Namen ihres Funktionspostfachs. Diese Datei sollte nur an alle weiteren Personen mit Zugriff auf das Funktionspostfach verteilt werden.

Ein Export des Public-Keys kann von jedem der Funktionspostfach-Nutzer erstellt werden.

Variante 2: Kleopatra Gruppen verwenden

Anwendungsfall

Diese Variante bietet sich für einen geschlossenen Mail-Verteilerkreis an und auch für zentral, für einen bestimmten Personenkreis, verschlüsselt abgelegte Dokumente.

Vorgehen

Mit "Gruppe" ist im Folgenden eine "Kleopatra Gruppe" gemeint.

Jedes Team-Mitglied wird Teilnehmer:in der Kleopatra Gruppe.

  1. Jede Gruppen-Teilnehmer:in hat ihr eigenes Zertifikat.
  2. Kleopatra Gruppe mit den Zertifikaten der Teilnehmer:innen erstellen.
  3. Gruppe an alle Teilnehmer der Gruppe = Team verteilen.
  4. [optional] Gruppe an Dritte verteilen. (Siehe Nachteile)

Funktionalität

  • Alle Teilnehmer bekommen die Mail an ihr eigenes Postfach weitergeleitet.
  • Praktisch wenn nur innerhalb der Gruppe Mails versandt werden, passt zu einer überschaubaren Mailingliste.
  • Die Gruppendatei kann auch außerhalb des Teams verteilt werden.
  • Wenn auf Personen außerhalb der Gruppe geantwortet wird, erfolgt dies von der eigenen Mailadresse (und Zertifikat) und nicht mit der Funktionsadresse. Die Nachricht wird mit dem eigenen Key unterschrieben.

Änderung der Team Zusammensetzung

  • Neue Team-Mitglieder werden in die Gruppe mit aufgenommen.
  • Wenn Personen das Team verlassen, werden diese aus der Gruppendatei entfernt.
  • Die aktualisierte Gruppendatei wird neu verteilt und muss von allen Gruppenteilnehmern importiert werden

Vorteil

  • Keine Verteilung oder Verwaltung eines zentralen Schlüssels erforderlich.

Zu bedenkende Aspekte

  1. Die Funktionsadresse hat kein eigenes Zertifikat, es muss die Gruppendatei zuvor importiert werden. Das klappt nur, wenn alle Teammitglieder GnuPG (VS-)Desktop verwenden.
  2. Wenn auf Personen außerhalb der Gruppe geantwortet wird, erfolgt dies von der eigenen Mailadresse (und Zertifikat) und nicht mit der Funktionsadresse.
  3. Die ausgehenden Nachricht wird mit dem eigenen Key unterschrieben.
  4. Personen im Team können eine Nachricht an Außenstehende nicht lesen.
  5. Eine Antwort auf eine Nachricht von einem Team-Mitglied kann nur von dem Team-Versender gelesen werden.

Punkte 2 und 3 könnten zur Verwirrung bei Leuten führen, die an die Gruppe geschrieben haben.

Upgrade des Verfahrens

  • Bei Antworten auf Personen außerhalb der Gruppe das Reply-To auf die Funktionsmailadresse setzen. (schwächt Nachteil 2 und 5 ab)
  • Bei Antworten auf Personen außerhalb der Gruppe, die Gruppe in CC nehmen. (schwächt Nachteil 4 ab)

Variante 3: Geteilter Secret Encryption Key

Anwendungsfall

Funktionsmailadressen welche an individuelle Postfächer weitergeleitet werden.

Vorgehen

  1. Jede Person im Team hat ihr eigenes Zertifikat.
  2. Einen private Key mit einer Funktionsmailadresse erstellen.
  3. Ein Zertifikat mit nur dem geheimen Funktionsadressen-Secret-Encryption-Key erstellen.
  4. Letzteres an das Team verteilen.
  5. Die Personen im Team importieren dieses Zertifikat mit dem Secret-Encryption-Key.

Funktionalität

  • Alle im Team bekommen die Mail an ihr eigenes Postfach weitergeleitet.
  • Alle können Mails and die Funktionsadresse entschlüsseln.
  • Antworten werden mit dem eigenen Zertifikat signiert.

Änderung der Team Zusammensetzung

  • Neue Team-Mitglieder bekommen den Secret Key.
  • Wenn Personen das Team verlassen, wird der Encryption-Key rolliert und neu verteilt. Dabei ändert sich der Fingerabdruck des Schlüssels nicht, was eine erneute Prüfung des Zertifikats vermeidet.

Vorteil

  • Zentrale Kontrolle über den Funktionsadressen-Key.

Zu bedenkende Aspekte

  1. Sofern man die Funktionsadresse nicht in [B]CC nimmt, kann das Team die Mail nicht mehr entschlüsseln.
  2. Eine Nachricht die von einer Person aus dem Team versendet wird ist für die Empfänger:in nicht als Teamnachricht erkennbar.

Upgrade des Verfahrens

  • Team (also die Funktionsmailadresse) in CC nehmen. (Behebt Nachteil 1)
  • Team (also die Funktionsmailadresse) als "Reply-To" eintragen. (Behebt Nachteil 2)

Sonstiges

Weitere Aspekte

Zentraler Vertrauensanker

Siehe GnuPG Infrastruktur. Damit kann Zertifikaten von Personen beim Verlassen der Organisation zentral die Beglaubigung entzogen werden.

Verteilung von Zertifikaten

  • Intern: via LDAP, auch für externe Zertifikate.
  • Extern: via WKD
  • Klassisch via Mail oder auch als Teil einer Signatur.

Smartcards

Die Verwendung von Smartcards bringt weitere Vorteile. Wenn geheime Schlüssel nur auf der Smartcard verfügbar sind, können diese auch wieder eingesammelt werden. (Variante 1 und 2)

Umschlüsseln von Daten bei Schlüsselrotation

TODO

ADSK

Unter bestimmten Bedingungen kann auch ein ADSK hilfreich sein. Beim ADSK wird ein weiterer Schlüssel für die Entschlüsselung einem Zertifikat hinzugefügt. Dies könnte ein zentraler Backup Schlüssel oder auch Team-Schlüssel sein.

Hierbei sollten sie besonders sensibel vorgehen, um das "Need-to-know-Prinzip" nicht zu verletzen. Informieren sie die Nutzenden genau über die Funktionsweise des ADSK.

Ein ADSK kann in Kleopatra voreingestellt werden, muss aber durch den Schlüsseleigner signiert werden. Dies funktioniert nur, sofern die Gegenstelle eine Software verwendet, die ADSKs implementiert hat.