Socket Packete Verschlüssen

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
HansWurRst
User
Beiträge: 8
Registriert: Freitag 30. Juli 2010, 18:15

hallo
gibt es schon eine funcktion die packete die per Socket gesendet werden verschlüsselt?
und die der server dann auch wieder entschlüsseln kann.
dies sollte in python als auch in c vorhanden sein da ich den client mir python gemacht hab und der server in c

fals es dies nicht gibt
könnte mir jemand ein beispiel geben wie man das möglichst sicher hinbekommt

hab mir da schon man so gedanken gemacht:
1. im packet header einen zufälligen code übermitteln
jedes zeichen steht für eine aktion zB. bit-or shift and oder so was halt
2. beim login auf dem server sendet der server dem clienten einen code mit dem dann alle packete verschlüsselt werden
3. vor jeder anfrage zum server bekommt der client ein neues pw zugeschickt mit dem er das darauf folgende packet verschlüsselt
Benutzeravatar
Defnull
User
Beiträge: 778
Registriert: Donnerstag 18. Juni 2009, 22:09
Wohnort: Göttingen
Kontaktdaten:

Was spricht gegen SSL?
Bottle: Micro Web Framework + Development Blog
HansWurRst
User
Beiträge: 8
Registriert: Freitag 30. Juli 2010, 18:15

ok wie bau ich das in mein script ein
kannst du mal ein beispiel geben
Benutzeravatar
Defnull
User
Beiträge: 778
Registriert: Donnerstag 18. Juni 2009, 22:09
Wohnort: Göttingen
Kontaktdaten:

Bottle: Micro Web Framework + Development Blog
HansWurRst
User
Beiträge: 8
Registriert: Freitag 30. Juli 2010, 18:15

ok das heist wenn man jetzt mit einem packet sniffer die packets abfängt
sind die so verschlüsselt das man daraus keine daten auslesen kann
und es sehr schwer ist diese zu entschlüsseln
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Das heißt dass die Pakete SSL/TLS-gesichert sind. Welche Implikationen das hat kann dir Wikipedia sicherlich in größerem Detail verraten als ein kurzer Post hier.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Ansonsten ist auch stunnel nett...
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Stunnel wrappt ja auch nur in SSL, nur dass es für den Enduser komplizierter wird.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Verschlüssle jedes Paket selbst mit AES128/CBC oder AES128/CTR. Dafür sollte es in C und Python fertige Bibliotheken geben. AES128 benötigt einen 128-Bit-Schlüssel, den Client und Server kennen müssen (shared secret). Wenn du diesen auch erst noch aushandeln musst (was mit einem Verfahren wie Diffie–Hellman funktionieren würde) nimmt lieber SSL, da das dort korrekt implementiert ist. CBC benötigt noch einen am besten zufälligen Init-Vector, den du ebenfalls übertragen müsstest, was das Protokoll zwischen Client und Server gewährleisten müsste.

Eine Alternative zu einem Block-Cipher wie AES wäre ein Stream-Cipher wie RC4. Den benutzt AFAIK SSL bzw. HTTPS.

Auf keinen Fall empfehle ich, sich selbst einen Verschlüsselungsalgorithmus auszudenken. Das geht in der Regel schief. Schon der korrekte Einsatz fertiger Komponenten ist schwer genug. Ich sage nur RSAES-KEM-KDF2-KW-AES128, der Schlüsselaustausch-Algorithmus für DRM auf modernen Handys.

Stefan
HansWurRst
User
Beiträge: 8
Registriert: Freitag 30. Juli 2010, 18:15

hab zwar net so viel davon verstanden
aber ich versuch das einfach mal
google hilft ja meistens
Antworten