Du bist nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: DeveloperTalk. Falls dies dein erster Besuch auf dieser Seite ist, lies bitte die Hilfe durch. Dort wird dir die Bedienung dieser Seite näher erläutert. Darüber hinaus solltest du dich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutze das Registrierungsformular, um dich zu registrieren oder informiere dich ausführlich über den Registrierungsvorgang. Falls du dich bereits zu einem früheren Zeitpunkt registriert hast, kannst du dich hier anmelden.

Erik

Profi

  • »Erik« ist der Autor dieses Themas

Beiträge: 1 274

Registrierungsdatum: 22.06.2011

Wohnort: Deutschland ;)

Danksagungen: 307

  • Private Nachricht senden

1

16.10.2012, 00:32

verschlüsselte Packete signieren

Hey Leute!

Folgendes: Ich brauche eine verschlüsselte Verbundung um Daten zu übertragen, zum Einen für eine API, über die man u.a. von einer Android App aus Telemetriedaten anfordern kann, aber auch Stuerungsbefehle senden können soll, zum anderen um größere Datenmengen zwischen einem Server-Daemon und einem Desktop-Client hin und her zu schicken... Deshalb dachte ich, ich verwende eine Hybridverschlüsselung, also eine performante symmetrische Verschlüsselung für den Content und RSA-Wrapping für den Schlüssel der symmetrischen Verschlüsselung.

Mal angenommen man würde jetzt mit nem MITM Angriff oder so schaffen, in eine authorisierte Verbindung zum Server zu kommen, dann könnte man ja, vorrausgesetzt das Protokoll ist irgendwie bekannt, Packete mit Hilfe des public keys des Servers an den Server schicken, aber man könnte zB die Antwort eines Requests nicht entschlüsseln, die brints einem also nicht, insofern funktioniert die asymmetrische Verschlüsselung ja... Aber wenn man jetzt Stuerungsbefehle schickt ist das ja irgendwie etwas suboptimal... Also muss ich irgendwie sichersetellen, dass der Absender immernoch der richtige ist, der, der sich authorisiert hat...

Also meine Frage, wie soll ich die Datenpackete signieren?

Meine erste Idee war, dass man als Server einfach eine Art Überprüfungspacket zurückschickt, mit dem der Cleint etwas machen muss, zum Beispiel eine Zeichenkette umkehren oder so, wenn der Cleint das machen kann weiß man ja, dass der seinen private key weiß...
Bin mir aber nicht sicher, ob das so eine elegante Methode ist... :D Gibts da irgendeinen konventionellen Weg, sowas zu machen?

LG, Erik.
Beste Webite im Internet ( ͡° ͜ʖ ͡°)
xinra.de

Erik

Profi

  • »Erik« ist der Autor dieses Themas

Beiträge: 1 274

Registrierungsdatum: 22.06.2011

Wohnort: Deutschland ;)

Danksagungen: 307

  • Private Nachricht senden

2

16.10.2012, 00:54

ok, danke liro für den link: http://de.wikipedia.org/wiki/RSA-Kryptosystem#Signieren_von_Nachrichten
hätte auch selbst erstmal gucken können, aber ich finds eig net schlecht, mit leuten über deren erfahrungen zu diskutieren... aber die methode von wikipedia scheint echt gut zu sein...
ich steig da nur noch net so ganz durch. K ist ja eig der klartext, aber in dem ersten fall ist K doch die nachricht, die schon mit dem public key den empfängers verschlüsselt wurde, oder?
Beste Webite im Internet ( ͡° ͜ʖ ͡°)
xinra.de

liro

Fortgeschrittener

Beiträge: 180

Danksagungen: 36

  • Private Nachricht senden

3

16.10.2012, 14:56

Ja, wenn du die Nachricht mit dem pubKey des Empfängers verschlüsselst, dann weiß dieser aber nicht von wem die Nachricht stammte. Also fügt der Sender noch seine Signatur an die Nachricht. zusätzlich wird damit auch sicher gestellt, dass die Nachricht bei der Übertragung nicht verfälscht worden ist.

Erik

Profi

  • »Erik« ist der Autor dieses Themas

Beiträge: 1 274

Registrierungsdatum: 22.06.2011

Wohnort: Deutschland ;)

Danksagungen: 307

  • Private Nachricht senden

4

16.10.2012, 15:01

k.. ich werd dann wahrscheinlich AES+RSA benutzen... RSA mit 2k bit und padding sollte einigermaßen sicher sein, oder? :D
Beste Webite im Internet ( ͡° ͜ʖ ͡°)
xinra.de

Johannes S.

Fortgeschrittener

Beiträge: 444

Registrierungsdatum: 24.06.2011

Wohnort: Lychen

Danksagungen: 71

  • Private Nachricht senden

5

17.10.2012, 18:32

macht man das nicht in der Regel so, dass der eine Kommunikationspartner einen Key mit dem public Key des anderen verschlüsselt und an dern Partner sendet. Nun haben beide diesen (vieleicht auch neu generierten) Schlüssel und können kommunizieren ohne das jemand mithören oder aktiv mit wirken kann, da nur Packete die entsprechend verschlüsselt sind, akzeptiert werden.

Bin mir jetzt nicht sicher da ich mich nie wirklich mit bescheftigt habe, aber so habe ich das mal verstanden.
Signatur ?

Erik

Profi

  • »Erik« ist der Autor dieses Themas

Beiträge: 1 274

Registrierungsdatum: 22.06.2011

Wohnort: Deutschland ;)

Danksagungen: 307

  • Private Nachricht senden

6

20.10.2012, 00:15

also du meinst, sobald man den schlüssel für die symmetrische verschlüsselung ausgetauscht hat, der ja für die session gleich bleibt, brauch man die packete garnicht mehr signieren, da ja quasi beide nur private key benutzen? würde eigentlich stimmen...
Beste Webite im Internet ( ͡° ͜ʖ ͡°)
xinra.de

liro

Fortgeschrittener

Beiträge: 180

Danksagungen: 36

  • Private Nachricht senden

7

20.10.2012, 00:38

aber so kannst du dann nicht mehr nachvollziehen, ob die nachricht beim übertragen verändert worden ist

Erik

Profi

  • »Erik« ist der Autor dieses Themas

Beiträge: 1 274

Registrierungsdatum: 22.06.2011

Wohnort: Deutschland ;)

Danksagungen: 307

  • Private Nachricht senden

8

20.10.2012, 03:38

naja... also wenn ich dass entschlüsseln kann und die daten dann valide sind kann ich mir ziemlich sicher sein... wahrscheinlich verschicke ich serialisierte objekte, wenn ich die deseriealisieren kann, sind die schonmal nicht beschädigt... und kompromittiert können die eig auch net sein, oder? ok, dafür könnte ich sie eig doch signieren, weil dann kann ich 2k bit rsa keys nehmen, aber der symmetrische key muss vllt nicht so lang sein... wenn die daten dann kompromittiert werden, kann man die zwar lesen, aber man kann keine gefälschten authorisierten daten an den server schicken...
Beste Webite im Internet ( ͡° ͜ʖ ͡°)
xinra.de

liro

Fortgeschrittener

Beiträge: 180

Danksagungen: 36

  • Private Nachricht senden

9

20.10.2012, 09:19

Ja, du kannst auch ne HashSumme über das Paket bilden und dieses dem Paket anhängen und beides dann verschlüsseln. Das ganze wäre sogar so was wie ne Signatur, nur dass hier das gesamte Paket verschlüsselt wird und nicht nur die die Signatur selbst.

Erik

Profi

  • »Erik« ist der Autor dieses Themas

Beiträge: 1 274

Registrierungsdatum: 22.06.2011

Wohnort: Deutschland ;)

Danksagungen: 307

  • Private Nachricht senden

10

20.10.2012, 11:52

nee die signatur müsste ich wenn dann eig RSA verschlüsseln...
Beste Webite im Internet ( ͡° ͜ʖ ͡°)
xinra.de

liro

Fortgeschrittener

Beiträge: 180

Danksagungen: 36

  • Private Nachricht senden

11

20.10.2012, 19:21

nee die signatur müsste ich wenn dann eig RSA verschlüsseln...
Es ist doch egal womit du das verschlüsselst, solange es mit RSA abgesichert ist.
Aber ich glaube ich hab deinen Post nicht verstanden.

Erik

Profi

  • »Erik« ist der Autor dieses Themas

Beiträge: 1 274

Registrierungsdatum: 22.06.2011

Wohnort: Deutschland ;)

Danksagungen: 307

  • Private Nachricht senden

12

21.10.2012, 00:18

basiert die signatur nicht gerade auf der asymmetrischen verschlüsselung?

wie ist das eigentlich, wird die symmetrische verschlüsselung (wahrscheinlich AES) viel langsamer mit längeren schlüsseln, bzw. ist diese überhaupt unsicherer als RSA, oder ist da nur das problem mit der schlüsselübergabe?
weil ich brauch RSA dann ja eig nur, um den schlüssel zu übergeben, oder? schon die auhtifizierung und aller weiterer traffic könnte dann symmetrisch verschlüsselt werden und auch die signatur (also den hash) müsste man garnicht nochmal verschlüsseln wie bei RSA, da es ja quasi nur private schlüssel gibt, oder?

aso und sollte man eine session, die in meinem fall sehr lang werden kann, irgendwie zeitlich begrenzen, um sie sicherer zu machen?
Beste Webite im Internet ( ͡° ͜ʖ ͡°)
xinra.de

Johannes S.

Fortgeschrittener

Beiträge: 444

Registrierungsdatum: 24.06.2011

Wohnort: Lychen

Danksagungen: 71

  • Private Nachricht senden

13

21.10.2012, 20:37

Eine zeitliche Begrenzung kann denke ich mal nicht schaden. Man kann das ja so machen, dass der automatisch eine neue Session mit einem neuen Schlüssel öffnet. So dass alles Funktionen ohne beeinträchtigung weiter funktionieren.

Und ja, so sollte man das machen können. Danach brauchst du eigendlich kein RSA mehr.
Signatur ?

Erik

Profi

  • »Erik« ist der Autor dieses Themas

Beiträge: 1 274

Registrierungsdatum: 22.06.2011

Wohnort: Deutschland ;)

Danksagungen: 307

  • Private Nachricht senden

14

21.10.2012, 21:10

naja bei ner neuen session klar, deswegen ist das ja der session key :D aber vllt sollte man ne session nach... kp vllt 24 stunden oder so abbrechen und ne neue starten...

und zum zweiten, bei dem allerersten request wo man dann ggf. den key austauscht, übergebe ich glaube ich gleich die anmeldedaten... dann ist das sehr viel leichter mit der ddos protection, man kricht halt ne kurze sperre, wenn die daten falsch sind...
Beste Webite im Internet ( ͡° ͜ʖ ͡°)
xinra.de

Ähnliche Themen

Verwendete Tags

RSA, verschlüsselt, verschlüsselung