wie sichert ihr die sql/ftp verbindung von client > server

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Triple-Axe.

    wie sichert ihr die sql/ftp verbindung von client > server

    wie der titel schon sagt wie geht ihr vor ?

    das thema die clientanwendung verschlüsseln (obfuscator oder was auch immer) scheidet aus, weil man den netzwerkverkehr mitlesen kann
    und dadurch auch an die daten kommt

    ich dachte an einen tunnel per vpn oder ähnlichem, nur bin ich mir nich sicher obs nicht noch einen eleganteren weg gibt.

    der benutzername des sql users und das pw sollen halt nicht so über die leitung, die clientanwendung ist mir egal wie es da gespeichert ist.

    bevor jemand kommt obfuscator > zeile 3

    hoffe jemand hat da n guten tip
    danke dir Rainer aber die weiterleitung per php scheidet leider aus. hatte ich vergessen zu sagen das der server nur den sql server managed.
    zugriff von außen auf den server ist erlaubt von daher kein thema rechte sind beschnitten und ein IDS sowie fail2ban installiert

    mir geht es wirklich nur um das stück : aus deiner NIC in die NIC meines sql server
    Die sinnvollste Lösung um den Datenverkehr abzusichern (und vermutlich auch sicherste Lösung) wäre hier eine Art Zwei-Faktoren-Prüfung zwischen zu schalten.

    Also einmal durch Anmeldung (Login-Name und Passwort) und das zweite Mal durch Besitz ... z.B. Hardware-Dongle oder Kurzzeit-Code-Generator (ähnlich wie bei z.B. in WOW der Authentificator).

    Letzteres hat den Vorteil das es ein zusätzliches Passwort erzeugt das der User angeben muss, dieses aber nur für genau 1 (!) Login-Vorgang gilt und auch nur 60 Sekunden gültig ist.

    D.h. kann zwar mitgesnifft werden, aber die Sniffer kann damit nix anfangen da es beim nächsten Login nicht mehr gültig ist.

    Dafür bräuchten die User aber so ein Gerät, wobei die Dinger nicht wirklich teuer sind.

    Allerdings könntest Du Dir auch was ähnliches selber proggen. User meldet sich an, bekommt auf der Login-Seite danach erstmal eine 5 stellige Zahl angezeigt (wird vom Server generiert), die gibt er in dem Code-Creator in der Client-Anwendung ein und aus dem Usernamen + dem Code + eines internen User-Spezifischen ihm aber unbekannten Code + aktuelle Systemzeit erzeugst Du einen zweiten Anmeldecode. Dieser ist natürlich nur für den Anmeldevorgang bei dem der Server die 5 stellige Zahl erzeugt hat gültig und auch nur 60 Sekunden ... danach muss der user neu einloggen und das Spiel geht von vorne los.

    Und der Server kann das nur übersetzen weil die Systemzeit ihm bekannt ist (musst halt für korrekte Synchronisierung sorgen) und der Server den internen Code für genau diesen User kennt.

    Ein Sniffer der dann den zweiten code mitliest kann sich dann dumm und dämlich sniffen er kommt beim nächsten Login damit nicht rein und die Verschlüsselung mit 1 internem Codeschlüssel + differierender Systemzeit + einer Random-Zahl zu knacken dürfte unmöglich sein. Okay ... ein Key-Logger könnte die Eingabe der Random-Zahl auslesen, aber dann bleiben immer noch 1 absolut Unbekannte und 1 variable Unbekannte die der Hacker rausfinden muss. Und zu allem kommt noch die Unbekannte über die Art der Berechnung/Verschlüsselung (brauchst da noch nichtmal die besten Verschlüsselung, solange Du nicht sagst um welche es sich handelt ^^).

    Das sollte eigentlich reichen um alles was nicht in der Profi-Liga mitspielt draussen zu halten. ^^

    Allerdings kommst Du dabei dann auch nciht drumherum Deinen App-Code zu verschlüsseln, bzw. Dir irgendwas in der Anwendung einfallen zu lassen das der interne Code nicht auslesbar ist durch Disassembly und vor allem auch nicht die Berechnungsmethode.

    Gruß

    Rainer

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „raist10“ ()

    dadurch brauche ich aber wieder ein webinterface worin ich die daten gegenprüfe. und das webinterface prüft gegen die datenbank

    das ist es ja was ich nicht möchte da in 99.999^xxx% aller fälle der webserver angegriffen wird. wo kein webserver mit db da keine
    datenverluste.

    mir geht es aber auch um usability(schreibt man das so) d.h. das der user nicht durch schutzmaßnahmen vergrault wird oder werden soll
    darum auch die frage im anderen thema wie ich die für die anwendung benötigte framework version ermitteln kann ;)

    darum soll auch mein client direkt die db ansprechen ohne ein script (habe mir sogar schon ein bash script geschrieben das auf n portknock lauscht
    und danach erst den 3306 öffnet was aber auch nicht so recht das richtige ist ;( ) aber durch welche art auch immer, das problem der klartext username/pw übertragung wird somit nur durch tunnelung
    machbar sein oder ?

    weil die prüfung der daten immer erst über die webseite geht wegen oben genanntem und aber auch wegen der performance nicht so recht, da ich ja jede
    neue verbindung erst checken muss aber die verbindung nicht offen halten will wenn der client "idelt".

    die sicherheit des codes der anwendung verliere ich nicht aus den augen aber danke dir für den tip ;)


    edit : anscheinend soll es gehen per ssh auf den ssh server zu connecten um den sql server zu erreichen :D
    dann werd ich mal da nach ner lösung schauen wie ich n vb.net form > ssh server verbinde und danach auf den sql :P

    ohne die chilkatsoft dlls :S weil ich mag nix wo ich keinen code sehe :D

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Triple-Axe“ ()