Wie Daten manipulationssicher aber lesbar speichern
-
Hallo,
ich möchte für ein Projekt selbsterzeugte Dateien manipulationssicher speichern. Der lesende Zugriff muss allerdings weiterhin möglich sein. Wie solche Archivierungssystem für PDFs z.B.
Mir fallen nun ganz viele tricks ein wie man diese Daten verschlüsseln kann. Aber es muss doch einen "richtigen" Weg geben.
Hat da mal Jemand einen Denkanstoss für mich?
Stefan
-
PDF ansich ist nicht manipulationssicher. Aber vielleicht hilft digitales Signieren?
-
digitales Signieren ist schon mal gut. Wenn ich das richtig verstanden habe habe ich doch zwei Schlüssel. Einen geheimen zum erstellen der Datei-Signatur und einen öffentlichen zum überprüfen ob die Datei manipuliert wurde.
Aber wie speichere ich den geheimen Schlüssel wieder sicher? Ich könnte den geheimen Schlüssel direkt nach der Verwendung löschen. Dann bleibt nur der öffentliche zum überprüfen.
Aber wie verhindere ich dann, dass Jemand einfach eine neue Signatur erstellt?
Stefan
-
du kannst die daten nicht absolut manipulationssicher machen wenn sie und das tool selbst beim user liegen.
wenn die leute wuesten wie das geht, dann gebe es einen unknackbaren kopierschutz.
-
Aber wie machen diese ganzen Archivierungsprogramme das? Die Daten "manipulationssicher" speichern? Für Buchhaltung und Email-Archivierung z.B.
Im prinzip bedeutet dass ja, dass man im Prinzip nur versucht den Aufwand ins unendliche zu treiben. Aber es eine "richtige" Lösung gar nicht geben kann.
Stefan
-
ich glaube die meisten archivierungsprogramme speichern die daten nicht lesbar sondern in einem propriaeteren format das nur sie wieder oeffnen koennen.
Ob du nun 4096bit RSA zum signieren benutzt oder MD5 mit einer eigenen initialisierung wird das ganze nicht viel sicherer machen. wenn erstmal jemand dein program im debugger hat, kann er die noetigen daten auslesen. notfalls haellt man dein programm kurz vor dem speichern an, ueberschreibt den speicher mit den gewuenschten daten und laesst es diese signiert usw. ablegen.
du endest darin dich zu fragen wie du dein program cracksicher machst und dazu gibt es hier genug threads die dir auch nur sagen, dass du das nicht 100% sicher machen kannst und eher die user abschreckst wenn du 10mal mehr aufwand in den schutz deines programms steckst als in das program selbst.
-
Eine Möglichkeit wäre, einen sicheren Server aufzustellen, auf den niemand Zugriff hat außer einer vertrauenswürdigen Stelle. Auf diesem Server läuft dann ein Service, der Daten entgegennimmt und mit einem geheimen Schlüssel und einem aktuellen Timestamp signiert. Der Server hat natürlich keine Möglichkeit zu überprüfen, ob er berechtigte oder gefälschte Daten signiert. Aber durch die Timestamps ist es nicht möglich, einmal signierte Daten nachträglich zu leugnen.
Die schwächste Stelle wäre dann der Signierungs-Server selbst, der eben nicht unter Kontrolle des Users stehen darf.
-
StefanKittel schrieb:
Aber wie machen diese ganzen Archivierungsprogramme das? Die Daten "manipulationssicher" speichern? Für Buchhaltung und Email-Archivierung z.B.
z.b. mit sowas: http://en.wikipedia.org/wiki/Message_authentication_code
der text selbst muss dazu nicht verschlüsselt sein.
-
StefanKittel schrieb:
Aber wie machen diese ganzen Archivierungsprogramme das? Die Daten "manipulationssicher" speichern? Für Buchhaltung und Email-Archivierung z.B.
Manipulationssicher geht nicht, einer kann immer ...
In der Praxis wird die Software bzw. das komplette Verfahren zertifiziert (zB
von so einem "Verein" wie KPMG) und ist damit revisionssicher. Die einzelnen
Datenwege (zB ftp-Transfer etc) werden über Prüfsummen abgesichert.Auch Papierbelege sind alles andere als fälschungssicher, insofern kein Unterschied.
-
Christoph schrieb:
Der Server hat natürlich keine Möglichkeit zu überprüfen, ob er berechtigte oder gefälschte Daten signiert.
also macht es das ganze nicht mehr sicherer
Aber durch die Timestamps ist es nicht möglich, einmal signierte Daten nachträglich zu leugnen.
solange sich der server nicht all deine daten haellt, kannst du es natuerlich leugnen
oder wie meinst du das?
-
rapso schrieb:
Christoph schrieb:
Der Server hat natürlich keine Möglichkeit zu überprüfen, ob er berechtigte oder gefälschte Daten signiert.
also macht es das ganze nicht mehr sicherer
Aber durch die Timestamps ist es nicht möglich, einmal signierte Daten nachträglich zu leugnen.
solange sich der server nicht all deine daten haellt, kannst du es natuerlich leugnen
oder wie meinst du das?Stimmt, das war nicht durchdacht. Was man im Endeffekt nur bekommt ist ein sicherer Timestamp: Wenn du Daten vorzeigst, die zum Zeitpunkt T signiert wurden, dann kann das niemand widerlegen (solange der genannte Server nicht kompromittiert wurde). Ein sicherer Timestamp kann auch was wert sein.