Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Mein Verschlüsselungs System - Was meint ihr? (https://www.delphipraxis.net/108536-mein-verschluesselungs-system-meint-ihr.html)

hedie 15. Feb 2008 14:53


Mein Verschlüsselungs System - Was meint ihr?
 
Hallo

Ich möchte Verschlüsselte Dateien in meinem Programm entschlüsseln.

Dabei soll ein eventueller angreifer jedoch nicht herausfinden können wie
die datei entschlüsselt wird.

Das es immer irgendeinen weg gibt ist mir leider klar aber
schwerer mache kann ich es ihm dennoch.

Meine Idee:

Die Datei ist mit AES Rijndael Verschlüsselt... Der eigentliche AES Schlüssel ist
Ein gemisch aus dem MD5 Hash der verschlüsselten Datei und zb. dem Datum der Datei

Nun Prizipiell kann man ja sagen das das Sicher ist
jedoch angenommen der angreifer Betrachtet das Programm mit einem Debugger wie OllyDBG

Dan könnte er ja herausfinden was erzeugt wird und im schlimmstenfall sieht er sogar den endgültigen Hash welcher
zur entschlüsselungs routine gegeben wird...

Deshalb meine Frage, Wie muss ich mein Programm aufbauen um das Auslesen des Hashs
so schwer wie möglich zu machen?

Danke schonmal

Wormid 15. Feb 2008 15:02

Re: Mein Verschlüsselungs System - Was meint ihr?
 
Woher bekommst du denn den MD5-Hash der verschlüsselten Datei, um ihn als Key zum verschlüsseln der Datei zu benutzen? :wink:
Hört sich nach einem Henne-Ei-Problem für mich an. *g*

Oder bin ich jetzt auf dem falschen Dampfer?

Gruß

Wormid

hedie 15. Feb 2008 15:04

Re: Mein Verschlüsselungs System - Was meint ihr?
 
Nene hast schon recht...

Ist mir auch gerade aufgefallen....

Dan werd ich halt nur Datum oder so benutzen

Aber die Frage ändert sich zum glück nicht :D

sirius 15. Feb 2008 15:20

Re: Mein Verschlüsselungs System - Was meint ihr?
 
Ich würde vielleicht den Code dynamisch erstellen und dann als Thread starten.

hedie 15. Feb 2008 15:22

Re: Mein Verschlüsselungs System - Was meint ihr?
 
Meinst du Damit den Delphi code?

deep_thought 15. Feb 2008 15:30

Re: Mein Verschlüsselungs System - Was meint ihr?
 
ja, meinte er ...
trotzdem kann man den hash aus'm speicher auslesen, wenn man weiß, wo er steht ... du musst dafür sorgen, dass der hash nie im speicher steht ... oder zumindest nie so, dass man ihn leicht auslesen kann ...

mfg deep_thought

wicht 15. Feb 2008 15:33

Re: Mein Verschlüsselungs System - Was meint ihr?
 
Und nach dem kopieren/ändern ändert sich auch das Datum und die Daten sind futsch, oder wie?

hedie 15. Feb 2008 15:38

Re: Mein Verschlüsselungs System - Was meint ihr?
 
@Wicht... Ja eigentlich ja schon aber ich denke nicht das jemand mehr als einen Tag hat um eine Datei zu verschlüsseln :D

Nee aber es geht ja hier blos ums prinzip die hash quelle hat man ja schnell geändert

@deep_thought

Ok das ich dafür sorgen muss das man den Hash nicht auslesen kann is mir klar :D

Doch wie mache ich das am schlauesten :D Ich meine irgendwo wird der hash ja immer stehen
da sonst das Programm die Datei ja nicht entschlüsseln könnte :D


Also wie mache ich das wohl am besten


Ich bin über alle Tipps froh :D

3_of_8 15. Feb 2008 16:38

Re: Mein Verschlüsselungs System - Was meint ihr?
 
Dein Verfahren ist absolut unsicher. Egal, wie du Datum, Dateinamen und so weiter zusammenwurschtelst: Das ganze ist unsicher. Die einzige Möglichkeit, es annehmbar sicher zu machen ist, ein Passwort für die Datei festlegen zu lassen.

sirius 15. Feb 2008 16:42

Re: Mein Verschlüsselungs System - Was meint ihr?
 
Zitat:

Zitat von hedie
Meinst du Damit den Delphi code?

Nee. Ich meine richtig IA-32-Opcodes.

JasonDX 15. Feb 2008 18:05

Re: Mein Verschlüsselungs System - Was meint ihr?
 
Zitat:

Zitat von sirius
Zitat:

Zitat von hedie
Meinst du Damit den Delphi code?

Nee. Ich meine richtig IA-32-Opcodes.

Das gibt aber spätestens bei Betriebssystemen mit DEP Probleme. Da ist das Codesegment schreibgeschützt, und das Datensegment nicht ausführbar.

Allgemein sei gesagt: Wenn dein Programm die Datei entschlüsseln kann, wird es kaum möglich sein, es für andere zu verhindern. Du kannst allerhöchstens durch versch. Verschlüsselungen den Aufwand erhöhen, möglich wird es trotzdem immer sein.
Eine andere, mögliche Variante ist die Einführung einer externen Variable zur Entschlüsselung, aka vom Benutzer eingegebenes Passwort. Aber selbst dies bietet keine 100%ige Sicherheit.

greetz
Mike

Apollonius 15. Feb 2008 18:09

Re: Mein Verschlüsselungs System - Was meint ihr?
 
Wozu gibt es VirtualProtect?

Laufi 15. Feb 2008 18:33

Re: Mein Verschlüsselungs System - Was meint ihr?
 
Hallo

VirtualProtect ist leider total unsicher, da kein Passwort angegeben werden kann :?

Liebe Grüsse
Laufi

Apollonius 15. Feb 2008 18:35

Re: Mein Verschlüsselungs System - Was meint ihr?
 
:wiejetzt: Mit VirtualProtect kann man nichts verschlüsseln. Man kann nur die Zugriffsrechte einer Speicherseite verändern, sodass man dort Code ausführen oder schreiben darf. Mein Beitrag war auf JasonDX gemünzt.

sirius 15. Feb 2008 18:39

Re: Mein Verschlüsselungs System - Was meint ihr?
 
[roter Kasten] Ja, das wollte ich auch grad sagen.
Und generell würde ja neuer Code auf einer neuen Speicherseite landen.

TomSoft 16. Feb 2008 05:53

Re: Mein Verschlüsselungs System - Was meint ihr?
 
das Dateidatum als Teil des Schlüssels?
ebenso wie der Dateiname ..

WAAHHH!

Was ist, wenn der Empfänger Deine Datei herunterlädt und erneut abspeichert?
evtl. bekommt die dann ein neues Datum und Du mußt noch eine Hinschicken, usw,usw.

nunja, und md5 als Passwort für AES ?
Sowas ist eigentlich schlecht als "Mein Verschlüsselungs System -" zu bezeichnen.
Weil davon gar nichts "neu" ist.
Das ist u.U. gängige Praxis.
Außerdem gibt es Rainbow-Tabellen für md5.

mhh, entwickel doch mal was völlig eigenes.

Sorry, wenn die Worte hart waren.
Aber bevor Du damit Deine Lebensläufe und andere "Private Daten" damit verschlüsselst...

3_of_8 16. Feb 2008 09:13

Re: Mein Verschlüsselungs System - Was meint ihr?
 
Was völlig eigenes zu entwickeln, ist auch keine gute Idee. Ich bezweifle, dass jemand, der sich nicht viele Jahre damit beschäftigt hat, einen halbwegs guten Verschlüsselungsalgorithmus entwickeln kann.

grenzgaenger 16. Feb 2008 09:30

Re: Mein Verschlüsselungs System - Was meint ihr?
 
sag mal weshalb nimmste nicht 'n asycronen schlüssel? da darf jeder dein programm debuggen oder auch den sourecode haben... ohne den richtigen schlüssel hilft in das auch nicht weiter ...

hedie 16. Feb 2008 09:32

Re: Mein Verschlüsselungs System - Was meint ihr?
 
Jo ihr habt schon recht...

Habt ihr denn eine idee??

Also Ich möchte Dateien so verschlüsseln das sie von meinem Programm automatisch gelesen werden können
also quasi ein standard Passwort. Jedoch ist dan das Problem, das das Passwort relativ Leicht
aus der EXE gezogen werden kann, zb mit einem HEX Editor

Deshalb dachte ich mir, es wäre besser den MD5 einer Datei zu benutzen, da dieser
bei jeder Datei anderst ist. Ich würde diesen dan einfach zuerst ausrechnen lassen
und dan Entschlüsseln

Aber dan is ja wieder das Problem das dieser Hash, nach dem verschlüsseln anderst sein wird usw...


Habt ihr also ne idee wie ich das geschickt anstellen könnte??

@grenzgaenger..

Was genau ist ein asynchroner schlüssel? Einer den man selbst eingeben muss?

grenzgaenger 16. Feb 2008 09:36

Re: Mein Verschlüsselungs System - Was meint ihr?
 
Zitat:

Zitat von hedie
Also Ich möchte Dateien so verschlüsseln das sie von meinem Programm automatisch gelesen werden können also quasi ein standard Passwort.

vergiss es, so etwas als verschlüsselung zu bezeichnen ist ein hohn. mal davon abgesehen, dass solche dateien viel sorgfälltiger gelesen werden ;-)

mein tipp, bevor du mit so 'n käse beginnt, leg die daten gleich unverschlüsselt auf die platte, das ist noch sicherer!

Edit://hast du dir schon überlegt was aus deiner codierung wird, wenn jemand dein program bekommt? der kann ja deine schönen sicheren daten wunderbar angucken ohne etwas dafür zu tun ;-)

hedie 16. Feb 2008 09:38

Re: Mein Verschlüsselungs System - Was meint ihr?
 
Der sinn ist eben, das man die Datei struktur nicht erkennen kann

sowie eben die Datei nicht von anderen Programmen benutzt werden kann...

grenzgaenger 16. Feb 2008 09:40

Re: Mein Verschlüsselungs System - Was meint ihr?
 
Zitat:

Zitat von hedie
Der sinn ist eben, das man die Datei struktur nicht erkennen kann

sowie eben die Datei nicht von anderen Programmen benutzt werden kann...

was denkst du, was passiert, wenn er draufklickt und sie nicht lesen kann? dann hat er sie doch schon erkannt...

hedie 16. Feb 2008 09:43

Re: Mein Verschlüsselungs System - Was meint ihr?
 
Nee ich mein die Originale

Die Datei ist eine INI Datei, und ich möchte verhindern, das man weiss in welcher
sektion was steht.

Wenn ich das ding unverschlüsselt ablege, dan sieht das jeder
und dan kann man die INI auch aus anderen Programmen benutzen

grenzgaenger 16. Feb 2008 09:47

Re: Mein Verschlüsselungs System - Was meint ihr?
 
Zitat:

Zitat von hedie
Nee ich mein die Originale

Die Datei ist eine INI Datei, und ich möchte verhindern, das man weiss in welcher
sektion was steht.

Wenn ich das ding unverschlüsselt ablege, dan sieht das jeder
und dan kann man die INI auch aus anderen Programmen benutzen

was meinst du da mit sektionen ... und was soll das progy machen... komm jetzt nicht raus, welches problem du hast...

hedie 16. Feb 2008 09:50

Re: Mein Verschlüsselungs System - Was meint ihr?
 
Das Programm Lädt Dateien die man in einer INI angegeben hat
von Freehost anbietern.

Wenn nun jemand ein solches File erstellt, dan möchte er vieleicht
nicht, das jemand direkt sieht welche datei von wo aus geladen wird
deshalb das AES, zudem kann man so ein eigenes Passwort definieren.

Und ich möchte auch, das man diese Dateien nur mit meinem
Programm lesen kann :D

grenzgaenger 16. Feb 2008 09:55

Re: Mein Verschlüsselungs System - Was meint ihr?
 
gut. wenn er das nicht möchte kann er ja ein passwort eingeben...

denke daneben solltest du darüber nachdenken eine kleine datenbank zu verwenden, welche verschlüsselt ist und beim login (uName und) passwd abfrägt und nur bei erfolgreicher authorisierung den zugriff gestattet. hier hast du dann schon mal mehrere probleme aus dem weg geräumt... (a) brauchst dich nicht um den verschlüsselungsmechanismus zu kümmern (b) der zugriff ist nicht in deinem progy codiert (c) die daten sind ordentlich verschlüsselt und (d) es wird dem user überlassen ob er noch zusätzlich 'n passwort verwenden möchte...

überleg es dir...

hedie 16. Feb 2008 09:57

Re: Mein Verschlüsselungs System - Was meint ihr?
 
Also du würdest mein Programm nur registrierten benutzern anbieten?

grenzgaenger 16. Feb 2008 10:01

Re: Mein Verschlüsselungs System - Was meint ihr?
 
falsch verstanden, dein progy kann jeder haben...

aber
  • (1) wird deine datenbank verschlüsselt (embedded db)
  • bei der installation muss der user ein (uname/)passwort eingeben und dieses regelt dann den zugriff ob er auf die daten zugreifen darf
wenn du den user mehr überlassen willst ob jeder drauf zugreifen kann, brauchst ihm ja nur erlauben ein leeres passwort einzugeben...

hedie 16. Feb 2008 10:04

Re: Mein Verschlüsselungs System - Was meint ihr?
 
Hmmm irgendwie steh ich aufm schlauch...

Hab ich das so richtig verstanden, das ich ne Lokale DB Errichte zb mit MySQL welche dan Verschlüsselt ist
und die den Zugriff auf die Verschlüsselten INI's regelt?

Also wenn jemand eine Datei öffnet wird in der DB gecheckt ob dieser Benutzer Die erlaubniss
hat die Datei zu öffnen


Wenn er sie hat, kommt übers Internet einfach ein True zurück oder sogar der
Entschlüsselungs schlüssel?


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:14 Uhr.

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