Client 2 Client Messenger (save?!)

Du hast eine Idee für ein Projekt?
citc
User
Beiträge: 14
Registriert: Dienstag 21. Oktober 2008, 08:51

Mein Ziel wäre es einen plattformunabhängiger Instant Messenger, welcher dezentral arbeitet unter der Verwendung des Kademila-Protokolls (ähnlich wie bei CSpace) zu schaffen mit zusätzlichen Sicherheitsmerkmalen.
Die Idee war folgende, einen Verschlüsselte Informationsübertragung zu gewährleisten sowie eine Authentifizierung durch mehrere Sicherheitsmerkmale.
Ich kenne mich in der Programmierung nicht aus und habe daher eben nur die Vorstellung davon, in wie fern das umsetzbar ist weiß ich leider nicht. Die Art und Weise sollte wie bei CSpace sein (nur etwas minimalistischer also die Desktop-Remoteverbindung nur Textbasiert und eventuell noch Datenübertragung. Die weiteren Sicherheitsfaktoren sollten folgende sein:
- Zertifikat was an einer gewissen Stelle bei User-X hinterlegt wird und der Benutzerauthentifizierung mit abgefragt wird
- Passwort was lokal (verschlüsselt) bei User-X hinterlegt wird und auch zur Benutzerauthentifizierung verwendet wird
- Hardware ID die durch ein separates Programm erstellt wird und danach in einer privaten Version für User-X integriert wird
- MD5 Wert der .exe die auch integriert wird und abgefragt wird, wenn der MD5 Wert der Anwendung nicht mit der integrierten übereinstimmt oder auch eines der anderen Sicherheitsmerkmale nicht stimmt, dann soll die Nutzung des Programmes verwehrt werden.
So soll eine sichere Nutzung für Kommunikationsgruppen entstehen, die einer geringeren Gefahr ausgesetzt werden von unautorisierten belästigt zu werden, sowie den Daten- und Informationsverkehr möglichst nicht abhören/mitschneiden zu lassen.
Pro Kommunikationsgruppe sollte es mind. folgende Menschen geben:
1x Admin (übernimmt die Zertifizierung für alle User der Kommunikationsgruppe)
1x User
Nun meine Frage dazu, ist dies technisch realisierbar?
Würde sich hier jemand oder mehrere Personen dazu bereit erklären, dies mit mir zusammen zu erstellen und verwalten?
Würde mich sehr freuen, wenn ich ein paar produktive Feedbacks bekommen könnte.
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Realisierbar ja.
Wird es jemand für dich realisieren? Wenn du nicht viel Geld in die Hand nimmst wohl kaum.
citc hat geschrieben:- MD5 Wert der .exe die auch integriert wird und abgefragt wird, wenn der MD5 Wert der Anwendung nicht mit der integrierten übereinstimmt oder auch eines der anderen Sicherheitsmerkmale nicht stimmt, dann soll die Nutzung des Programmes verwehrt werden.
Und was ist das Ziel dahinter? DRM in ganz billig?

Aber mal abgesehen davon, wie willst du den MD5 der Exe berechnen und dann in die Exe einbetten? In dem du eine Kollision erzeugst?

Wieso sollte ich so einem Programm vertrauen wenn es nicht einmal Opensource ist?

Da gefällt mir otr, ja schon mal besser.
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
Benutzeravatar
str1442
User
Beiträge: 520
Registriert: Samstag 31. Mai 2008, 21:13

Ist die Frage, ob es realisierbar ist, oder weißt du nur nicht, wo du anfangen sollst? Afaik werden solche Fragen meist nur wegen zweiterem gefragt.

Das mit dem MD5 in der Exe wird nicht funktionieren, da der MD5 der Exe sind bei hinzufügen des MD5's ja wieder ändert. Ansonsten brauchst du das genau wozu....? Klingt unschön.
citc
User
Beiträge: 14
Registriert: Dienstag 21. Oktober 2008, 08:51

Ja ich weiß nicht wo ich anfangen sollte, aber ich möchte auch nicht direkt anfangen.
Ich hatte nur eben die Idee, für dieses Programm, welches eben eine (nach meinen Gedankengängen) eine hohe Sicherheit in der Kommunikation bietet. Ich würde das Programm eben gern mit betreuen, bekannt machen und gestalten, aber von Programmierung habe ich kein Plan, Sprüche wie "Dann lern es doch,..." finde ich kontraproduktiv, da ich momentan keine Zeit habe eine Programmiersprache zu erlernen.

Dieses Programm sollte frei verfügbar und für jeden nutzbar sein, jedoch nicht für Zwecke der Gewinnmaximierung dienen.

Ok, aber gibt es da eine Möglichkeit bzgl. dem MD5 Wert, der die exe automatisch testet, ob der Wert der selbe ist?
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

citc hat geschrieben:Ja ich weiß nicht wo ich anfangen sollte, aber ich möchte auch nicht direkt anfangen.
Ich hatte nur eben die Idee, für dieses Programm, welches eben eine (nach meinen Gedankengängen) eine hohe Sicherheit in der Kommunikation bietet. Ich würde das Programm eben gern mit betreuen, bekannt machen und gestalten, aber von Programmierung habe ich kein Plan, Sprüche wie "Dann lern es doch,..." finde ich kontraproduktiv, da ich momentan keine Zeit habe eine Programmiersprache zu erlernen.
Da es sich hierbei primär um technische Dinge handelt, ist das dann wohl schlecht. ein Projekt zu initiieren, ohne selber coden zu können ist im Hobby-Bereich wohl wenig erfolgversprechend.
Dieses Programm sollte frei verfügbar und für jeden nutzbar sein, jedoch nicht für Zwecke der Gewinnmaximierung dienen.
Ich wette es gibt Open Source Lizenzen, die genau das verhindern. Ich gebe ja zu, dass Lizenzfragen wichtig sind, aber da es sich in diesem Bereich um nichts wirklich neues handelt stelle es unter die GPL o.ä. und sei damit glücklich. Welche Gewinnorientierte Vereinigung (nennen wir es mal "Firma" im folgenden ;) ) wird sich wohl genau Dein Projekt nehmen, um damit großen Reihbach zu machen (zumal es dann ja nur um Support ginge ...)
Ok, aber gibt es da eine Möglichkeit bzgl. dem MD5 Wert, der die exe automatisch testet, ob der Wert der selbe ist?
Man erstellt ihn einfach und vergleicht diesen dann mit einem vertrauenswürdigen Originalwert. Aber woher nimmt man letzteren? Wenn das automatisiert geschieht, würde ich in meiner Schadsoftware schon dafür sorgen, dass da nix auffällt ;-)

Wenn Du Dein Tool unter eine Open Source Lizenz stellst, gewinnst Du dadurch mehr Vertrauen, als durch krude MD5-Berechnungen an einer exe-Datei. Immerhin kann jeder in den Quellcode gucken und sehen, was da genau passiert.

Ich würde noch einmal das Sicherheitskonzept überdenken! Das beste Resultat dürfte das asymmetrische Verschlüsselung liefern - und dafür gibt es bei schon bei vielen IM-Clients Plugins. Ich nutzte GPG-Verschlüsselung mit einigen Kontakten bereits bei miranda und Kopete.

Einen Chat mit einem denzentralen Ansatz zu realisieren klingt interessant, ich wette aber auch dafür gibt es schon Ansätze oder gar fortgeschrittene Projekte. Vielleicht findest Du da ein Projekt, bei dem Du mitarbeiten kanns? Speziell bei "größeren" Sachen werden ja neben Programmierern auch Menschen mit anderen Fähigkeiten gesucht, z.B. Übersetzer, Leute für die Doku, Webpräsenz usw.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Ich habe mir gerade noch einmal Deine Anforderungen angeguckt und kann da meine Empfehlung nur noch mal wiederholen: Mache Dich erst einmal mit Sicherheitsfragen vertraut.

Ich nehme mal Deine Authentifizierung als Beispiel: Wenn ein PW (wie auch immer geartet) von einem User X beim selben User X auf der Platte liegt, so ist das eben nicht sicher ;-) Bin ich böser User Y am Rechner von User X, so tausche ich das PW einfach gegen eines aus, das ich kenne und melde mich dann damit an. Dein System merkt dann davon nix.
citc
User
Beiträge: 14
Registriert: Dienstag 21. Oktober 2008, 08:51

Also habe ich mich schlecht ausgedrückt oder du hast es falsch verstanden.

Es würde bei meiner Überlegung 4 Sicherheitsfaktoren geben:
-Zertifikat
-Passwort
-Hardware ID
-MD5 Wert

Die Lizenzgeschichte finde ich deswegen momentan uninteressant, weil es erstmal um die Theorie der Sicherheit geht.

Also es gibt mind. einen Kommunikationsgruppenadministrator(KGA) und mind. einen Kommunikationsgruppenteilnehmer(KGT).
Der KGA schickt KGT ein Programm, welches die Hardware ID ausließt, KGT übermittelt diese anschließend zum KGA. Der KGA intigriert diese in den Messenger, so das nur die Person mit dieser HW-ID diese Datei ausführen kann. Nun bekommt der KGT den fertig erstellten Messenger und führt diesen aus, dieser schaut nun ob alle 4 Sicherheitsmerkmale erfüllt sind, ist dies der Fall wird es gestartet, ist dies nicht der Fall wird der Messenger nicht gestartet.
Da es sich hierbei primär um technische Dinge handelt, ist das dann wohl schlecht. ein Projekt zu initiieren, ohne selber coden zu können ist im Hobby-Bereich wohl wenig erfolgversprechend.
Nein, da es ja hier Menschen gibt die coden können und vielleicht findet ja jemand die Idee toll und sagt mir ja los lass uns das zusammen machen. :)
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

citc hat geschrieben:
Da es sich hierbei primär um technische Dinge handelt, ist das dann wohl schlecht. ein Projekt zu initiieren, ohne selber coden zu können ist im Hobby-Bereich wohl wenig erfolgversprechend.
Nein, da es ja hier Menschen gibt die coden können und vielleicht findet ja jemand die Idee toll und sagt mir ja los lass uns das zusammen machen. :)
So wie ich das sehe haben die meisten Leute eine grosse Queue mit eigenen Ideen und Dingen die sie gerne mal Programmieren/Lernen würden. Das ist bei Anfängern vermutlich nicht der Fall, jedoch ist ein Anfänger (und nicht nur der ;)) mit so einem Projekt ziemlich überfordert.

Aber vielleicht findest du ja wen der deine Idee ganz oben in seiner Queue einfügt ;)
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
burli
User
Beiträge: 1156
Registriert: Dienstag 9. März 2004, 18:22

Geht es dir darum einen sicheren Messenger zu haben oder geht es dir um's Programmieren?

Im ersten Fall kannst du dir mal das Jabber Protokoll (bzw XMMP) anschauen. Die Kommunikation wird standardmäßig mit TSL verschlüsselt und optional ist eine Peer2Peer Kommunikation mit GnuPG Verschlüsselung möglich. IMHO bester Client dafür ist Gajim. Der ist in Python programmiert und nutzt PyGTK und ist auch für Windows verfügbar.
citc
User
Beiträge: 14
Registriert: Dienstag 21. Oktober 2008, 08:51

Aber vielleicht findest du ja wen der deine Idee ganz oben in seiner Queue einfügt
Möchtest du denn nicht? :lol:
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

veers hat geschrieben:So wie ich das sehe haben die meisten Leute eine grosse Queue mit eigenen Ideen und Dingen die sie gerne mal Programmieren/Lernen würden. Das ist bei Anfängern vermutlich nicht der Fall, jedoch ist ein Anfänger (und nicht nur der ;)) mit so einem Projekt ziemlich überfordert.
Und Nicht-Anfänger haben sowieso Jabber/XMPP, da interessiert es sie auch nicht so sehr, denn für Client-Server-Sicherheit gibt es TLS (genauer wird da STARTTLS verwendet), für End-to-End-Sicherheit OTR oder OpenPGP.

Nur unterstützt Gajim bisher kein OTR. War eigentlich für 0.12 geplant und einige Zeit sogar aufgenommen, aber wurde inzwischen wieder entfernt. Siehe hier für aktuelle Infos.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
citc
User
Beiträge: 14
Registriert: Dienstag 21. Oktober 2008, 08:51

Ja aber Jabber und co sind ja keine Client 2 Client Messenger, und das war eben meine ambition, einen C2C Messenger zu schaffen/nutzen, der ziehmlich save ist.

Weil man ja nicht weiß, ob die Server loggen,... .
Zuletzt geändert von citc am Dienstag 21. Oktober 2008, 13:38, insgesamt 1-mal geändert.
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

citc hat geschrieben:Ja aber Jabber und co sind ja keine Client 2 Client Messenger, und das war eben meine ambition, einen C2C Messenger zu schaffen/nutzen, der ziehmlich save ist.
Es gibt gute Gründe warum diese Systeme ein Client/Server Model verwenden. Aber du kannst natürlich einen Jabber Server und einen Client zusammen Stecken, und DNS durch KAD o.ä. auswechseln, dann hast du auch ein dezentrales P2P Netzwerk. Den Vorteil davon sehe ich jedoch nicht.
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
citc
User
Beiträge: 14
Registriert: Dienstag 21. Oktober 2008, 08:51

Safe.
:oops:

Was sind die Gründe für die Nutzung des Client/Server Model?
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

citc hat geschrieben: Weil man ja nicht weiß, ob die Server loggen,... .
Dafür gibt es ja gerade Ende-zu-Ende-Verschlüsselung! Und selbst wenn Du eine C2C-Verbindung etabliert hast, weißt Du ja nicht, über welche Bones Dein Traffic läuft; da kann ja auch noch jeder mitschneiden!
citc
User
Beiträge: 14
Registriert: Dienstag 21. Oktober 2008, 08:51

Deswegen ja auch noch die C2C-Verbindung mit einer Ende-zu-Ende-Verschlüsselung versehen und es ist doch serverseitig leichter zu loggen, als die C2C Verbindung oder?
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

citc hat geschrieben:... und es ist doch serverseitig leichter zu loggen, als die C2C Verbindung oder?
naja, ok, der Server Betreiber bekommt so alles frei Haus geliefert, sicher. Aber grundsätzlich kann eine Verbindung dennoch überall mitgeschnitten werden ;-)
burli
User
Beiträge: 1156
Registriert: Dienstag 9. März 2004, 18:22

Mal abgesehen davon das das ein wenig paranoid ist: wie wäre es wenn du einen eigenen Jabber Server aufsetzt? Dann weißt du was geloggt wird
citc
User
Beiträge: 14
Registriert: Dienstag 21. Oktober 2008, 08:51

Das leider schon, aber ich würde gern die Kommunikation in Zeiten der ausufernden Kontrolle möglich sicher von statten gehen lassen. :)
Antworten