Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.net  
   

Die mobilen Seiten von c++.net:
https://m.c-plusplus.net

  
C++ Forum :: Rund um die Programmierung ::  Punkt-zu-Punkt Verschlüsselung     Zeige alle Beiträge auf einer Seite Auf Beitrag antworten
Autor Nachricht
Bennisen
Mitglied

Benutzerprofil
Anmeldungsdatum: 25.12.2013
Beiträge: 181
Beitrag Bennisen Mitglied 17:16:56 10.01.2017   Titel:   Punkt-zu-Punkt Verschlüsselung            Zitieren

Gerade bin ich dabei mir ein kleines Programm zu entwickeln, mit dem ich Nachrichten von einem Client, über einen Server, zu einen anderem Client schicken kann. Im Grunde ist das auch nicht so schwer, aber ich dachte mir ich probier mal eine Punkt-zu-Punkt Verschlüsselung aus. So dass jedes Gespräch seinen eigenen Key hat.

Nur verstehe ich nicht ganz, wie das genau funktioniert. Am liebsten wäre mir, dass jeder Client den Key auf dem Client selber speichert. Im Prinzip können dann Gespräche zwischen 2 Clients nur mit diesem Key entschlüsselt werden. Aber ich stehe dann vor dem Problem, dass ein Client dann nicht den Computer wechseln kann und sich von woanders aus einloggt. Da er den Key nicht hat.

Dann dachte ich, man könnte den Key ja auf dem Server speichern, aber das will ich eigentlich nicht. Ich glaube das steckt auch nicht hinter dem Sinn des Konzepts.

Müsste man dann theoretisch, wenn der Client sich von woanders einloggt, den Key vom anderen Client abfragen? Damit die Nachrichten wieder entschlüsselt werden können?

Oder wie genau funktioniert das mit der Punkt-zu-Punkt Verschlüsselung?


Zuletzt bearbeitet von Bennisen am 17:17:56 10.01.2017, insgesamt 1-mal bearbeitet
Artchi
Autor

Benutzerprofil
Anmeldungsdatum: 16.03.2002
Beiträge: 9012
Beitrag Artchi Autor 17:27:19 10.01.2017   Titel:              Zitieren

Dein Problem wurde schon vor Jahren gelöst: nennt sich Asymetrische Verschlüsselung. Du denkst aber aktuell noch in symetrischer Verschlüsselung, die aber nur für eine Person sinnvoll ist. Sobald zwei Personen/Parteien im Spiel sind, hilft das einem nicht weiter.

https://de.wikipedia.org/wiki/Asymmetrisches_Kryptosystem

Wird auch bei OpenPGP und auch bei https benutzt.

https://de.wikipedia.org/wiki/OpenPGP


Zuletzt bearbeitet von Artchi am 17:28:27 10.01.2017, insgesamt 1-mal bearbeitet
Bennisen
Mitglied

Benutzerprofil
Anmeldungsdatum: 25.12.2013
Beiträge: 181
Beitrag Bennisen Mitglied 17:36:34 10.01.2017   Titel:              Zitieren

Die asymmetrische Verschlüsselung war mir schon bekannt. Dann müsste jeder Client eigentlich nur einen privaten Schlüssel haben, da, soweit ich weiß aus dem privatem auch der öffentliche generiert werden kann.

Ist halt noch die Frage, wo dieser private Schlüssel dann genau liegt? Bei einer Client zu Client Kommunikation wäre es ja sinvoll, diesen auch auf dem Client liegen zu haben. Aber wie gesagt, was ist wenn der Client seinen Rechner wechselt?
Marc-O
Mitglied

Benutzerprofil
Anmeldungsdatum: 02.04.2008
Beiträge: 317
Beitrag Marc-O Mitglied 18:02:32 10.01.2017   Titel:              Zitieren

Hallo

Wieso sollte er wenn er den Client wechselt nicht einen neuen Schlüssel haben, mit denn dann die Verbindung aufgebaut wird. Punkt-zu-Punkt Verschlüsselung bedeutet ja nur, dass die Verschlüsselung zwischen den Clients ausgehandelt wird, aber nicht das jeder User den gleichen Schlüssel besitzen muss. Außer du willst ihn über den Schlüssel hinweg authentifizieren. Dann muss aber der User selbst dafür verantwortlich sein, dass er seinen Schlüssel von Rechner A nach Rechner B transportiert.

So ist es ja z.B. auch bei SSH. Wenn du dort mit Schlüsseln arbeitest, dann legst du dir entweder für jeden Rechner auf dem Arbeitest einen eigenen an, oder du legst eine Kopie deines privaten Schlüssel auf jeden Rechner ab.

Gruß Marc-O

_________________
heute code ich, morgen debug ich und übermorgen cast ich die Königin auf int
MinGW64 (Windows) / gcc (Linux)
Alles was so anfällt blog
KRÜPTO CHEF Depplef Ganzd
Unregistrierter




Beitrag KRÜPTO CHEF Depplef Ganzd Unregistrierter 18:57:06 10.01.2017   Titel:              Zitieren

Mathematischer Beweis der KRÜPTO Sicherheit!

Bekannt ist:
1. Eine One Time Pad Verschlüsselung ist unknackbar sicher
2. Das erste Bit der Eingabe Daten wird mit One Time Pad verschlüsselt

Folgerung: Das erste Bit ist unknackbar verschlüsselt!!!

Das heisst: der Zustand des Ausgabe Bits hat nichts mit dem des
Orginal Bits zu tun, er ist nicht von reinem Zufall zu unter scheiden.

Nun wird das nächste Eingangs Bit mit dem vollkommen zufälligen und
unbekannten vor herigen Orginal Eingangs Bit verschlüsselt!

Folgerung:Das zweite Bit ist auch unknackbar verschlüsselt!

Man kann nun sehr gut sehen, wenn man etwas mathematische Kenntnisse
besitzt- der Fach Mann spricht hier von Induktion-, das jedes darauf
folgende Bit genauso unknackbar ist !!!!!!1!1!1
Bennisen
Mitglied

Benutzerprofil
Anmeldungsdatum: 25.12.2013
Beiträge: 181
Beitrag Bennisen Mitglied 07:08:35 11.01.2017   Titel:              Zitieren

Ich bin mir noch nicht sicher, aber ich werde es wohl so machen. Jemand startet ein Gespräch und generiert einen Private Key, der bei ihm gespeichert wird. Danach wird ein Public Key erzeugt und zum Empfänger gesendet. Dieser speichert den Key bei sich auf dem Rechner.

Die Lösung gefällt mir an sich gut, aber bleibt dennoch das Problem, dass man dann an den Rechner gebunden ist. Es sei denn man transferiert die Keys auf einen neuen Rechner. Dafür könnte man ja eine Funktion ins Programm einbauen um die Keys zu exportieren und importieren.
krümelkacker
Mitglied

Benutzerprofil
Anmeldungsdatum: 10.08.2010
Beiträge: 2686
Beitrag krümelkacker Mitglied 13:26:24 11.01.2017   Titel:   Re: Punkt-zu-Punkt Verschlüsselung            Zitieren

Hallo Bennisen,

es gibt da schon verschiedene Ansätze mit unterschiedlichen Vor- und Nachteilen.

Der heiße Scheiß für "mobile messaging"-ähnliche Anwendungen ist aktuell das Signal Protokoll, was auch inzwischen bei WhatsApp im Einsatz ist. Schau Dir mal im Wikipedia-Artikel den Abschnitt "Eigenschaften" an. Das ist schon echt nett. Nachteil ist allerdings, dass sich beide Seiten einen Schlüssel merken müssen, der sich regelmäßig ändert. Das macht die Nutzung mit mehreren Clients/Geräten schwierig, weil man einen "Zustand" einer "Chat-Verbindung" irgendwie zwischen den Geräten sicher synchronisieren müsste.

Wenn Du stattdessen in Richtung OpenPGP gehst, bist du einen "Zustand" einer "Chat-Verbindung" los. OpenPGP ist quasi zustandslos. Du brauchst natürlich die gleichen Schlüssel auf allen Clients aber diese sind langlebig und ändern sich nicht ständig. Damit verlierst Du aber einige der guten Eigenschaften, die das Signal Protokoll so interessant machen: "forward security" und "plausible deniability" (oder die Authentizität von Nachrichten statt forward security).

Heutzutage, mit der Datensammelwut von ominösen Einrichtungen, ist forward security sehr interessant. Wenn ein Gerät/Client kompromitiert wird, willst du nicht, dass damit auch alle vergangenen verschlüsselten Nachrichten, die vielleicht aufgezeichnet wurden, entschlüsselbar werden. Wenn einem das wichtig ist, müsste man natürlich auch regelmäßig Chats auf dem Gerät/Client löschen. Aber die Schlüssel, die ein Signal/WhatsApp-Client speichert, reichen nicht dazu, vergangene Chiffrate zu entschlüsseln. Das ist ziemlich cool.


Zuletzt bearbeitet von krümelkacker am 13:27:01 11.01.2017, insgesamt 1-mal bearbeitet
C++ Forum :: Rund um die Programmierung ::  Punkt-zu-Punkt Verschlüsselung   Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.net ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info und www.c-plusplus.net enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.