close
  • chevron_right

    Profanity und OpenPGP for XMPP (OX)

    DebXWoody · Tuesday, 21 September - 18:42 · 2 minutes

In Debian 11 ("Bullseye") ist Profanity 0.10.0 verfügbar. Installiert werden kann es mit dem Befehl apt install profanity. Profanity ist ein ncurses basierter XMPP Client.

Lust mal auf ein Experiment? Profanity OX experimental Implementierung! Wir nehmen an, deine XMPP-Adresse ist alice@domain.tld und du willst OpenPGP als Verschlüsselung für deine XMPP Nachrichten verwenden.

OpenPGP Schlüsselpaar erzeugen

Im ersten Schritt muss man, wie wir es bei OMEMO auch kennen, ein Schlüssel erzeugen. Der Schlüssel wird in unserem Fall mit dem Programm gpg erstellt und sieht wie folgt aus:

gpg --quick-generate-key xmpp:alice@domain.tld future-default default 3y

Was passiert hier? Mit diesem Befehl wird ein Schlüsselpaar mit der UID xmpp:alice@domain.tld erzeugt. Die Option future-default wird verwendet, damit ein ed25519/cv25519 Schlüssel erzeugt wird. Der Schlüssel wird nach 3 Jahren ablaufen, wenn dieser nicht verlängert wurde.

pub   ed25519 2021-09-21 [SC] [verfällt: 2024-09-20]
      583BAE703A801095B6B71A56BD801174B1A0B84A
uid                      xmpp:alice@domain.tld
sub   cv25519 2021-09-21 [E]

Öffentlichen Schlüssel exportieren

Damit andere die Möglichkeiten haben dir verschlüsselte Nachrichten zu schicken, musst du deinen öffentlichen Teil deines Schlüssels mit Freunden austauschen. Der folgende Befehl exportiert einen minimalen Schlüssel und speichert diesen in die Datei tmp/pep-key.gpg. XMPP Adresse und Key-ID müssen natürlich angepasst werden.

gpg --export \
  --export-options export-minimal \
  --export-filter 'keep-uid=uid =~ xmpp:alice@domain.tld' \
  --export-filter 'drop-subkey=usage =~ a' \
  583BAE703A801095B6B71A56BD801174B1A0B84A \
  > /tmp/pep-key.gpg

Der Key kann vor dem veröffentlichen wie folgt geprüft werden: gpg --show-key --with-sig-list /tmp/pep-key.gpg

Schlüssel veröffentlichen

Nachdem man sich mit profanity angemeldet hat, kann man seinen Schlüssel in PEP hochladen. Dies geht mit dem /ox announce Befehl.

/ox announce /tmp/pep-key.gpg
Annonuce OpenPGP Key for OX /tmp/pep-key.gpg ... 

Es werden im PEP zwei Einträge vorgenommen.

Schlüssel von Kontakten abfragen

Du kannst die Schlüssel deiner Kontaktpersonen abfragen und diese importieren.

/ox discover buddy@domain.tld
Discovering Public Key for buddy@domain.tld 
1234567890ABCDEF1234567890ABCDEF12345678

Die Schlüssel können dann mit dem folgenden Befehl importiert werden.

/ox request buddy@domain.tld 1234567890ABCDEF1234567890ABCDEF12345678
Requesting Public Key 1234567890ABCDEF1234567890ABCDEF12345678 for buddy@domain.tld
Public Key imported 

Schlüssel zertifizieren

Der Schlüssel lässt sich mit dem gpg Befehl gpg -k buddy@domain.tld anzeigen. Jetzt werden wir den Schlüssel noch unterschreiben.

gpg --ask-cert-level --default-key 583BAE703A801095B6B71A56BD801174B1A0B84A --sign-key 1234567890ABCDEF1234567890ABCDEF12345678

Der default-key ist unser Schlüssel und sign-key der des Kommunikationspartners.

Kontakte mit einem OpenPGP-Key für XMPP lassen sich via /ox contacts anzeigen, während /ox keys alle Schlüssel anzeigt.

Chatten

In einem Chat Fenster kann OX mit dem Befehl /ox start gestartet werden. Beendet wird es mit dem Befehl /ox end.

Die Nachrichten werden verschlüsselt und signiert übertragen.

#Debian #XMPP #Profanity #OX

  • favorite

    1 Like

    debacle

  • 1 Comments

  • 3 October debacle

    Profanity 0.11.0-1~bpo11+1 ist nun in Debian bullseye-backports.