AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Sicherer Dateiheader anlegen mittels DEC
Thema durchsuchen
Ansicht
Themen-Optionen

Sicherer Dateiheader anlegen mittels DEC

Ein Thema von stOrM · begonnen am 26. Nov 2009 · letzter Beitrag vom 27. Nov 2009
Antwort Antwort
Benutzerbild von stOrM
stOrM

Registriert seit: 7. Jun 2003
Ort: Mülheim an der Ruhr
436 Beiträge
 
Delphi 10.3 Rio
 
#1

Sicherer Dateiheader anlegen mittels DEC

  Alt 26. Nov 2009, 07:48
Hallo!
Beim stöbern hier im Forum, stieß ich auf ein Paar interessanter Beiträge im Bezug auf Kryptographie in Verbindung mit DEC welche mir ausserordentlich gut gefällt muss ich sagen.

Problem ist ich hab keinerlei Erfahrung im Bezug auf Kryptographie von daher müßte ich mir gewisse Sachen wohl aneignen um folgendes zu erreichen:

Meine Anwendung benutzt (auch hier aus dem Forum ich find nur den Link leider grad nicht ) EncryptedStringLists...
Die Stringlist benötige ich um diverse Sachen zu verschlüsseln, zu speichern und bei bedarf halt wieder einzulesen...

Hierbei hab ich mir die Frage gestellt, ob es ggf. Sinn macht (falls ja, wie?) der verschlüsselten Datei vor dem Speichern ggf. noch eine Art Header zu verpasst, was später sicherstellen soll, dass diese Datei wirklich von meiner Anwendung erstellt wurde...
Im Header könnte ggf. dann z.b. der Name der Anwendung / Checksum? oder sowas in der Art stehen, um sicher gehen zu können, dass mir nicht irgend jemand da eine Datei untergejubelt hat, welche gar nicht von mir stammt... (Als Beispiel zu verstehen!)

Zurück zu DEC:
Wie müßte ich denn mit DEC vorgehen um einen sicheren Header zu erstellen?

Wie gesagt beim stöbern hier hab ich schon einiges darüber lesen können, ich vermute mal ich muss dort auch eine Art Random Engine benutzen?
Aber so genau weiß ich da im Moment auch nicht wirklich WIE , WAS , WO!

Vielleicht weiß ja jemand mehr (Wovon ich überzeugt bin )

Viele Grüße
s!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

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

Re: Sicherer Dateiheader anlegen mittels DEC

  Alt 26. Nov 2009, 11:16
Das mit der Checksumme könntest du auch weglassen.
Wird irgendwann eh geknackt und dann berechnet man einfach eine passende Summe und schon denkt dein Programm es sei alles in Ordnung.

Zitat von stOrM:
Meine Anwendung benutzt (auch hier aus dem Forum ich find nur den Link leider grad nicht ) EncryptedStringLists...
http://www.delphipraxis.net/internal...glist+encrypt*
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von stOrM
stOrM

Registriert seit: 7. Jun 2003
Ort: Mülheim an der Ruhr
436 Beiträge
 
Delphi 10.3 Rio
 
#3

Re: Sicherer Dateiheader anlegen mittels DEC

  Alt 26. Nov 2009, 11:27
Zitat von himitsu:
Das mit der Checksumme könntest du auch weglassen.
Wird irgendwann eh geknackt und dann berechnet man einfach eine passende Summe und schon denkt dein Programm es sei alles in Ordnung.

Zitat von stOrM:
Meine Anwendung benutzt (auch hier aus dem Forum ich find nur den Link leider grad nicht ) EncryptedStringLists...
http://www.delphipraxis.net/internal...glist+encrypt*
Ok bin für jede Anregung sehr dankbar!

Jau genau das war der Link!

Ps.: Ich hab noch was gefunden dazu (Was für ein Zufall, das klingt eigentlich super nur RunYarrow? Dürfte Pseudo Code sein, dat hab ich ned )
Aber so in etwa hab ich mir das Vorgestellt, nur Verstanden hab ich weniger als die Hälfte davon leider!

klick
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

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

Re: Sicherer Dateiheader anlegen mittels DEC

  Alt 27. Nov 2009, 01:56
YARROW ist der Zufallsgenerator der im DEC ab 5.0 standardmäßig benutzt wird.

Wozu einen "sicheren" Header ?
Was du brauchst ist eine kryptographisch sichere Überprüfung ob die verschlüsselten Daten manipuliert wurden, dann erübrigt sich dein "sicherer" Header. Der macht nur dann Sinn wenn du sehr schnell, ohne die Daten entschlüsseln zu müssen, erkennen möchtest ob der Header noch ok ist.

Essentiell ist das alles sehr einfach zu realisieren.
Du brauchst

1.) Zufallssalt
2.) Passwort eingegeben vom Eigner der Daten
3.) secure hash Funktion wie SHA1/SHA256 usw.

Zufallsalt wird als erstes Element im Header gespeichert. Danach deine Headerinformationen und abschließend eine Prüfsumme berechnet mit der Hash Funktion.
Du machst nun folgendes um diese Prüfsumme zu berechnen. Laden den Header als binären Datenblock ohne die Prüfsumme in den Speicher. Initialisiere ein Hash Funktion. Berechne über das Passwort den Hash und anschloießend sofort über den Header. Finalisiere den Hash und fertig ist deine Prüfsumme. Speichere sie nach dem Header.

Nur derjenige der das korrekte Passwort kennt kann die exakt gleiche Prüfsumme nachberechnen und ergo du hast deine sichere Überprüfung.
Exakt auf gleiche Weise könntest du auch die un-/verschlüsselten Daten absichern.

Wichtig dabei ist einzigst das das Passwort im Hirn des Benutzer gespeichert wird und nicht hardcoded in deiner Anwendung.

Gruß Hagen

Einfaches Beispiel:
Delphi-Quellcode:
function Checksum(const Password: String; const Header: Binary): String;
begin
  with THash_SHA1.Create do
  try
    Init;
    Calc(Password[1], Length(Password));
    Calc(Header[1], Length(Header));
    Done;
    Result := DigestStr(TFormat_HEX);
  finally
    Free;
  end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von stOrM
stOrM

Registriert seit: 7. Jun 2003
Ort: Mülheim an der Ruhr
436 Beiträge
 
Delphi 10.3 Rio
 
#5

Re: Sicherer Dateiheader anlegen mittels DEC

  Alt 27. Nov 2009, 03:39
Hallo Hagen
erstmal herzlichen Dank zur Beleuchtung meines Hirns, ein kleines Licht ist angegangen (Besser als die vorherige totale Finsternis )

Ich denke ich habs so halbwegs verstanden, was Du oben schriebst, nur ein kleines Problem gibt es noch und zwar:

Zitat:
Wichtig dabei ist einzigst das das Passwort im Hirn des Benutzer gespeichert wird und nicht hardcoded in deiner Anwendung.
Genau das ist der Haken, oder mein Verständnisproblem, die Anwendung von mir läuft gewissermassen automatisiert ab, der User muss / kann keine Eingaben machen, dass was gemacht werden muss übernimmt die Anwendung so zu sagen alleine...

Nur wie soll die jetzt die Überprüfung starten, wenn das PW nicht in die Anwendung darf?

Ich wills mal so Erklären, stell dir eine Art Container vor in Form einer Datei, dort steht eigentlich alles drin, was meine Anwendung erledigen soll und genau um diese Sicherheit des Containers gehts nun...

Das heisst irgendwo muss ich das PW dann hinterlegen??? So das meine Anwendung dann weiterhin ohne Benutzerinteraktion die Dinger entschlüsseln, verarbeiten und überprüfen kann?

Viele Grüße und herzlichen Dank für die Infos!!!
s!
  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 10:24 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