AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Datendatei gegen Manipulation schützen

Datendatei gegen Manipulation schützen

Ein Thema von messie · begonnen am 20. Feb 2007 · letzter Beitrag vom 20. Feb 2007
Antwort Antwort
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#1

Datendatei gegen Manipulation schützen

  Alt 20. Feb 2007, 17:38
Moin,

ich habe eine Datei mit Daten, deren Daten nicht manipuliert werden sollen (Messdaten für eine DIN-Prüfung).
Ich wollte das mit einer Binärdatei lösen. Das ist an sich recht sicher, jedenfalls fummeln da die Laborleute nicht einfach dran rum wie an einer ASCII-Datei.
Der Nachteil ist, daß ich die Struktur durch die typisierte Datei dann weitgehend festsetze. In einer ASCII-Datei kann ich mal eben eine Spalte Daten danebensetzen, ohne daß die alten Dateien konvertiert werden müssen oder die Auswertung mit Dateiversionen etc. arbeiten muß.

Gibt es dafür Lösungen? Bei untypisierte Dateien müsste ich mit Kennzeichnern arbeiten und alles byteweise lesen und prüfen, also langsam und ähnlich groß wie ASCII-Dateien. Kann man ASCII-Dateien per Stream-Eintrag schützen?

Danke, Messie
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.754 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Datendatei gegen Manipulation schützen

  Alt 20. Feb 2007, 17:44
Willst Du sicherstellen, das die Datei nicht manipuliert werden kann?
Oder reicht es wenn Du mitbekommst, das die Datei manipuliert wurde?

Zum ersten Punkt: dann solltest Du die Datei verschlüsseln
Zum zweiten Punkt: einen Haswert (md5,sha) über die Datei bilden, bevor die Datei geöffnet wird
den neu ermittelten Haswert mit dem gespeicherten vergleichen.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Datendatei gegen Manipulation schützen

  Alt 20. Feb 2007, 18:28
Uff, das ist aber aufwendig! Die Verschlüsselung würde ich ausschließen. Und ein hash müßte ich ja irgendwo so speichern, daß es keiner findet, das ist für das Projekt nicht angemessen. Deshalb hatte ich ja die typisierte Binärdatei benutzt, weil die sich doch recht ordentlich selbst schützt.
Die Schutzhöhe muss nicht so hoch sein - da sind keine Hacker dran sondern ein paar QS-Typen, die ein Teil nicht in die Produktion zurückgeben wollen um pünktlich Feierabend zu machen. Da werden dann gerne mal die Daten im Grenzbereich etwas geschönt.
OT: Ich hab' ja selber mal in der QS gearbeitet.

Grüße, Messie
  Mit Zitat antworten Zitat
Kinimod8

Registriert seit: 9. Jan 2004
Ort: Barsbüttel
317 Beiträge
 
Delphi 6 Personal
 
#4

Re: Datendatei gegen Manipulation schützen

  Alt 20. Feb 2007, 18:40
Zitat von messie:
Und ein hash müßte ich ja irgendwo so speichern, daß es keiner findet
Nicht unbedingt. Den Hash kannst du auch offen abspeichern. Du musst ja nicht sagen, dass er der Hash der zu schützenden Datei ist.

Zitat von messie:
Uff, das ist aber aufwendig! Die Verschlüsselung würde ich ausschließen.
Eine Verschlüsselung würde ich nicht als aufwändig betrachten. Muss ja keine bombensichere sein, oder? Anregungen z.B. hier.
Dominik Peters
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

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

Re: Datendatei gegen Manipulation schützen

  Alt 20. Feb 2007, 18:48
Dann reicht also doch die Lösung mit dem Hash.

Wenn die Daten der Reihe nach in die Datei geschrieben werden, dann wäre es sogar möglich den Hash gleich wärend der Speicherung zu erstellen, ansonsten muß ja z.B. beim Schließen der Hash über die ganze Datei gebildet werden.

Für erstere Methode (beim Speichern gleich mit Hashen) könnte man zich z.B. die Schreibfunktion überladen und das Hashen da integrieren, damit müßte dann nur beim Erstellen und Schließen der Datei die Hashfunktion initialisiert und finalisiert
und natürlich der Hash gespeichert werden.

z.B.:
Delphi-Quellcode:
Var Hash: ...;

Function Write(aFile: TFile; Datensatz: TDatensatz);
  Begin
    UpdateHash(@Datensatz, SizeOf(TDatensatz), Hash);
    System.Write(aFile, Datensatz);
  End;
Den Hash kannst du z.B. in einer weiteren Datei abspeichern.
xyz.log < die zu schützenden Daten
xyz.sec < die Sicherheitsdaten (der Hash)

Wenn du den Hash mit in der Datendatei ablegen willst, dann geht das natürlich nicht wenn der Hash über die gesamte Datei errechnet wird ... der Hashwert muß da ausgeschlossen werden,
denn dieser würde ja sonst den errechneten Hash wieder verändern.

[add]
Was die Sicherheit angeht, dann solltest du natürlich nicht inen überallbekantes Hashverfahren über die gesamte Datei erstellen

Nimm einen unbekannteren, oder ändere den Hash am ende noch etwas ab,
oder Rechner einfach noch weitere Werte mit ein.

Wenn die nicht wissen was das für ein Hashverfahren ist, oder wie/worüber es erstellt wurde, dann können die es auch nicht fälschen (wenn es keine "Profis" sind, so wie du sagtest)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 02:51 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