Fragensteller
TCP IP Nachricht verschlüsseln

Frage
-
Hallo zusammen,
ich habe mir ein höheres Protokoll geschrieben, welches so aussieht:
[Header mit Größe] [Nachricht]
Nun möchte ich diese Nachricht verschlüsseln. Mein Problem, wenn ich den Header (Also das gesamte Paket) verschlüssle, stimmt natürlich die Größe nicht mehr überein (Header vorher z.b. 8 Byte, nach verschlüsseln 13 Byte). Es ist korrekt und die Regel, den Header unverschlüsselt zu lassen und nur die Nachricht zu verschlüsseln?
Ich danke für eure Erfahrungen!
P.S. Den SSLStream kenne ich, aber ich möchte eine andere Verschlüsselung nutzen. Also bitte keine Hinweise auf den SSLStream. Dankeschön :-)
Gruß, Florian
FLOGERSOFT.de - Top Apps, wie z.B. 'Die Taschenlampe' oder ganz neu dabei: 'LiveClock' die Echtzeituhr für ihre Windows Phone Live-Kachel - mit Wettervorhersage!
Alle Antworten
-
Hi Florian,
im TCP-Header sollte die Länge der verschlüsselten Nachricht stehen also in Deinem Beispiel 13 Byte wenn nur die Nachricht verschlüsselt wird. Der Empfänger kennt die wirkliche Nachricht erst nach dem Entschlüsseln und dadurch auch die wirkliche Länge. Oder handelt sich bei dem Header gar nicht um den TCP-Header sondern um den Header Deines eigenen Protokolls und Du willst ihn mit verschlüsseln? Dann sollte 8 Byte als Länge angegeben werden, da die Nachricht nach Entschlüsseln in dem Fall wieder 8 Byte groß sein sollte. Also die Frage ist an welcher Stelle Du verschlüsselst.
Viele Grüße,
Chris
-
Hallo Chris.
Ja, der Header ist teil meines Protokolls. Und du hast recht, die Länge des Headers muss bekannt sein, damit dieser entschlüsselt, und dadurch die Länge der zu entschlüsselnden, eigentlichen Nachricht eingesehen werden kann. Aber sobald ich den Header verschlüssle, ändert sich ja ggf. die Größe dieses. Daher die Frage: Header der Nachricht lassen und nur die Nachricht verschlüsseln, oder gibt es einen anderen weg?
Gruß, Flo
FLOGERSOFT.de - Top Apps, wie z.B. 'Die Taschenlampe' oder ganz neu dabei: 'LiveClock' die Echtzeituhr für ihre Windows Phone Live-Kachel - mit Wettervorhersage!
-
Vielleicht muss ich mich einfacher ausdrücken :-)
Der Header ist teil der Protokolnachricht und hat 4 Byte. Nach dem Verschlüsseln wächst dieser aber an, hat z.B. 16 Byte. Woher soll der Empfänger wissen wie groß der Header durch das Verschlüsseln geworden ist und diesen korrekt erkennen um ihn wieder zu entschlüsseln?
MfG Flo
FLOGERSOFT.de - Top Apps, wie z.B. 'Die Taschenlampe' oder ganz neu dabei: 'LiveClock' die Echtzeituhr für ihre Windows Phone Live-Kachel - mit Wettervorhersage!
-
Vielleicht muss ich mich einfacher ausdrücken :-)
Der Header ist teil der Protokolnachricht und hat 4 Byte. Nach dem Verschlüsseln wächst dieser aber an, hat z.B. 16 Byte. Woher soll der Empfänger wissen wie groß der Header durch das Verschlüsseln geworden ist und diesen korrekt erkennen um ihn wieder zu entschlüsseln?
MfG Flo
FLOGERSOFT.de - Top Apps, wie z.B. 'Die Taschenlampe' oder ganz neu dabei: 'LiveClock' die Echtzeituhr für ihre Windows Phone Live-Kachel - mit Wettervorhersage!
Hi Florian,
wenn ich dich richtig verstanden habe, dann denke ich dass der Empfänger die Länge der Nachricht und des Headers durch den Header der darunterliegenden Schicht kennen sollte, also zB TCP, dann kann der Empfänger die kompletten Daten entschlüsseln, die per TCP empfangen wurden.
Viele Grüße,
Chris
-
Das heißt du sendest z.B. (komplett unabhängig von der Nachricht) die Größe der Folgenden Nachricht, dann die Nachricht. Also:
[Größe in byte[]][Nachricht Verschlüsselt]...[Größe in byte[]][Nachricht Verschlüsselt]......
Richtig?
Gruß, Flo
FLOGERSOFT.de - Top Apps, wie z.B. 'Die Taschenlampe' oder ganz neu dabei: 'LiveClock' die Echtzeituhr für ihre Windows Phone Live-Kachel - mit Wettervorhersage!
-
Das heißt du sendest z.B. (komplett unabhängig von der Nachricht) die Größe der Folgenden Nachricht, dann die Nachricht. Also:
[Größe in byte[]][Nachricht Verschlüsselt]...[Größe in byte[]][Nachricht Verschlüsselt]......
Richtig?
Gruß, Flo
FLOGERSOFT.de - Top Apps, wie z.B. 'Die Taschenlampe' oder ganz neu dabei: 'LiveClock' die Echtzeituhr für ihre Windows Phone Live-Kachel - mit Wettervorhersage!
Hi Florian,
Ich habe nicht ganz verstanden was Du mit "unabhängig von der Nachricht meinst". Wenn Du meinst unabhängig von der wirklichen Länge dann ja.
Hier noch eine Grafik:
Den Header kann man sehen wie das Etikett auf einem Paket: Außen muss das Gewicht des Inhalts stehen der verschickt werden soll.
Ein weiterer Grund warum man die wirkliche Länge nicht mit außen drauf schreiben sollte ist, dass so Rückschlüsse über den möglichen Inhalt bestehen und es erleichtert einen Brutforceangriff...
Und vergiss die Länge des Headers nicht.
Viele Grüße,
Chris