Visual Basic 2008 Verschlüsselung - Sicherheit?

AW: Visual Basic 2008 Verschlüsselung - Sicherheit?

Man könnte es auch einfach mit einer XOR Verschlüssung machen.
Zwar nicht super sicher aber in der Regel reicht das aus. Weiss ja nicht was du damit machen willst? (Hab aber auch nicht jede Seite gelesen im Thread)...
 
AW: Visual Basic 2008 Verschlüsselung - Sicherheit?

Das mit dem sicheren Speichern ist so eine Sache. Du kannst eben nur sehr wenig "sicher" speichern. Deswegen basiert sowas schon oftmals auf berechnungen, die eben nciht einfach ausgelesen werden können. Aber so tief in der computerkryptografie bin ich auch nicht drin :P[/QUOTE]
Man kann gar nichts sicher speichern, wenn denn einer da ist, und es wirklich drauf anlegt....

Daher sind ja auch alle guten Verschlüsselungen Quelloffen. Selbst mit bekanntem Verfahren ist es halt nicht möglich das Verfahren zu knacken, weil einem Teile unbekannt sind.

Ist richtig so.

Es gibt also keine sichere Variante?
Jaein. Wenn du nie auf die Daten zugreifst, dann schon, wenn dus machst, machste auch das Tor auf für Angriffe, über den RAM etc.

Weil wenn jemand den Hash hat, kann es sich doch auch einfach ein Programm programmieren, das mit der gleichen methode wie meins funktioniert? :ugly:
Nein kann man nicht, da man zwar das Ergebnis hat, aber nicht die HASH-Funktion. Der Trick dabei ist es ja, das in dein Programm etwas eingegeben wird, das etwas obskures damit macht, und dann einen HASH-Wert ausrechnet, und wenn der dann mit dem gespeicherten übereinstimmt, dann wird erst frei gegeben. Den gespeicherten HAsh-Wert zu ändern führt nur zu einem: Keiner kann mehr drauf zugreifen :ugly:

Du musst halt alles innerhalb deines Programms erledigen. Das schützt dich aber nicht gegen Reverse-Engineering. Also dem rückübersetzen deines Binären Programms in menschlich lesbaren Code. Du musst also innerhalb deines Codes also Funktionen einbinden, womit dein Parsing nicht vorhersagbar wird, bzw. du musst den Teil deines Codes mehrfach kapseln. Das Problem dabei ist, jeder Kann da mit genug Aufwand sich durch ackern, da dein Programm ja wissen muss, wie es an seine eigenen Daten ran kommt...

Du kannst natürlich die entschlüsselung des Programmcodes vom Schlüssel selbst abhängig machen. Dann musste halt dein Programm schon mit einem nicht im Programm enthaltenen Schlüssel ausliefern, der dann halt geändert werden muss durch den Nutzer. DAS wäre dann ziemlich sicher, schützt gegen auslesen aus dem RAM aber noch immer nichts.... Um das Problem wirste auch nicht rum kommen, so lange du keine externe Hardware dafür verwendest.

Erst damit kannste ein sicheres System aufbauen.

Das wird aber ziemlich sicher über deine Möglichkeiten gehen :ugly:

Allein das selbstverschlüsseln der Programmdaten stell ich mir äußerst komplex vor :ugly:
 
AW: Visual Basic 2008 Verschlüsselung - Sicherheit?

Ich würde einfach mit HWID arbeiten und es einfach Verschlüsseln.
 
AW: Visual Basic 2008 Verschlüsselung - Sicherheit?

Und die Verschlüsselung wäre dann auch sicherer? Schaue sie mir heute mittag mal genauer an.
 
AW: Visual Basic 2008 Verschlüsselung - Sicherheit?

Und die Verschlüsselung wäre dann auch sicherer? Schaue sie mir heute mittag mal genauer an.
Ich gehe jetzt mal davon aus, das der Algorithmus im .NET Framework richtig implementiert ist. Von daher ja. Es sei denn du verwendest ein unsicheres Passwort ;-)
 
AW: Visual Basic 2008 Verschlüsselung - Sicherheit?

Dankeschön, das ganze funktioniert jetzt sehr gut.
Um die "vertraulichen" Strings zu verschlüsseln benutze ich jetzt den AES Algorithmus und das ganze funktioniert so, wie ich mir das Vorstelle.

Jetzt habe ich nur ein Problem beim Login:
Der Login funktioniert so: In einer .txt liegt ein HASH MD5 code. Das Programm wandelt dann das eingegebene Passwort in einen HASH MD5 Code um und vergleicht diesen mit dem in der TXT.
Das ganze ist natürlich ziemlich doof, da man dann ja den HASH Code in der Datei austauschen könnte. Bei der verschlüsselung der "vertraulichen" Strings ist dies ja kein Problem, da das PW schließlich in keiner Datei liegt.

Jetzt stellt sich mir die Frage, wie ich den Login Sicher gestalten könnte.
Der Login umfasst ja folgendes:
Login-Name und Passwort.

Wenn ich jetzt den AES Algorithmus verwenden möchte, ist ja das Problem, dass bei jeder Verschlüsselung etwas anderes bei raus kommen kann. Also wenn AES, dann einmal verschlüsseln, abspeichern und dann immer wieder entschlüsseln und abgleichen. Aber mit welchen Daten? Wenn ich Login und Passwort nehme, kann man das doch wieder in der Datei ändern :daumen2:
Sollte ich das Verschlüsselungspasswort dann gleich in den Code schreiben (halt ein langes, sicheres)? Könnte man da ran kommen? Das Problem ist dann auch, dass dieses Verschlüsselungspw halt nicht veränderbar ist aber das PW vom Benutzer... Ergo: Programm ein 2. mal Downloaden, datei erstellen lassen, austauschen und wieder ist der Login umgangen :(

Ich bin gerade leider echt etwas Ratlos, wäre toll, wenn mir in diesem Thread nochmal geholfen werden könnte.

Gruß Tim
 
AW: Visual Basic 2008 Verschlüsselung - Sicherheit?

Ein Login ist nur sicher, wenn die Vergleichsdaten sicher sind, was bei einer lokalen Installation als nicht möglich angesehen werden kann (zumindest schwer zu erreichen). Passwörter im Code sind ganz schlecht. Es gibt zwar Techniken, sowas zu verschlüsseln, aber man kann halt mittels Analyse des Programms den Algorithmus knacken und so doch an das Passwort kommen. Was mir jetzt so spontan dazu einfällt, wäre die Login-Funktion für die eigentliche Verschlüsselung zu verwenden. Falsches Login -> Daten nicht lesbar.
 
AW: Visual Basic 2008 Verschlüsselung - Sicherheit?

Genau darum habe ich ja gerade auch so große Probleme dabei :D

Wie meinst Du das mit der Login-Funktion im Zusammenhang mit der eigentlichen Verschlüsselung? Meinst du, dass man durch den Login gleich die Daten entschlüsselt?
Dann wäre das Problem, dass die Login Funktion nur zum Programm führen soll und die Daten noch nicht anzeigen soll, da es dafür einen extra Tab gibt.
 
AW: Visual Basic 2008 Verschlüsselung - Sicherheit?

du kannst auch für jeden Nutzer ein File anlegen, in dem das pw steht, und selbiges mit dem Hash selbst wieder verschlüsseln, der als PW genutzt wurde.

Um auf die Daten zugreifen zu können, bildest du aus dem pw in Verbindung mif dem username einen hash, den du dann noch solden kannst, und nimmst das nimmst du dann um das gespeicherte PW zu entschlüsseln.

schau dir einfach dazu mal den PW schutz unter linux an. Der ist SEHR gut :daumen:
 
AW: Visual Basic 2008 Verschlüsselung - Sicherheit?

Danke für die Antwort. Deine Erklärung habe ich mir mehrmals durchgelesen, verstehe sie leider noch nicht, die Datei kann doch dann wieder geändert werden oder nicht?

Habe mal nach dem Linux Schutz geschaut...
Funktionsweise des aktuellen Linux-Passwort-Systems

  • Userinformation werden in /etc/passwd und Passwörter in der Datei /etc/shadow gespeichert.
  • Das Passwort ist 13 Zeichen lang, wobei die ersten beiden Zeichen das sogenannte Salt bilden und die folgenden 11 Zeichen das eigentliche verschlüsselte Passwort. Das Passwort wird Wie folgt erzeugt:
    • Aktueller Zeitpunkt dient als Seed
    • Das Passwort wird auf 8 Zeichen abgeschnitten
    • Die jeweils ersten 7 Bit aller Zeichen ergeben zusammen einen 56 Bit Key
    • Mit diesem Key wird ein 64 Bit Block aus Nullen (00000000) mit dem Seed als Startwert verschlüsselt
    • Mit diesem Ergebnis als neuen Schlüssel wird der Vorgang 25 mal wiederholt.
    • Dieses Ergebnis wird auf 11 Zeichen gekürzt und zusammen mit dem Salt in der Datei /etc/shadow gespeichert
  • Das Passwort kann durch diesen DES-Hash zwar leicht erzeugt, aber nur extrem schwer rekonstruiert werden
  • Im Falle einer Authentifizierung wird das aktuelle Passwort mit diesem Hash verschlüsselt und anschließend mit dem verschlüsselten Passwort verglichen. Fällt der Vergleich positiv aus, so ist der Benutzer authentifiziert.
Aber auch hier wäre doch die Datei Austauschbar, oder?

Das Problem ist ja, wenn ich ein Passwort generiere und man weiß, wie es generiert wird, ist es doch kein Problem einen Klartext String zu nehmen, diesen nach dem Prinzip zu verschlüsseln und den Verschlüsselten String dann in die Datei stecken.
Wie machen das denn andere offline funktionierenden Programme mit Passwortabfrage?
 
AW: Visual Basic 2008 Verschlüsselung - Sicherheit?

Die Datei ist austausch- bzw. beschreibbar, allerdings braucht man unter Linux dafür in der Regel root-Rechte und wenn man die hat, kann man das PW auch direkt ändern.
 
AW: Visual Basic 2008 Verschlüsselung - Sicherheit?

Ok, mit einer Windows-Forms Anwendung kann man das dann aber nicht realisieren :(
 
AW: Visual Basic 2008 Verschlüsselung - Sicherheit?

Ja, gut möglich. Mir fällt spontan zumindest nichts ein, was dem nahe kommen würde.
 
Zurück