Hallo Zusammen,
ich war schon lange nicht mehr aktiv ....
Ich habe vor eine Whatsapp alternative zu programmieren (Opensource). Das ganze erstmals auf Android und nachher später nochmals neu zu programmieren fürs iOS.
Ich war lange auf der Suche nach einem "verschlüsselten" Whatsapp habe jedoch nie etwas gefunden was opensource ist.
Ich brauche eure Hilfe! Ich nehme jede Hilfe an egal ob Ihr meine geschätzten 193489 Grammatikfehler ausbessert oder mir bei Sicherheitsfragen (Stichwort: insecure by Design) helft....
Mein Ziel:
1. Schritt: Text only
PGP als verschlüsselungstechnick
SHA512 als Checksumme
Android 4.x als Umgebung
2. Schritt: Dateien
PGP schlüsselaustausch, AES oder ähnliches für die Datei selbst....
SHA512 Checksumme
3. Schritt: "Neue" Funktionen
- Empfangsbestätigung
- Time über NTP Server voll synchronisiert (wann abgeschickt, wann empfangen)
- Anzeigebilder
- ... weiteres das mir gerade nicht einfällt
4. Schritt: Video und Audio -übertragung ("telefonieren").
- Übertragung von Video und Audio als bitsream bzw. als solcher verschlüsselt (müsste mir mal redphone anschauen wie die das gelöst haben)
Sollte es so etwas schon geben teilt mir das bitte mit
Was ich bereits habe:
-2 ESX-Server (Entwicklungsumgebung etc.)
-2 Android Geräte für den "real" Test
-15 TB an Speicher für Daten
-Meine Hoffnung das ich nicht nach zwei Minuten scheitere...
Konzeptionell würde eine Nachrichtenversendung so ausschauen:
Original Text->ZIS verschlüsselt anhand vorhandenem PGP Key *siehe INITPROC->ZIS sendet an Server->Server sendet an ZIS empfänger-> Empfänger entschlüsselt PGP Nachricht
*InitProc-> für JEDEN User nötig....
PGP Key wird erstellt> Public Key auf Server...-> KontaktA vergleicht seinen Key mit dem auf dem Server -> KontaktA sendet dem neuen KontaktB das der Server X okay ist -> KontaktA lässt nun von KontaktB über den definierten Server Nachrichten zu.
Dadurch erhält der Server immer nur den PublicKey und die Nachricht -> Mithören unmöglich.
Das abfragen des Publickey könnte man auch auf separaten Servern machen... Bzw. auf bestehenden. Dann kann jeder seinen PublicKey mit dem auf dem Server vergleichen.
Das Registrieren auf dem Nachrichtenserver da muss ich mir noch etwas einfallen lassen.... Die Identität überprüfe ich einfach damit das ich ein Handshake mittels PGP mache und somit weiss wer der Rechtmässige Empfänger ist... Sonst könnte ja jeder über eine fake ID die Nachrichten abholen.....
Nicht änderbar:
Folgende dinge werden sich nie ändern vorher stampfe ich das Projekt ein:
- Opensource (ich liefere jeden Quelltext denn ich verwende!)
- Keine Werbung (Nein keine Werbung! Wenn ich jemals zu viele Nutzer habe und ich den Server nicht mehr bezahlen kann dann wird der halt abgestellt... )
- Kommerzielle Nutzung durch Spenden Gelder möglich... Als Beispiel: Firma X möchte eigenen Server betreiben -> jährlich 50 teuronen damit die Kosten für Privatuser gedeckt sind --> SÄMTLICHES Geld kommt dem Projekt zugute
Grüsse
ZA
edit:
Ah mir ist eingefallen wie ich sichergehe das der Key gültig ist (falls man das Checken möchte^^)
Publickey und ein timestamp werden mittels Hash als ZIS-Nachricht übertragen an KontaktB. Das kommt als verified zurück per SMS an KontaktA. Darauf schickt KontaktB eine ZIS-Nachricht das er dies auch angefordert hat (akzeptiert). Nun noch eine ZIS-Nachricht von KontaktA an KontaktB damit der Handhsake abgeschlossen ist.
Damit kann sichergestellt werden das die Nachricht angefordert und für beide als gültig befunden wurde....
ich war schon lange nicht mehr aktiv ....
Ich habe vor eine Whatsapp alternative zu programmieren (Opensource). Das ganze erstmals auf Android und nachher später nochmals neu zu programmieren fürs iOS.
Ich war lange auf der Suche nach einem "verschlüsselten" Whatsapp habe jedoch nie etwas gefunden was opensource ist.
Ich brauche eure Hilfe! Ich nehme jede Hilfe an egal ob Ihr meine geschätzten 193489 Grammatikfehler ausbessert oder mir bei Sicherheitsfragen (Stichwort: insecure by Design) helft....
Mein Ziel:
1. Schritt: Text only
PGP als verschlüsselungstechnick
SHA512 als Checksumme
Android 4.x als Umgebung
2. Schritt: Dateien
PGP schlüsselaustausch, AES oder ähnliches für die Datei selbst....
SHA512 Checksumme
3. Schritt: "Neue" Funktionen
- Empfangsbestätigung
- Time über NTP Server voll synchronisiert (wann abgeschickt, wann empfangen)
- Anzeigebilder
- ... weiteres das mir gerade nicht einfällt
4. Schritt: Video und Audio -übertragung ("telefonieren").
- Übertragung von Video und Audio als bitsream bzw. als solcher verschlüsselt (müsste mir mal redphone anschauen wie die das gelöst haben)
Sollte es so etwas schon geben teilt mir das bitte mit
Was ich bereits habe:
-2 ESX-Server (Entwicklungsumgebung etc.)
-2 Android Geräte für den "real" Test
-15 TB an Speicher für Daten
-Meine Hoffnung das ich nicht nach zwei Minuten scheitere...
Konzeptionell würde eine Nachrichtenversendung so ausschauen:
Original Text->ZIS verschlüsselt anhand vorhandenem PGP Key *siehe INITPROC->ZIS sendet an Server->Server sendet an ZIS empfänger-> Empfänger entschlüsselt PGP Nachricht
*InitProc-> für JEDEN User nötig....
PGP Key wird erstellt> Public Key auf Server...-> KontaktA vergleicht seinen Key mit dem auf dem Server -> KontaktA sendet dem neuen KontaktB das der Server X okay ist -> KontaktA lässt nun von KontaktB über den definierten Server Nachrichten zu.
Dadurch erhält der Server immer nur den PublicKey und die Nachricht -> Mithören unmöglich.
Das abfragen des Publickey könnte man auch auf separaten Servern machen... Bzw. auf bestehenden. Dann kann jeder seinen PublicKey mit dem auf dem Server vergleichen.
Das Registrieren auf dem Nachrichtenserver da muss ich mir noch etwas einfallen lassen.... Die Identität überprüfe ich einfach damit das ich ein Handshake mittels PGP mache und somit weiss wer der Rechtmässige Empfänger ist... Sonst könnte ja jeder über eine fake ID die Nachrichten abholen.....
Nicht änderbar:
Folgende dinge werden sich nie ändern vorher stampfe ich das Projekt ein:
- Opensource (ich liefere jeden Quelltext denn ich verwende!)
- Keine Werbung (Nein keine Werbung! Wenn ich jemals zu viele Nutzer habe und ich den Server nicht mehr bezahlen kann dann wird der halt abgestellt... )
- Kommerzielle Nutzung durch Spenden Gelder möglich... Als Beispiel: Firma X möchte eigenen Server betreiben -> jährlich 50 teuronen damit die Kosten für Privatuser gedeckt sind --> SÄMTLICHES Geld kommt dem Projekt zugute
Grüsse
ZA
edit:
Ah mir ist eingefallen wie ich sichergehe das der Key gültig ist (falls man das Checken möchte^^)
Publickey und ein timestamp werden mittels Hash als ZIS-Nachricht übertragen an KontaktB. Das kommt als verified zurück per SMS an KontaktA. Darauf schickt KontaktB eine ZIS-Nachricht das er dies auch angefordert hat (akzeptiert). Nun noch eine ZIS-Nachricht von KontaktA an KontaktB damit der Handhsake abgeschlossen ist.
Damit kann sichergestellt werden das die Nachricht angefordert und für beide als gültig befunden wurde....
Zuletzt bearbeitet: