• chevron_right

      Year of the OX: OpenPGP for XMPP

      debacle · pubsub.movim.eu / berlin-xmpp-meetup · Monday, 1 February, 2021 - 02:02 edit

    In February 2021, this month, starts the year of the ox. At Berlin XMPP meetup, we will celebrate the new year with an introductionary talk about "XEP-0373: OpenPGP for XMPP" and "XEP-0374: OpenPGP for XMPP Instant Messaging" and the panel of experts:

    • DebXWoody (implementor of OX in Profanity)
    • defanor (implementor of OX in rexmpp)
    • Florian (co-author of the OX standards)
    • lovetox (implementor of OX for Gajim)
    • Paul (implementor of OX in Smack)

    When? Wednesday, 2021-02-10 18:00 CET (always 2ⁿᵈ Wednesday of every month)

    Where? Online, via our MUC (xmpp:berlin-meetup@conference.conversations.im?join). A Jitsi video conference will be announced there.

    See you then!

    #yearoftheox #openpgp #xmpp #ox #jabber #encryption #e2ee #privacy #omemo #🐂️ #berlin #meetup #community #profanity #rexmpp #gajim #smack

    • chevron_right

      XMPP OX - OpenPGP

      Stefan · pubsub.movim.eu / xmpp-messenger · Tuesday, 19 May, 2020 - 18:56 edit · 5 minutes

    Vorwort

    Brainstorming zur Implementierung von XMPP OX (XEP-0373: OpenPGP for XMPP). Es gibt verschiedene Arten wie man die Verwendung von OpenPGP in XMPP implementieren kann. In diesem Dokument soll das Thema diskutiert werden.

    Grundlage ist XEP-0373: OpenPGP for XMPP Version 0.4.0 (2018-07-30)

    GnuPG Home und Keyring

    In GnuPG ist es möglich einen eigenen Home Directory zu verwenden oder einen eigenen Keyring zu definieren. Eine Änderung würde bewirken, dass der XMPP Client und der eigene Keyring / GnuPG Instanz unabhängig von einander verwendet werden. Es ist zu klären welche Vor- oder Nachteile die Verwendung eines eigen Keyring oder Homedir hat.

    Für Anwender die schon einen Key besitzen und diesen auch für XMPP nutzen wollen, sehe ich hier einen komplexeren Ablauf, wenn die Schlüssel auf mehrere Keyrings verteilt sind.

    Aus Sicht für der Anwender sehe ich einen Key mehr als eine Eigenschaft eines Kontakts in einem Adressbuch. So ist vom Anwendungsdesign eine Überlegung die "Kontakte" in einem Adressbuch darzustellen und diese auch individuell zu nutzen.

    Screenshot_Addressbook_OpenPGP

    Eine Aufteilung der Kontakte in noch mehr Quellen macht die Verwendung und Verwaltung nur komplexer. Ferner ist die Zertifizierung und die Bildung des Trust-DB aufwendiger.

    Für Nutzer, die ohnehin OpenPGP nur für XMPP verwenden, würde der Ort keine Rolle spielen. Die Verwendung eines Keyring auch mit unterschiedlichen Account sehe ich nicht als Problem.

    Verwaltung des eigenen Schlüssel

    Beim Verwenden von OpenPGP in XMPP sehe ich die folgenden Anwendungsfälle:

    • Der Benutzer hat noch keinen privaten OpenPGP Schlüssel
    • Der Benutzer hat einen privaten Schlüssel, jedoch noch kein Zuordnung zu XMPP
    • Der Benutzer hat einen privaten Schlüssel und eine Zuordnung zu XMPP

    Wenn der Benutzer noch keinen privaten Schlüssel hat, sollte die Anwendung einen OpenPGP Key erzeugen. Ein Experten-Modus für die Angabe von Schlüsseltyp und Schlüssellänge, sowie Verfallsdatum. In einem "normalen" Modus wird der Schlüssel automatisch generiert: rsa3072 / 2 Jahre. In beiden Fällen wird die XMPP Adresse (JID) im URI Format als UID eingetragen:

    sec   rsa3072 2020-05-16 [SC] [verfällt: 2022-05-16]
          A8431A0170B3EBB564CE294D0C1CE873ED588C2B
    uid        [ ultimativ ] xmpp:alice@domain.tld
    ssb   rsa3072 2020-05-16 [E] [verfällt: 2022-05-16]
    

    Sind im Keyring private Schlüssel vorhanden, kann der Benutzer auswählen, ob er einen neuen Key erzeugen will (siehe oben) oder einen der Schlüssel verwenden will. Hat der Benutzer sich für einen Schlüssel entschieden, wird für diesen Schlüssel eine UID angelegt mit der JID angelegt.

    Existiert ein Key mit der JID als UID wird diese verwenden. Wenn jedoch mehrere existieren, ist die Verwendung des Schlüssels nicht eindeutig. Zu klären ist, was in diesem Fall passieren soll?

    Damit ist der Punkt 8.5 "OpenPGP User IDs" in XEP-0373 erfüllt.

    Synchronisieren der privaten Schlüssel

    In Kapitel 5 wird das synchronisieren de privaten Schlüssel via PEP Node beschriebe.

    Meiner Meinung nach sollte die Synchronisation niemals automatisch erfolgen und immer eine bewusste Entscheidung des Benutzer sein. Es gibt keinen Bedarf für die Synchronisation eines privaten Schlüssels, wenn

    • der private Schlüssel auf einer Smartcard / Token ist
    • der Benutzer nur ein Endgerät benutzt
    • der Benutzer dies nicht möchte

    Was passiert, wenn der Key auf eine Smartcard ist? Wird dann der Stub synchronisiert?

    Schlüssel Validierung

    Die Herausforderung ist die Validierung der Schlüssel. Das trust-model pgp verwendet WoT in dem der Schlüssel einer anderen Person via Fingerprint geprüft werden muss. Danach wird öffentliche Schlüssel des Kommunikationspartners signiert. Durch die Eintragung einer owner-trust ist es möglich das WoT abzubilden.

    Der Nachteil bei diesem Konzept ist, dass es einfach keiner macht. Für diejenigen, die schon mit OpenPGP arbeiten, sollt das Modell kein Problem sein. Eine Kommunikation mit einem Kommunikationspartner kann in diesem Fall nur statt finden, werde der Schlüssel des Kommunikationspartner zertifiziert wurde.

    Für die Benutzer, die mit der Schlüsselverwaltung nicht zu tun haben wollen, könnt man versuchen dies über ein eigenes trust-model abzubilden. Ich habe dies jedoch selber noch nicht ausprobiert, und müsste man erst einmal validieren.

    Annahme: Gehen wir mal davon aus, dass wir das gleiche Homedir und die gleichen Keyrings verwenden können, jedoch einen andere trustdb. Wir nehmen die pgp TrustDB und verwenden diese mit dem trust-model pgp, wie man dies kennt. In einem "Nicht-Experten-Modus" wir man nun eine eigene Trust-Db verwenden, welche mit tofu oder tofu+pgp läuft.

    Denkfehler: Ob man ToFu oder gpg verwenden, ist abhängig vom Anwender und nicht von der Anwendung. Wir gehen jetzt einfach mal davon aus, dass der Benutzer einfach gpg oder tofu+pgp benutzt.

    Entweder der Anwender verwendet trust-model tofu+pgp oder trust-model pgp.

    Beispiel

    Ich versuche ein Text zu verschlüsseln:

    echo "Test" | gpg --homedir /tmp/testpgp --trust-model pgp -r 66C40DE0782393BA65D23E6C8459A4A77CAFA894 --encrypt -a 
    

    In diesem Fall kommt ein Meldung

    gpg: 90ED0F38F201CF29: Es gibt keine Garantie, daß dieser Schlüssel wirklich dem angegebenen Besitzer gehört.
    
    sub  rsa3072/90ED0F38F201CF29 2020-05-19 Name Name <rtfm@domain.tld>
     Haupt-Fingerabdruck  = 66C4 0DE0 7823 93BA 65D2  3E6C 8459 A4A7 7CAF A894
     Unter-Fingerabdruck  = 2A75 B79D 46E1 5655 39E4  CEC9 90ED 0F38 F201 CF29
    
    Es ist NICHT sicher, daß der Schlüssel zu dem in der User-ID
    Genannten gehört. Wenn Sie *wirklich* wissen, was Sie tun,
    können Sie die nächste Frage mit ja beantworten
    
    Diesen Schlüssel trotzdem benutzen? (j/N) 
    

    Der Grund ist, dass der Schlüssel nicht signiert wurde.

    Nutze ich jedoch ToFu:

    echo "Test" | gpg --homedir /tmp/testpgp --trust-model tofu+pgp -r 66C40DE0782393BA65D23E6C8459A4A77CAFA894 --encrypt -a 
    

    so ist die Verschlüsselung möglich.

    Im Vergleich

    gpg --homedir /tmp/testpgp --trust-model tofu+pgp -k 66C40DE0782393BA65D23E6C8459A4A77CAFA894 
    gpg: WARNUNG: Unsichere Zugriffsrechte des Home-Verzeichnis `/tmp/testpgp'
    pub   rsa3072 2020-05-19 [SC] [verfällt: 2022-05-19]
          66C40DE0782393BA65D23E6C8459A4A77CAFA894
    uid        [  marginal ] Name Name <rtfm@domain.tld>
    sub   rsa3072 2020-05-19 [E] [verfällt: 2022-05-19]
    
    gpg --homedir /tmp/testpgp --trust-model pgp -k 66C40DE0782393BA65D23E6C8459A4A77CAFA894 
    gpg: WARNUNG: Unsichere Zugriffsrechte des Home-Verzeichnis `/tmp/testpgp'
    pub   rsa3072 2020-05-19 [SC] [verfällt: 2022-05-19]
          66C40DE0782393BA65D23E6C8459A4A77CAFA894
    uid        [ unbekannt ] Name Name <rtfm@domain.tld>
    sub   rsa3072 2020-05-19 [E] [verfällt: 2022-05-19]
    
    • chevron_right

      eagle Prototyp

      Stefan · pubsub.movim.eu / xmpp-messenger · Sunday, 10 May, 2020 - 06:07 edit

    eagle

    Ich habe gestern einen ersten Prototyp von eagle auf codeberg hochgeladen.

    Der Prototyp hat aktuell eine sehr einfache Implementierung von

    • Lesen der Adressen von abook
    • Lesen von VCard Dateien aus einem Verzeichnis
    • Lesen der Informationen aus einem GnuPG Keyring
    • Lesen der Kontakte aus einem XMPP Roster
    • Schreiben einer signierten und verschlüsselten Nachricht via XEP-0373: OpenPGP for XMPP

    Mehr Informationen und Screenshots sind im Wiki: https://codeberg.org/xmpp-messenger/eagle/wiki

    #XMPP #eagle #OpenPGP #gnupg

    • chevron_right

      xmppc - Pre-Release 0.0.3

      Stefan · pubsub.movim.eu / xmpp-messenger · Saturday, 18 April, 2020 - 06:31 edit · 1 minute

    Hallo zusammen,

    ich habe in xmppc zwei neue Funktionen eingebaut. Die Version ist mit 0.0.3 auf codeberg getagged.

    • Implementation for XEP-0373: OpenPGP for XMPP.
    • Module for XMPP Monitoring

    XEP-0373: OpenPGP for XMPP

    Mit dem Mode openpgp und dem Befehl signcrypt sollte es jetzt möglich sein, verschlüsselte und signierte XMPP Nachrichten via XEP-0373 zu verschicken.

    XMPP Monitoring

    Mit dem Mode monitor und dem Befehl stanza bekommt man die XML Daten angezeigt.

    xmppc 0.0.3

    Die aktuelle Version hat somit die folgenden Befehle:

    xmppc --jid user@domain.tld --pwd "password" --mode roster list
    xmppc -j user@domain.tld -p "password" -m roster list
    xmppc -j user@domain.tld -p "password" -m roster export
    xmppc -j user@domain.tld -p "password" -m message chat friend@domain.tld "Message"
    xmppc -j user@domain.tld -p "password" -m pgp chat friend@domain.tld "Message"
    xmppc -j user@domain.tld -p "password" -m openpgp signcrypt friend@domain.tld "Message"
    xmppc -j user@domain.tld -p "password" -m omemo list
    xmppc -j user@domain.tld -p "password" -m monitor stanza
    
    xmppc 0.0.3
    Usage: xmppc --jid <jid> --pwd <pwd> --mode <mode> <command> <parameters>
    Options:
      -h / --help             Display this information.
      -j / --jid <jid>        Jabber ID
      -p / --pwd <password>   Passwort
      -m / --mode <mode>      xmppc mode
    
    Modes:
      -m --mode roster      xmppc roster mode
        list                  List all contacts
        export                Exports all contacts
    
      -m --mode message     xmppc message mode
        chat <jid> <message>  Sending unencrypted message to jid
    
      -m --mode pgp         xmppc pgp mode (XEP-0027) 
        chat <jid> <message>  Sending pgp encrypted message to jid
    
      -m --mode omemo       xmppc omemo mode
        list                  List the device IDs and fingerprints
    
      -m --mode openpgp          xmppc openpgp mode (XEP-0373)
        signcrypt <jid> <message>  Sending pgp signed and encrypted message to jid
    
      -m --mode monitor     Monitot mode    stanza              Stanza Monitor
        monitor             microblog Monitor microblog (XEP-0277: Microblogging over XMPP)
    
    
    Examples:
      Usage: xmppc --jid user@domain.tld --pwd "secret" --mode roster list
      Usage: xmppc --jid user@domain.tld --pwd "secret" --mode pgp chat friend@domain.tld "Hello"
    

    Feedback (Verbesserungen, Fragen, Fehler) sind willkommen: Issue Tracker.

    #XMPP #xmppc #OpenPGP #GnuPG

    • chevron_right

      OpenPGP mit GnuPG

      Stefan · Sunday, 23 February, 2020 - 07:45 edit · 1 minute

    Ich verwende für die Signatur und die Verschlüsselung von Daten OpenPGP mit GnuPG.

    OpenPGP ist ein standardisiertes Dateiformat. Es kann zur Signatur und zur Verschlüsselung von Daten verwendet werden. GnuPG ist eine freie Software, welche diesen Standard implementiert.

    OpenPGP lässt sich unter anderem für die Verschlüsselung von Daten verwenden, wie bzw. E-Mails oder Dateien. Die Korrektheit von Informationen, kann man durch eine Signatur von Daten oder E-Mail gewährleisten.

    Jeder Benutzer hat ein Schlüsselpaar. Ein Schlüsselpaar besteht aus einem
    privaten Schlüssel und einem öffentlichen Schlüssel. Auf der Homepage des BSI für Bürger gibt es ein nettes Video, was es sehr gut veranschaulicht.

    E-Mail Verschlüsselung: Schlüsseltausch einfach gemacht

    Zunächst installiert man sich die Software auf seinem PC. Danach generiert man sich das Schlüsselpaar. Dies kann man mit der Anwendung gpa machen, oder auf der Shell mit einem Befehl. Einige Informationen zum Thema GnuPG haben wir auf der Homepage der devLUG zusammengetragen:

    Signieren und Verschlüsseln von E-Mails

    Mit GnuPG lassen sich E-Mails signieren und verschlüsseln. So kann sichergestellt werden, dass der Inhalt einer E-Mail wirklich von einer Person kommt und auch nur von der Person gelesen werden kann, für die die E-Mail gedacht war.

    XMPP

    Einige XMPP Messenger unterstützen ebenfalls OpenPGP zum senden von verschlüsselten Nachrichten.

    XMPP MUC über GnuPG

    Ich habe für den Austausch rund um OpenPGP und GnuPG einen MUC auf jabber.de angelegt xmpp:gnupg@conference.jabber.de?join

    Links

    #OpenPGP #GnuPG

    • chevron_right

      Software, Dienste und myself

      Stefan · Saturday, 25 January, 2020 - 06:35 edit · 2 minutes

    Betriebssysteme

    Für die Workstations und Server nehme ich Debian GNU/Linux. Das Betriebssystem ist sehr stabil und ist schon immer ein treuer Begleiter. Einer der wichtigsten Gründe ist jedoch der Debian-Gesellschaftsvertrag weshalb ich mich für Debian entschieden habe. Ich habe ca. 2000 mit SuSE Linux angefangen und bin seit Debian Woody Linux User.

    Debian GNU/Linux 3.0 (a.k.a. woody) was released on 19th of July, 2002.

    Auf dem Smartphone nutze ich LineageOS, eine Android Distribution ohne Anwendungen und Dienste von Google. Software lässt sich über F-Droid installieren. Mehr Infos zum Thema Smartphone.

    Dienste

    Für die öffentlichen Repositories nutze ich Codeberg. Der Dienst wird von einem Verein bereitgestellt und hat für meine privaten Freizeitprojekte immer Vorrang gegenüber GitLab und GitHub.

    Für die Kommunikation nutze ich XMPP. XMPP ist ein Protokoll für Instant Messaging. Hier empfehle ich den Dienst Anoxinon Messenger. Anoxinon ist ein Verein der sich für Open Source und Datenschutz einsetzt. Ich bin Anfang 2019 dem Verein beigetreten, da er in vielen Punkte meine Meinungen vertritt und Open Source und Bildung wichtige Punkte für mich sind.

    @skyfar und Team, der Verein hat Ziel und Zweck was für uns alle wichtig ist. Weiter so!!!

    OpenStreetMap ist ein Dienst für Karten.

    Sicherheit

    Besonders für die Signatur und Verschlüsselung von Daten und E-Mails nehme ich OpenPGP mit GNU Privacy Guard. OpenPGP kann man auch in XMPP nutzen.

    Wenn du Fragen zu OpenPGP / GnuPG hast, dann kannst du mich gerne ansprechen oder komm vorbei xmpp:gnupg@conference.jabber.de?join vielleicht kann ich helfen.

    pub   rsa4096/0xC2DC916F35751C24 2019-05-14 [SC] [verfällt: 2021-05-13]
      Schl.-Fingerabdruck = A602 F768 93F1 38B4 A8EF  DDD5 C2DC 916F 3575 1C24
    
    pub   rsa4096/0xB08D23A4A857085D 2019-07-21 [SC] [verfällt: 2021-07-20]
      Schl.-Fingerabdruck = C7F4 7DE0 BA30 7CBD A584  60E9 B08D 23A4 A857 085D
    

    Für OTP für 2FA habe ich eine APP auf dem Smartphone, aber auch den Nitrokey, der mich immer begleitet.

    Social Media

    Für Social Media habe ich Movim entdeckt. Es basiert auf XMPP. Es kann als RSS Feed, Microblog oder zum schreiben von Artikel und als XMPP Client verwendet werden. Ich find Movim super!

    @edhelas, Thanks for this great community platform based on XMPP.

    E-Mail

    E-Mails bearbeite ich mit getmail, procmail, notmuch und neomutt. Dies ist mehr etwas für fortgeschrittene Linux User und sicher nicht für jeden etwas. getmail ruft die E-Mails von einem POP3/IMAP Server ab und gibt diese an procmail weiter. procmail sortiert die E-Mail in verschiedene Maildir Verzeichnisse, abhängig von Regeln. Danach werden die E-Mails mittels notmuch getagged. Mein neomutt ist dann basierend der tags konfiguriert. So habe ich eine physikalische Sicht via Maildir Verzeichnisse und eine logische Sicht via notmuch virtuelle Mailboxes. Zum schreiben von E-Mails verwende ich vim. Einen kleinen Artikel hab ich auf der Homepage der devLUG erstellt, Neomutt und Co.

    @flatcap, Thanks for your good and hard work on neomutt!!!

    XMPP

    Für Instant Messaging verwende ich nur noch XMPP. Als XMPP Clients nutze ich gajim, profanity und Conversations / Pix-Art Messenger für Android.

    #Debian #Codeberg #OpenPGP #GnuPG #Anoxinon #XMPP #neomutt #OpenStreetmap

    • chevron_right

      Warum XMPP als Instant Messaging

      Stefan · pubsub.movim.eu / xmpp-messenger · Sunday, 17 November, 2019 - 05:55 edit · 2 minutes

    Warum ich mich für XMPP entschieden habe,...

    Smartphone, Desktop, Laptop oder SSH

    Ich arbeite eigentlich sehr ungern auf meinem Smartphone. Ich nutze es zwar sehr oft, aber wenn ich die Wahl habe mich an mein Debian Desktop oder Laptop zu setzen oder mein LineageOS Smartphone zu verwenden, dann gewinnen meine Debian Systeme immer.

    XMPP ermöglicht mir die Kommunikation über das Smartphone oder Desktop / Laptop zu verwenden und wenn es mal nicht anders geht, dann eben per SSH mit profanity über einen Server.

    • https://conversations.im
    • https://jabber.pix-art.de
    • https://gajim.org
    • https://profanity-im.github.io

    Verschlüsselung oder Klartext

    Ich kann mit XMPP Nachrichten per Klartext übertragen, die Verschlüsselung via OMEMO nutzen oder das bekannte Verschlüsselungssystem OpenPGP nutzen. In viele Anwendungsfälle lässt sich XMPP sowohl auf dem Smartphone als auch auf dem Debian System mit einem Nitrokey oder Yubikey nutzen. In öffentlichen Gruppen, kann man auch die Nachrichten per Klartext übertragen.

    Freie Wahl

    In allen Bereichen des Instant Messaging habe ich die freie Wahl. Ich kann entscheiden welche Server Software ich verwende, wenn ich meine Dienst selber betreibe oder ich kann mir meinen Provider aussuchen, wenn ich den Dienst nicht selber betreibe. Ich kann mir den Client aussuchen, der für mich am besten passt.

    Unabhängig

    Bei XMPP handelt es sich um ein freies Protokoll. Man ist nicht an ein Unternehmen gebunden. Das Protokoll ist in einigen RFCs definiert. Die Erweiterungen (XEPs) werden von der XMPP Standards Foundation (XSF) verwaltet.

    XMPP is an open technology, so the simple answer is: no one.

    It is not a programming language, or a tool you can download and use. You can’t buy it or pay for a licence to use it.

    It is a protocol (a set of standards) that the XMPP Standards Foundation maintains. There is also an active community of open-source and commercial developers who produce a wide variety of XMPP-based software.

    In essence, XMPP belongs to the vibrant community that develops and cares for it.

    Quelle: https://xmpp.org/about/faq.html

    Privatsphäre

    Für die Verwendung von XMPP benötigt man einen XMPP-Account (JID). Die meisten mir bekannten XMPP Provider, benötigen für die Registrierung keine persönlichen Daten. Das hat den Vorteil, dass man keine persönlichen Informationen bekannt geben muss. Für die Verwendung von XMPP sind weder Zugriff auf die Kontaktdaten des Adressbuches nötig noch Handynummer / E-Mail-Adresse oder ähnliches.

    XMPP-Messenger Projekt

    Um XMPP zu unterstützen, habe ich das XMPP-Messenger Projekt gestartet https://xmpp-messenger.de. Das Ziel ist es, die Verwendung, Administration, Entwicklung von XMPP zu unterstützen.

    Die Community

    Bis jetzt sind mir die Menschen ( ich hoffe es waren alles Menschen und keine KI :-D ), mit denen ich Kontakt hatten und auch habe, immer besonders freundlich und sehr hilfsbereit aufgefallen. Hat man Fragen, braucht Hilfe oder Verständnis Probleme, so bekommt man in den öffentlichen Multi-User-Chats sicherlich die benötigen Informationen.

    Deutschsprachige MUCs

    • xmpp:xmpp-messenger@conference.anoxinon.me?join

    Englischsprachige MUCs

    • xmpp:profanity@rooms.dismail.de?join - MUC für den Client profanity

    #XMPP #OpenPGP #Nitrokey

    • chevron_right

      Hat OpenPGP heutzutage noch eine Bedeutung?

      Stefan · pubsub.movim.eu / xmpp-messenger · Monday, 28 October, 2019 - 21:08 · 2 minutes

    Meiner Meinung nach, “Ja!”.

    Ich bin kein Experte der Kryptographie. Ich kenne mich eigentlich sehr wenig damit aus. Jedoch ist meiner Meinung dazu die Folgende.

    Ich bin ein OpenPGP / GnuPG Fan. Ich finde die Idee der Prüfung von öffentlichen Schlüsseln gut und auch das Konzept vom Web-of-Trust finde ich super. Das ist jedoch meiner persönliche Meinung, deswegen zurück auf die Frage,..

    Alle folgenden Informationen können gerne auf Korrektheit geprüft werden (wenn jemand Plan davon hat) und auch gerne Feedback im Issue geben:

    Issue auf Codeberg zu XMPP und OpenPGP

    OMEMO ist ein Protokoll was Perfect Forward Secrecy (PFS) verwenden. Mein Verständnis ist hierbei, dass die Nachrichten nur innerhalb einer “Sitzung” entschlüsselt werden können. Bei OMEMO ist es wohl nicht die “Session” selber, vielleicht ist hier die “Session” mehr zeitlich orientiert (ich weiß es nicht).

    Unabhängig davon, muss die Nachricht wegen der “Perfect Forward Secrecy” auf dem Client entschlüsselt werden. Da man später die Nachricht nicht mehr entschlüsselt kann! Das ist ja auch die Idee dahinter. Ferner ist OMEMO Geräte basierten, was auf der einen Seite sicherlich gut ist (z.b. kein Vertrauen von Geräten wie Smartphone oder Web-Apps, aber dem Desktop Client). Jedoch ist die Lösung auch ab und zu nicht immer Perfekt.

    Bei OpenPGP ist der Schlüssel einer Person und nicht einem Gerät zugeordnet. Unabhängig welches Gerät ich später verwende, können Nachrichten noch gelesen werden. Da OpenPGP kein (PFS) verwenden, muss man auch die Nachrichten nicht auf dem Client entschlüssel und speichern. Man kann die Nachrichten währen der Laufzeit entschlüsseln und anzeigen. Die Nachricht selber bleibt verschlüsselt.

    Die Token wie Nitrokey und Yubikey können verwenden werden, um den privaten Schlüssel zu verwalten. Kleine Erinnerung: Der private Schlüssel ist geheim zu halten und hierbei ist fraglich, ob ein Schlüssel etwas auf einem Server oder Smartphone verloren hat!

    Es gibt kein “blindes” Vertrauen - bzw. mir ist es nicht bekannt. Ein Verschlüsselungsverfahren hat etwas mit Vertrauen zu tun. Wenn ich jedem einfach blind vertraue (also davon ausgehen, dass der öffentlich Schlüssel / Fingerprint zu einer Person passt), dann ist der Nutzen von Verschlüsselung etwas fragwürdig :-) Das Web-of-Trust wie es bzw. bei GnuPG / OpenPGP verwendet wird, ist sicherzustellen, dass ein öffentlicher Schlüssel genau der Person gehört (Zertifizierung - unterschreiben des öffentlichen Schlüssels einer anderen Person) und das Verwenden von Trust-Level und Trust-DB bildet die Möglichkeit Schlüssel als Gültig zu betrachten, ohne den Schlüssel selber signiert zu haben.

    Fazit: Ich finde OpenPGP immer noch ein wichtiges und sehr gutes Konzept und würde mich freuen, wenn es auch in XMPP mehr einsetzt findet.

    #XMPP #OpenPGP #GnuPG #Nitokey #Yubikey #OMEMO