B
1. Die Logininforamtionen des USERs sind ansich nicht von Spionageangriffen gestört, da ja so ein req. geschickt wird wie : "gibt es einen User mit diesen Logindaten" und nicht "hole alle user und prüfe". Der Admin jedoch hat die möglichkeit User zu verwalten, also requests nach zweiter Art.
Wie kann ich diese "sensiblen" Daten verschlüsseln, das sie jemandem, der das Programm vllt mißbrauchen möchte, nicht in die Hände fallen.
beim Server irgendwie verchluesseln (GPG vielleicht?) und am Client wieder entschluesseln
2. MyProg connected wie gesagt zu einem MySQL Server und einem FTP Server. Die Zugangsdate sind aus Sicherheitsgründen fest im Programmcode integriert(sinnvoll ?? andere Lösungen ??). Wenn das Programm nun aber zu dem Server connected, sagen wir Mysql, dann kann man durch Netwerk sniffer password und username des Zugangs recht Problemlos ausspionieren. Diese Zugangsdaten wären dann der goldene Schlüssel zur Datenbank, man könnte durch eine Datenbanktool auf die Datenbank connecten und die Inhalte sie schlicht löschen.
Die möchte ich natürlich verhindern. Wie kann ich das am besten, besonders im Falle des Mysql Servers ?
zu den fest integrierten Zugangsdaten: nicht im KLARTEXT im Quelltext speichern. Der Compiler schreibt zu Compilezeit feststehende Strings oft noch als Klartext in die .exe... d.h. wer deine Exe mit einem (Hex)-Editor oeffnet, koennte sie da rauslesen.... irgend eine leichte Verschluesselung sollte reichen
. Also bei meiner Lösungssuche bin ich auf openSSL gestoßen, mit dem ich verbindungen verschlüsselne kann. Meine Frage, ob man den Server im Internet, der die Datenbank beherbegt, fest festlgen kann ist noch offen. Sprich ich möchte "man in the middle" attacken aus dem Weggehen, in dem jemand praktisch den Internetserver vorgaukelt, wartet auf den die Clientconnect und spioniert dann Zugangsdaten aus. Was ich also brauche ist eine möglichkeit, dass das Clientprogramm sicher feststellen kann, ob es unter der URL/IP ( festgelegt im Programm) den einen Server erreicht, den orig. Server sozusagen. Eine Art Authentifizierung oder ähnliches. Ich bin dabei auf ein paar Konzepte gestoßen, weiss aber nicht ab genau dies möglich ist.
SSL ist eine gute (und sehr oft eingesetzte) Methode Verbindungen zu schuetzen. Vor Man in the Middle Angriffen koenntest du dich z. B. schuetzen indem dein Protokoll noch eine aufwaendigere Authentifizierung einbaut... z. B. noch bevor das Login vom Client zum Server uebertragen wird, muss der Server erst mal beweisen, dass er der Server ist... eine Signatur an den Client uebertragen, damit der Client den Server fuer vertrauenswuerdig haelt. Super waer z. B. eine sich dynamisch aendernde Signatur, damit sie auch beim Einsatz eines Sniffers nicht ersichtlich sind (z. B. schick immer PGP verschluesselt den aktuellen Timestamp vom Server zum Client, wenn der Client den timestamp decodiert und er ist noch 2 Minuten alt, dann schickt der Client auch das Login, sonst bricht er die Connection ab)...
So, dass war jetzt mein Beitrag zum Thema, basiert aber zum Teil nur auf Halbwissen. Sprich: ich hab selbst nie etwas in der Art gemacht, aber vielleicht hilfts dir trotzdem