Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Server Socket absichern? (https://www.delphipraxis.net/160085-server-socket-absichern.html)

ph0g 26. Apr 2011 21:27

Server Socket absichern?
 
Guten Tag,
ich verwende in einer VCL Anwendung ein Server Socket und verbinde mich mit einem Client Socket (von einem anderen Programm). Jetzt habe ich mal per telnet eine Verbindung zu diesem Server socket aufgebaut und das hat auch geklappt, klar soll es auch.

Nur mir ist es nun ein Dorn im Auge, wenn man da einfach per telnet drauf kann. Gibt es eine Möglichkeit, das so abzusichern, dass man nur mit meinem eigenen Programm draufkommt, und alle anderen Verbindungen irgendwie abgebrochen werden?

Grüße,
ph0g

s.h.a.r.k 26. Apr 2011 21:37

AW: Server Socket absichern?
 
Du kannst doch einen Account einbauen?!

Telnet ist aber trotzdem unverschlüsselt, soweit ich weiß. SSH wäre hier eine sinnvollere Alternative.

Hobby-Programmierer 26. Apr 2011 21:37

AW: Server Socket absichern?
 
Jo, das geht. Der Client muss sich innerhalb einer bestimmten Zeit beim Server autorisieren. Das Thema hatten wir schonmal vor einiger Zeit, finde den Thread aber im Mom. nicht. Oder aber du verwendest ein eigenes Protokoll. Mit der Suche sollte sich da einiges finden lassen.

mjustin 26. Apr 2011 21:45

AW: Server Socket absichern?
 
Zitat:

Zitat von ph0g (Beitrag 1097116)
Nur mir ist es nun ein Dorn im Auge, wenn man da einfach per telnet drauf kann. Gibt es eine Möglichkeit, das so abzusichern, dass man nur mit meinem eigenen Programm draufkommt, und alle anderen Verbindungen irgendwie abgebrochen werden?

Eigentlich kann man da wenig machen: wenn ein Client das Protokoll einhält, ist der Server nicht in der Lage einen Angreifer von einem gutwilligen Benutzer zu unterscheiden.

Man kann aber z.B. ein Clientzertifikat verwenden. Der Server erwartet dann, dass jede Nachricht mit einem Code signiert ist, den nur ein vertrauenswürdiger Client erzeugen kann. Das Clientzertifikat muss man dann natürlich einmalig separat an den Client übermitteln, auf einem sicheren Weg.

Daneben gibt es noch Transport Layer Security, hier ein Link: http://de.wikipedia.org/wiki/Transport_Layer_Security

ph0g 26. Apr 2011 21:48

AW: Server Socket absichern?
 
Vielen Dank schonmal,
ich habe mich eben etwas weiter eingelesen, und festgestellt dass man anscheinend mit Socket.Data irgendwie variablen übertragen kann oder?

Dann würde es ja sinn machen, wenn ich z.b. bei jedem Client Socket.Data.MEINEVARIABLE:='vertrauenswuerdig'; einstelle, und das einfach überprüfe. Nur die Frage ist, wie ich die Daten übergeben und verarbeiten kann...

Jemand ne Idee?

Hobby-Programmierer 26. Apr 2011 22:35

AW: Server Socket absichern?
 
Damit die net langweilig wird :wink:, hier noch was zu lesen.

Zacherl 27. Apr 2011 04:52

AW: Server Socket absichern?
 
Wenn du wirklich sicher gehen willst, dass man über Telnet etc. keine Befehle senden kann, die missinterpretiert werden können, musst du schon in public key Verfahren, wie beispielsweise SRP (gibt es von negah hier eine Implementation) verwenden.

Die Kommunikation läuft nach Authentifizierung verschlüsselt ab, weshalb die Chance, dass man mit Telnet einen Befehl der etwas bewirkt schicken kann, gleich 0 ist.

Allerdings musst du dich fragen, ob der Aufwand das Ergebnis wert ist. Wenn du nicht davon ausgehst, dass irgendjemand absichtlich deine Anwendung analysiert und gazielt angreifen will, reicht garantiert auch eine Verschlüsselung mit festen Key als Schutz vor versehentlichen falschen Clienten aus.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:29 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz