[linux-l] sockets und ip's

Oliver Bandel oliver at first.in-berlin.de
Sa Okt 11 20:29:44 CEST 2003


On Sat, Oct 11, 2003 at 01:48:49PM +0200, Olaf Radicke wrote:
> Am Mit, 2003-10-08 um 10.51 schrieb Kendy Kutzner:
> > Hat Dir das Deine Frage beantwortet, oder kannst Du jetzt Deine
> > Frage anders stellen, oder habe ich Dich jetzt endgueltig
> > verwirrt? :))
> 
> Langsam kommt bei mir Licht in den Wald....
> 
> Ausgangspunkt bei mir war, das ich mit Python-Modul "Socket"
> rum mache. Der eigentliche Socket-Prozess ist aber so gut
> gekapselt, das ich eigentlich nicht wirklich weiß was ich
> tue :-) 
> 
> Ich lausche mit dem Modul am Socket und wen eine Anfrage
> kommt bekomme ich ein Objekt zurück. Daraus mache ich ein
> thread. Während der neue Thread mit dem Klienten rummacht
> lausche ich weiter und lasse mir weitere Objekte bei Verbindungen
> zurück geben um damit weiter Threads zu starten. Da kam
> mir die Frage woher zum Teufel wissen die die Threads  wem
> sie ihre Pakete zu schicken haben. Ich teste ja nur lokal
> auf meinem Rechner so das alle Klienten und der Server die
> gleiche IP-Adresse haben.

Man hat ein listen-Socket. Das nimmt die Verbindung entgegen.
Der syscall accept() liefert ein connection-Socket zurück.
Auf dem kommuniziert man. Und kommen mehrere Verbindungen
rein, dann hat accept() für jede verbindung ein Connection-
Socket zurück gegeben.

Die Objekte werden das kapseln.

Hätte man geforkt, dann müsste man aufpassen, daß der
eigentlich lesende Prozess der einzige ist, der auf dem
Connection-Socket liest, damit es kein Datenchaos gibt.




> 
> Und ist es möglich das ein Klient "lügen" kann und von
> sich behaupten kann er sei ein anderer? Also sich in
> einer Sitzung "dazwischen schieben"? 

Ja, klar geht das.
Ist wohl im Moment noch nicht sehr üblich, aber man kann das machen.
Überall, wo Bits über die Leitung gehen, kann man sich dazwischen
hängen.... in wieweit verschlüsselte Protokolle helfen, ist fraglich.
Kenne mich mit Krypto-Protokollen nicht so sehr aus, aber ich denke mal
(so aus dem Bauch heraus vermutet), daß die IP-Adresse nicht
verschlüsselt übertragen wird... die Nutzdaten liegen ja nicht
in der selben OSI-Schicht wie die IP-Kenndaten.
Aber wenn man sich bei verschlüsselter Kommunikation dazwischen hängt,
dann muß man ja erst mal die Kommunikationsmöglichkeit aufbauen
können... sich also Authentifizieren.
In wieweit das auch exploitbar ist, weiß ich nicht.


Ciao,
   Oliver




Mehr Informationen über die Mailingliste linux-l