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:
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.
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.
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.
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.
Konsultiere Datenstellung der Geburtstage aus allen Quellen.
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
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.
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.
Die Anwendung soll mehrere XMPP Accounts unterstützen. Die XMPP Kontakte sollen angezeigt werden.
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.
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 Bobs
Unterschriften 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
.
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.
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.
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.
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.
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.
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
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).
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 Documentation
Dokument eintragen.
#PRINCE2 #Projektmanagement
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.
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.
Auch die Adressen aus der XMPP Kontaktliste werde dem Benutzer im Adressbuch angezeigt.
Dabei sind folgende Ideen bekommen:
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.
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.
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.
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
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
Mehr Informationen: Project Initiation Documentation