close
  • Xm chevron_right

    Funktionale Anforderung - Adressbuch

    DebXWoody · pubsub.movim.eu / xmpp-eagle · Wednesday, 17 June - 16:55 edit · 2 minutes

Die Anwendung eagle sollte ein Adressbuch haben, in dem der Benutzer Kontaktdaten einsehen, speichern und verwalten kann.

Im Prototyp vom eagle haben wir erst einmal folgenden Quellen für Kontaktdaten implementiert:

  • abook Adressbuch Datei
  • Der OpenPGP Schlüsselbund von GnuPG
  • Das XMPP Adressbuch (XMPP roster)
  • Ein Verzeichnis zur Ablage von VCards

Quellen

Adressbuch Datei

Die Anwendung sollte möglichst flexibel gestaltet werden. Wenn der Benutzer es bevorzugt seine Daten primäre via der Konsolen Anwendung abook zu verwalten, liest eagle die Daten, um diese auch in der Anwendung zu verwenden. Der Benutzer ist so nicht gezwungen eine Import / Export Funktion zu nutzen und so die Daten synchronisieren muss.

OpenPGP Schlüsselbund

Der OpenPGP Schlüsselbund enthält auch Kontaktdaten wie Name, E-Mail-Adressen oder XMPP-Adressen. Auch das Speichern von Bildern in öffentlichen OpenPGP Schlüssel ist möglich.

XMPP Adressbuch

Es sollten mehrere XMPP Adressen unterstützt werden, da es vorkommen kann, dass jemand z.b. einen privaten und beruflichen XMPP Account hat. Die XMPP roster Informationen sollen ebenfalls angezeigt werden.

VCards

Es kann vorkommen, dass jemand eine VCard zugeschickt bekommt oder von einer anderen Anwendung ein VCard export erstellt. eagle soll ein Verzeichnis mit VCard auslesen können und die Kontaktdaten zu den VCards anzeigen.

Geburtstag

Konsultiere Datenstellung der Geburtstage aus allen Quellen.

Details

Adressbuch Datei

Das Dateiformat für abook sieht wie folgt aus:

[format]
program=abook
version=0.6.1


[0]
name=Vorname1 Nachname1
email=vorname1.nachname1@domain.tld,vorname1.nachname1@work.tld
firstname=Vorname1
lastname=Nachname1
middlename=ZweiterName
pager=Pager - Gibt es noch?
address_lines=Strasse1,Oben Links die Wohnung
birthday=1990-12-31
block=www.domain.tld/blog
jabber=xmpp@domain.tld
companyname=Company
work_address_lines=Straße 1,PLZ
fingerprint=1234567890ABCDEF1234567890ABCDEF12345678
city=City1
state=State1
zip=12345
country=Germany
phone=+491234567890
workphone=+49987654321
mobile=1234567
fax=Faxnummer
url=http://domain.tld
nick=Nickname
anniversary=1995-01-01
notes=Notes1
groups=Group1,Group2

[1]
name=Vorname2 Nachname2
email=vorname1.nachname2@domain.tld
firstname=Vorname2
lastname=Nachname2
address_lines=Strasse2
jabber=xmpp@domain.tld
fingerprint=1234567890ABCDEF1234567890ABCDEF12345678
city=City2
state=State2
zip=12345
country=Germany
phone=+491234567890
workphone=+49987654321
mobile=1234567
url=http://domain.tld
notes=Notes2

OpenPGP Schlüsselbund

Im OpenPGP Schlüsselbund sollen nicht nur die Schlüssel angezeigt werden, sondern auch die Details zu den Unterschlüssel und Identitäten. Die wichtigsten Informationen soll in der Tabelle angezeigt werden.

  • Primäre Identität - Name und E-Mail-Adresse
  • Erster Eintrag mit XMPP-URI
  • Ablaufdatum des Schlüssels
  • Gültigkeit des Schlüssels

Die primäre Identität wird angezeigt, da es sich mit hoher Wahrscheinlichkeit um die bevorzuge E-Mail-Adresse des Kontakts handelt. Da es sich bei eagle um einen XMPP Client handelt, sollte die Anwendung die Identitäten des Schlüssels scannen und den ersten Eintrag mit einer xmpp-URI ermitteln uns anzeigen.

XMPP Adressbuch

Die Anwendung soll mehrere XMPP Accounts unterstützen. Die XMPP Kontakte sollen angezeigt werden.

  • Name
  • XMPP Adresse
  • Subscription Status
  • Online Status
  • XMPP Account des eagle Nutzer (Multi Account Support)

  • Pictures

  • visibility
  • Xm chevron_right

    OpenPGP und das Web of Trust

    DebXWoody · pubsub.movim.eu / xmpp-eagle · Tuesday, 16 June - 05:00 edit · 2 minutes

Wie funktioniert das Web of Trust? Bei diesem Punkt gibt es einiges zu beachten.

Wie im letzten Kommentar angesprochen sollte man wegen der Anmerkung

soziale Graphen eine begehrte Handelsware geworden

einige Dinge wissen.

Warum braucht man das Web of Trust?

Bei der asymmetrisch Verschlüsselungsmethode hat man einen privaten und einen öffentlichen Bestandteil des Schlüssels. Man spricht hier von einem Schlüsselpaar. Der öffentliche Schlüssel wird untereinander ausgetauscht und der private Schlüssel bleibt immer im Besitzt des Eigentümers und darf nicht an dritte kommen. Wenn eine Person Alice den Schlüssel von Bob bekommt. Wie kann Alice sicherstellen, dass der erhaltene Schlüssel auch wirklich von Bob ist? Das ist sehr einfach! Alice trifft sich mit Bob und prüft den Fingerabdruck der Schlüssel. Wenn dieser korrekt ist, unterschreibt Alice mit ihren privaten Schlüssel den öffentlichen Schlüsseln von Bob.

Ich, Alice, habe diesen Schlüssel geprüft, für richtig befunden und bin mir sicher, dass es sich um den Schlüssel von Bob handelt.

Was ist die Konsequenz? Ich muss meine ganze Familie besuchen, um die Schlüssel zu prüfen. Dies ist in Zeiten mit Corona gar nicht so einfach. Dieses Problem lösen wir mit dem WoT. Die Schlüssel von Alice und Bob wurden gegenseitige unterschrieben.

Alice sehe ich selten, aber Bob ist mein Arbeitskollege. Ich werde den Schlüssel von Bob wie oben schon beschrieben mit ihm prüfen. Des Weiteren gebe ich an, dass ich ein sehr starkes vertrauen in die Signaturen von Bob habe.

Was passiert jetzt?

Da ich BobsUnterschriften vertraue und Bob den Schlüssel von Alice unterschrieben hat. Ist der unterschriebene Schlüssel von Alice welchen ich vor ihr bekommen habe für mich gültig.

Was ist aber das Problem?

Das Konzept ist doch super, aber wo ist das Problem? Stichwort: Handelsware von soziale Graphen? In den öffentlichen Schlüssel steckt jetzt eine wichtige Information. Bob kennt Alice und Alice kennt Bob. Leider hat sich die Welt etwas geändert und man muss hierbei bedenken, dass man so Informationen über sich Preis gibt. Welche andere wiederum, was das eigentlich Problem ist, auswerten können.

Das Problem lässt sich aber vermeiden.

Minimaler öffentlicher öffentlicher Schlüssel

Man kann den öffentlichen Schlüssel, welcher auch wirklich öffentlich (aus der Homepage) mit einer Option exportieren, dass die Schlüssel keine Signaturen enthalten. --export-options export-minimal. Dies ist sozusagen das "deaktivieren" von WoT. Es ist so möglich, dass jemand dennoch die Daten des Schlüssels hat. Jedoch nicht die Signaturen. Der richtige Schlüssel kann auf einem anderen Kommunikationsmedium (z.b. E-Mail) dann verschlüsselt an die Person übertragen werden.

WKD

Eine weitere Möglichkeit ist den Schlüssel nicht auf einem öffentlichen Keyserver hochzuladen sondern nur per WKD anzubieten. Das hilft dabei, die Information aus der Signatur nicht direkt einer Person zuzuordnen zu können.

  • favorite

    1 Like

    debacle

  • Xm chevron_right

    Warum OpenPGP?

    DebXWoody · pubsub.movim.eu / xmpp-eagle · Sunday, 14 June - 09:53

Die verschiedenen Verschlüsselungsmethoden haben jeweils Vor- und Nachteile. Ob es hier ein richtig oder falsch gibt, kann ich nicht sagen. Abhängig vom Einsatzgebiet gibt es vielleicht ein besser oder schlechter geeignet.

Warum ich OpenPGP bevorzuge

Ein OpenPGP Key ist nicht an das Geräte / Client gebunden. Die Nachrichten können unabhängig davon entschlüsselt werden. Nachrichten welche an mich geschickt wurden, können mit dem privaten Schlüssel auch mit einem anderen Gerät entschlüsselt werden.

Man kann das WoT nutzen, um die Schlüssel anderer Personen als gültig zu betrachten.

Der Schlüssel kann z.b. auf einer Smartcard oder Token gespeichert werden. So kann ich den Schlüssel auch "mitnehmen".

Die Nachrichten können verschlüsselt gespeichert werden und müssen nicht auf dem Client entschlüsselt werden.

  • favorite

    2 Like

    debacle , DebXWoody

  • 3 Comments

  • 15 June debacle

    Der letzte Punkt impliziert auch: Nachrichten können in einem Message Archiv liegen und sind später auf einem neuen Client lesbar.
    Den Komfortgewinn bezahlt man natürlich mit weniger Sicherheit gegenüber Systemen mit forward security, wie OMEMO.
    WoT sehe ich eher nicht als Vorteil an. Das Konzept paßt nicht in eine Zeit, in der soziale Graphen eine begehrte Handelsware geworden sind.

  • 15 June DebXWoody

    Ich bin mir nicht sicher, ob der Sicherheitsaspekt bei PFS ein Vorteil ist. Ich bin aber auch kein Experte in diesem Bereich. Jedoch ist mein Verständnis, dass der Client in jedem Fall die Nachricht entschlüssel muss - was er auch tun wird. Danach hat man die Nachricht ggf. unverschlüsselt auf seinem mobilen Endgerät welches bei Anschluss an das WLAN das Backup in die Cloud startet?! Ich weiß nicht, ob hier jetzt etwas dran ist oder nicht, aber bei OpenPGP mit einem Nitrokey kann ich entscheiden wann / ob ich die Nachricht entschlüssel will.

  • 16 June debacle

    Ich bin auch kein Security-Experte, meine aber verstanden zu haben, daß die Vor- und Nachteile der Verfahren sehr vom Angriffsszenario abhängen. Es wird heutzutage am liebsten der Client selbst angegriffen, was den Sinn von PFS und "sicherer Messenger" wie Signal stark relativiert. Es bleibt wohl die höhrere Sicherheit von PFS, wenn der Client nicht angegriffen werden kann.

  • Xm chevron_right

    GnuPG Schlüsselbund

    DebXWoody · pubsub.movim.eu / xmpp-eagle · Sunday, 14 June - 05:33

Der GnuPG Schlüsselbund soll in das Adressbuch integriert werden. Die Reiter auf der linken Seite sind die Herkunft der Kontaktdaten. So können die Kontaktdaten aus verschiedenen Quellen in der Anwendung angezeigt werden.

Mit einem Doppel-Klick lassen sich die Schlüssel Informationen anzeigen.

Es werden die Schlüssel aus dem eigenen Keyring von GnuPG angezeigt.

#GnuPGP

  • Xm chevron_right

    Nachricht oder Chat

    DebXWoody · pubsub.movim.eu / xmpp-eagle · Sunday, 14 June - 05:31

Ich habe aktuell Nachrichten verwenden. Wenn ich es richtig verstehe, dann haben Einzelnachrichten auch einen Betreff und Chats sind in einigen Clients mehr als einzeilige Eingabe dargestellt. Im Zusammenhang für eagle sehe ich mehr die Verwendung von Einzelnachrichten.

Vor dem Senden suchen die Anwendung nach den Schlüsseln (Sender private key zum signieren und public Key des Empfänger zum verschlüsseln).

  • Xm chevron_right

    Projektmanagement bei Freier Software?

    DebXWoody · pubsub.movim.eu / xmpp-eagle · Saturday, 13 June - 04:32

Braucht man Projektmanagement bei der Softwareentwicklung Freier Software?

Einige Softwareprojekte der im Bereich FLOSS laufen so nebenher. Wenn das Projekt interessant ist, werden durch Pull-Requests sich einige Leute beteiligen. Aber wer trifft denn Entscheidungen, wenn es mal zu fragen kommt? Wie erfolgt die Kommunikation? Was ist denn, wenn das Projekt "übergeben" wird, weil der ursprüngliche Entwickler keine Zeit und Lust mehr hat?

An der einen oder anderen Stelle kann Projektmanagement sicherlich ein wichtiger und hilfreicher Punkt sein. Eine Methode ist beispielsweise PRINCE2 (englisch Projects in Controlled Environments ‚Projekte in kontrollierten Umgebungen‘).

Ich habe für das eagle Projekt jetzt eine eigene Organisation auf Codeberg angelegt. https://codeberg.org/eagle. Für das Management gibt es ein eigenes Projekt https://codeberg.org/eagle/eagle-mgmt.

Alles was wichtig ist und sein könnte, werde ich im Project Initiation DocumentationDokument eintragen.

#PRINCE2 #Projektmanagement

  • Xm chevron_right

    XMPP eagle - Kickoff

    DebXWoody · pubsub.movim.eu / xmpp-eagle · Friday, 12 June - 16:34 edit · 2 minutes

Seit einiger Zeit beschäftige ich mich in meiner Freizeit mit XMPP. Jetzt soll es etwas konkreter werden und ich möchte ein Freizeitprojekt starten. Ich habe schon mit etwas Programmierung begonnen, um einen ersten Eindruck zu bekommen.

Die Idee

Ich will nicht einen weiteren XMPP Client für Instant Messaging programmieren. Die Idee bei diesem Projekt ist eine Linux Desktop Anwendung als eine Art Groupware zu implementieren, welche sich primäre auf die Verwendung von OpenPGP (GnuPG) und XMPP konzentriert.

So wird beispielweise der GnuPG Schlüsselbund nicht als Schlüssel dargestellt, sondern ist ein Bestandteil des Adressbuches.

OpenPGP

Auch die Adressen aus der XMPP Kontaktliste werde dem Benutzer im Adressbuch angezeigt.

XMPP

Dabei sind folgende Ideen bekommen:

  • Senden von Nachrichten (nicht Chat sondern mehr wie Mail)
  • Senden von verschlüsselten Nachrichten via OpenPGP
  • Mircoblogging via XMPP
  • Gruppenunterhaltungen für virtuelle Räume (MUC)
  • Aufgabenverwaltung via PubSub

Wer könnte solch ein Programm gebrauchen?

Vielleicht ist die Anwendung nicht nur privat interessant sondern kann auch z.b. für Unterricht oder in kleinen Unternehmen verwenden werden. Vielleicht kann man ein hilfreiches Programm entwickeln, um die digitale zusammenarbeit auf Basis von XMPP zu ermöglichen.

Wie geht es weiter?

Die Infrastruktur habe ich schon mal vorbereitet. Das sollte für den Anfang ausreichen, oder? Den Code müsste man jetzt schon mal dokumentieren und aufräume, damit man gleich von beginn einen saubere Codebasis hat.

Als nächster Schritt sollte man die Produktbeschreibung erarbeiten. Was soll das Programm machen und für was ist es nicht gedacht? Wie soll es aussehen, wie soll es Funktionieren etc.

Weitere Informationen

Codeberg e.V.

Die Entwicklung findet auf Codeberg statt. Siehe Präambel der Satzung des Vereins. https://codeberg.org/codeberg/org/src/branch/master/Satzung.md Ich möchte mit der Nutzung der Plattform den Verein unterstützen.

Anoxinon e.V.

Für den MUC und Mastodon habe ich die Dienste bei Anoxinon e.V. Siehe Informationen zum Verein in der Satzung: https://anoxinon.de/files/Satzung.pdf

Mitmachen und Unterstützen

Es werden bei der Softwareentwicklung nicht nur Programmierer benötigt. Man kann bei vielen Aufgaben helfen (Übersetzen, Feedback geben, Ideen einbringen, Testen, Fehler berichten,...) Alle diese Aufgaben sind neben der Entwicklung von Software für die Programmierer immer etwas schwer, besonders wenn es ein Freizeitprojekt ist.

Wer Interesse hat, kann gerne im Gruppenchat vorbei kommen: xmpp:eagle@conference.anoxinon.me?join

Project Initiation Documentation

Mehr Informationen: Project Initiation Documentation

Links

  • Mailingliste - https://framalistes.org/sympa/subscribe/xmpp-eagle
  • Mastodon - https://social.anoxinon.de/@eagle
  • Codeberg - https://codeberg.org/eagle
  • Pull mirroring auf Gitlab - https://gitlab.com/xmpp-eagle
  • XMPP Multi User Chat - xmpp:eagle@conference.anoxinon.me?join
  • Movim - https://nl.movim.eu/?community/pubsub.movim.eu/xmpp-eagle
  • Blog - https://nl.movim.eu/?node/pubsub.movim.eu/xmpp-eagle
  • Pictures

  • visibility