Ich versuche die Client/Server-Kommunikation für eine Anwendung über libsodium einzurichten. Bis jetzt plane ich, die Anwendung mit einem fest codierten öffentlichen Schlüssel zu verteilen. Der Server behält seinen geheimen Schlüssel, ohne ihn jemals zu teilen. Dadurch sollten Benutzer Nachrichten verschlüsseln und an den Server senden können, wo der geheime Schlüssel Nachrichten entschlüsselt.Privater Schlüssel kompromittiert, wie neue öffentliche Schlüssel verteilt werden? Client-Server-Modell über asymmetrische Schlüsselverschlüsselung
Für den Fall, dass der geheime Schlüssel auf dem Server jemals kompromittiert wird (ich bin nicht sicher, wie, aber nur für den Fall) wie könnte man neue öffentliche Schlüssel an alle Clients verteilen? Gibt es eine Möglichkeit, einen neuen geheimen Schlüssel zu generieren, ohne dass neue öffentliche Schlüssel verteilt werden müssen? Etwas wie:
make_new_secret(secret_buffer, previous_public);
Ich hatte gehofft, für eine sehr einfache Lösung, die komplizierten Algorithmen nicht für sicher Austeilen neuen öffentlichen Schlüssel erfordern würde. Wenn Sie einen neuen privaten Schlüssel erstellen und gleichzeitig einen neuen öffentlichen Schlüssel erstellen müssen, welche Algorithmen können verwendet werden, um öffentliche Schlüssel sicher vom Server an die Clients zu verteilen?
Zusatzinfo (fühlen Sie sich frei überspringen):
Wir lesen here wo Glenn Fiedler (Autor von libyojimbo, die libsodium verwendet) spricht über die Idee der „gerade einen neuen privaten Schlüssel rollen“ .
Wenn es eine Möglichkeit gibt, alte öffentliche Schlüssel wiederzuverwenden und einen neuen privaten Schlüssel mit libsodium zu erstellen, würde ich gerne darüber lesen. Ich habe die Dokumente durchgesehen und muss noch keine Funktionen sehen, um dies zu tun. Daher befürchte ich, dass ich mich in kompliziertere Algorithmen zur sicheren Verteilung neuer öffentlicher Schlüssel vertiefen muss.
Ich habe Diffie Hellman ausgecheckt, aber es scheint, dass beide Parteien mit einer gemeinsamen "Farbe" beginnen müssen. Also nehme ich an, dass meine Frage darin besteht, zu einer neuen vereinbarten Startfarbe zu kommen.
Okay, es ist gut zu wissen, dass dies ein wirklich herausforderndes Thema ist. Mein Anwendungsfall ist ein Spiel, das über Steam veröffentlicht wurde. In diesem Fall ist es eigentlich kein Problem, neue Binärdateien an Benutzer zu verteilen. Das macht also Sinn! In meinem Fall richte ich einen Broker-Server für NAT-Puncthrough ein, wie einen STUN-Server, aber mit einem benutzerdefinierten Protokoll. – Cecil
Um es klar zu sagen: Ich versuche nur, den STUN-ähnlichen Server selbst zu sichern und habe die Verschlüsselung gelesen. Wie auch immer, danke für die Antwort! – Cecil