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 |
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. |
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.
|
AW: Server Socket absichern?
Zitat:
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 |
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? |
AW: Server Socket absichern?
Damit die net langweilig wird :wink:, hier noch was zu lesen.
|
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