AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Key für Verschlüsselung

Ein Thema von Tifoso · begonnen am 14. Okt 2003 · letzter Beitrag vom 16. Okt 2003
Antwort Antwort
Tifoso

Registriert seit: 30. Aug 2003
16 Beiträge
 
#1

Key für Verschlüsselung

  Alt 14. Okt 2003, 20:46
Hallo zusammen,

ich möchte Daten verschlüsslet in ein ini-file schreiben, jetzt schaut die verschlüsselung bei mir so aus:

Delphi-Quellcode:

CryptStr:=Encrypt(DCP_rijndael1,Edit1.Text,'DELPHI');
// Verschlüsselung der Mitliedernummer

PA:=Decrypt(DCP_rijndael1,Edit1.Text,'DELPHI');
// Entschlüsselung der Mitgliedernummer
Es klappt eigentlich alles.
Aber es macht keinen Sinn, wenn ich das ganze verschlüssle aber den Key im Klartext ('DELPHI') schreibe.
hat jemand eine gute Idee??

vielen Dank
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Key für Verschlüsselung

  Alt 14. Okt 2003, 20:57
Tja,
das leidige Problem dem ich vor einigen Wochen auch noch hinterher geeifert bin. Um es einfach auszudrücken: Nein, es geht nicht anders. Es sei denn du greifs auf asynchrone Verfahren mit privaten und öffentlichen Schlüsseln zurück, wie das z.B. das Tool PGP einfach demonstriert. Ist aber in den meisten unsinnig in der Handhabung und nicht zu verwenden. Es bleibt dir also nur übrig die Passphrase irgendwie gut vor fremden Einblicken zu schützen.

Wenn du auf eine Entschlüsselung verzichten kannst, dann benutze einfach eine Hash Funktion wie MD5 z.B.

Gruß,
Tom
  Mit Zitat antworten Zitat
Tifoso

Registriert seit: 30. Aug 2003
16 Beiträge
 
#3

Re: Key für Verschlüsselung

  Alt 14. Okt 2003, 21:14
und wie soll ich die Passphrase gut verstecken??

Grüsse
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.115 Beiträge
 
Delphi 12 Athens
 
#4

Re: Key für Verschlüsselung

  Alt 14. Okt 2003, 21:39
nimm keine Wörter: Sonderzeichen und so bieten sich da gut an, der Zeichensatz ist doch groß genug

und dann kann man noch das Passwort über den Quelltext verteilen

sei einfach etwas kreativ
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Tifoso

Registriert seit: 30. Aug 2003
16 Beiträge
 
#5

Re: Key für Verschlüsselung

  Alt 14. Okt 2003, 22:24
hääää???

wie willst du den das über den ganzen Quelltext verteilen?
was mache ich wenn ich in einem andere unit das gleiche Phasphrase brauche, wie bringe ich eine var in eine andere unit?

danke und sorry wegen den blöden fragen die ich habe!!
  Mit Zitat antworten Zitat
Benutzerbild von nTE
nTE

Registriert seit: 8. Sep 2003
60 Beiträge
 
#6

Re: Key für Verschlüsselung

  Alt 14. Okt 2003, 22:26
Die einzige Methode die Sicherheit bietet (und mir einfällt ;) ist eben die eines nicht hardgecodeten Passworts.
Wenn du die Daten also sicher verschlüsseln willst, solltest du (und ggf. der User, wenn es nicht nur privat ist) ein Masterpasswort festlegen können, welches dann per Hash gespeichert wird (muss es auch nicht mal zwangsläufig, aber das würde alles noch etwas komplizierter machen ;) und bei Programmstart abgefragt wird.
Ist das Passwort falsch, können die Daten nicht entschlüsselt werden.

Ein hardgecodetes Passwort kann sowieso schnell herausgefunden werden, vor allem wenn es sich von Version zu Version nicht ändert (was ja aus Kompatibilitätsgründen praktischer wäre), ist es relativ nutzlos.


Natürlich kann man vieles gut verstecken, da gebe ich himitsu recht.
Wie er schon gesagt hat, sei einfach kreativ.

Ich glaube einige hier würden sich freuen wenn du das Programm mal postest und die Aufgabe stellst das Passwort zur Ver-/Entschlüsselung zu knacken. So könntest ein Feedback über den Schwierigkeitsgrad erhalten. Aber mach dir bitte keine Illusionen was die Sicherheit hardgecodeter Passwörter betrifft.

Fakt ist eins, wenn dein Programm es ohne äussere Eingaben schafft die Datei zu entschlüsseln, dann kann jeder der Lust hat, deinem Programm dabei zuschauen und sich einfacherweise sogar die Routine rauskopieren (ASM zwar, aber das ist ja nicht so schlimm).
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.115 Beiträge
 
Delphi 12 Athens
 
#7

Re: Key für Verschlüsselung

  Alt 14. Okt 2003, 23:07
Na gut, es über den gesamten Code zu verteilen ist vielleicht etwas übertrieben. Wollte damit nur sagen, je weiter die einzelnen Stückchen verstreut sind, desto besser ist es.

Reicht aber auch schon aus, wenn du zum Beispiel die Passphrase erst am Ende einer Prozedur benötigst, dieses über diese Prozedur zu verteilen.

Wie schon erwähnt, bekommt man das einfach nicht sicher. Du kannst nur die Suche erschweren.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Key für Verschlüsselung

  Alt 14. Okt 2003, 23:24
Sicher wird es nur mit eoner one-way Verschlüsselung, sprich man hasht das Passwort und bei der Eingabe wird das eingegeben Passwort "gehasht" und mit dem gespeicherten Hash verglichen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#9

Re: Key für Verschlüsselung

  Alt 14. Okt 2003, 23:55
Zitat:
Sicher wird es nur mit einer one-way Verschlüsselung, sprich man hasht das Passwort und bei der Eingabe wird das eingegeben Passwort "gehasht" und mit dem gespeicherten Hash verglichen
Was bedeutet das ein Angreifer sein eigenes Passwort mit der gleichen Funktion hasht, und das gespeicherte Benutzerpasswort mit diesem Hash ersetzen kann. Somit hat nun der Angreifer Zugriff.

Nein, ein Passwort gehört in das Hirn und mit diesem Passwort werden alle Daten verschlüsselt. Nur wer dieses Passwort beim Start der Anwendung eingibt kann die Daten entschlüsseln. Die Sicherheit besteht dann nur noch aus der Fragestellung "Wie gut ist das benutzte Passwort ansich". D.h. ein Passwort wie "A" ist schlecht, aber ein Passwort wie "Die Frage hier ist nicht Sein oder Sein, da 5 * 3 = 17 und somit grün" kann man als sicher ansehen. (nungut, nun natürlich nicht mehr da ihr es kennt).

D.h. Passwörter sollten wenn überhaupt nur in einbruchssichere Hardware gespeichert werden, ansonsten nur im Kopf. Da hilft auch keine Public Key Verschlüsselung wie mit OpenPGP, denn auch dort muß zur Entschlüsselung der Private Key benutzt werden. Dieser sollte immer per Passwort verschlüsselt gespeichert werden. Diese Passwort muß also ebenfalls zur Entschlüsselung beim Benutzer abgefragt werden. Der EINZIGSTE Vorteil mit PK's wäre der das man zur Verschlüsselung keine Passwortabfrage benötigt.

Logisch gesehen gibt es bei solchen Systemen keinerlei andere sichere Alternativen !

Ein Passwort in die EXE zu speichern ist so sicher wie überhaupt nicht zu verschlüsseln. Ein Angreifer mit Zugriff auf die EXE kann dieses innerhalb von Stunden extrahieren. Dagegen gibt es keinerlei effektiven Schutzes, falls keine zusätzliche Hardware benutzt wird.
Wird diese EXE noch vertrieben ohne dieses Passwort für jede Kopie jedesmal zu ändern, dann ist dieser "Schutz" eher unsicherer als überhaupt nicht zu verschlüsseln. Unverschlüsselt beträgt die Sicherheit 0 Prozent. Mit einmaligem EXE gespeicherten Passwort beträgt die Sicherheit 0% - x%, wobei x% die durch den Benutzer suggerierte und angenommene Sicherheit ist die nicht existiert.
D.h. der Benutzter glaubt sich ziemlich sicher, angenommen zu 90%. Da dies definitiv nicht der Fall ist ist die effektive Sicherheit -90%, und fügt MEHR Schaden zu als ohne vorgetäuschte Sicherheit.

Gruß Hagen
  Mit Zitat antworten Zitat
Tifoso

Registriert seit: 30. Aug 2003
16 Beiträge
 
#10

Re: Key für Verschlüsselung

  Alt 16. Okt 2003, 05:16
also da ist das unit mit der verschlüsselung aber ich dänke ich lasse es so weil meine Anwendung keine super hohe sicherheit aufweisen muss.
oder hat vielleicht jemand eine einfache und schnelle Lösung?

Delphi-Quellcode:
procedure TPasswordDlg1.OKBtnClick(Sender: TObject);
var ini: TIniFile;
     PB: string;
     PA: string;
     CryptStr: string;
begin

    ini:=TIniFile.create(ExtractFilePath(ParamStr(0))+'test.ini');

    PB:=ini.ReadString('Benutzer','Passwort',PB);
    // Auslesen des Benutzer-Passwortes
     
    PA:=ini.ReadString('Administrator','Passwort',PA);
    // Auslesen des Administrator-Passwortes

    PA:=Decrypt(DCP_rijndael1,PA,'DELPHI');
    // Entschlüsselung des Administrator-Passwortes

    PB:=Decrypt(DCP_rijndael1,PB,'DELPHI');
    // Entschlüsselung des Benutzer-Passwortes

    IF ((AltesPassword.Text = PB) OR (AltesPassword.Text = PA)) THEN BEGIN
    // entweder das Benutzer-Passwort oder das Administratorpasswort stimmt

           IF (NeuesPassword.Text = NeuesPassword1.Text) THEN BEGIN
           // stimmen Passwort und Sicherheitseingabe

              CryptStr:=Encrypt(DCP_rijndael1,NeuesPassword.Text,PA);
              // Verschlüsselung der Mitliedernummer

              ini.WriteString('Benutzer','Passwort',CryptStr);
              // Schreibt das Neue Passwort ins ini-File

              AltesPassword.Text:='';
              NeuesPassword.Text:='';
              NeuesPassword1.Text:='';
              END ELSE

           ShowMessage('Sie haben das neue Passwort falsch eingegeben');
           AltesPassword.Text:='';
           NeuesPassword.Text:='';
           NeuesPassword1.Text:='';
    END ELSE

    ShowMessage('Sie haben das alte Passwort falsch eingegeben');
    AltesPassword.Text:='';
    NeuesPassword.Text:='';
    NeuesPassword1.Text:='';
    ini.free;
end;

mfg
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:30 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