AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language XML-Datei zu Stream | Stream zu Hashwert | XML gegen Manipulation schützen
Thema durchsuchen
Ansicht
Themen-Optionen

XML-Datei zu Stream | Stream zu Hashwert | XML gegen Manipulation schützen

Ein Thema von Headbucket · begonnen am 12. Dez 2013 · letzter Beitrag vom 12. Dez 2013
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von himitsu
himitsu

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

AW: XML-Datei zu Stream | Stream zu Hashwert | XML gegen Manipulation schützen

  Alt 12. Dez 2013, 12:22
Man kann vor dem Haschen die XML nochmal "neu" formatiert in einen String/Stream kopieren und da hashen (den Hash entfernt/ersetzt).
Da wäre die Formatierung auch fast egal, abgesehn von der Groß-/Kleinschreibung, denn XML ist grundsätzlich erstmal CaseInsensitiv und auch die Reihenfolge der Parameter könnte interessant sein, welche ja praktisch auch egal ist, aber beim Haschen kommt es dann wieder auf die Reihenfolge drauf an.

Je nach Auswertung könnte auch die Reihenfolge der Nodes egal sein.

Auch kann ein Node so <node></node> oder <node /> gespeichert sein, was aber vom Inhalt, bzw. aus Sicht des DOMs nahezu egal ist.

Und womöglich kann für die Auswertung auch egal sein, ob ein leerer Node vorhanden ist oder nicht.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (12. Dez 2013 um 12:25 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#12

AW: XML-Datei zu Stream | Stream zu Hashwert | XML gegen Manipulation schützen

  Alt 12. Dez 2013, 12:56
Wäre es bei diesem aufwand nicht vllt. einfacher einen (verschlüselte) Zip-Datei mit den XML-Daten zu erstellen und vor Programmstart, diese zu entpacken?

oder aber die Daten gleich Binär speichern, und dort einen Hash dazu packen. GGf. kann man ja für Neugierige dann noch eine xml-Datei generieren.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#13

AW: XML-Datei zu Stream | Stream zu Hashwert | XML gegen Manipulation schützen

  Alt 12. Dez 2013, 13:03
Wäre es bei diesem aufwand nicht vllt. einfacher einen (verschlüselte) Zip-Datei mit den XML-Daten zu erstellen und vor Programmstart, diese zu entpacken?

oder aber die Daten gleich Binär speichern, und dort einen Hash dazu packen. GGf. kann man ja für Neugierige dann noch eine xml-Datei generieren.

Gruß
K-H
Das ist doch durch die Brust ins Auge und wieder zum Ohr rein.

Wenn ich aus einer wie auch immer gearteten Datei eine Datenstruktur auslesen kann, die vom Daten-Inhalt her identisch ist, dann sind die Daten unverändert.

So kann diese Datei dann auch in ein JSON, YAML, Ini, etc. Format überführt werden (inkl. dem Hashwert) und die Daten können zuverlässig auf Unversehrtheit/Änderung geprüft werden.

Darum würde ich in einen Hash niemals die Speicherstruktur aufnehmen, wenn es mir um die Daten geht.

Bei einem EAN13 Barcode wird ja auch nicht die Strichbreite, Höhe, Druckfarbe oder Papierart in der Prüfziffer berücksichtigt. Auch nicht der Karton, wo der dran draufklebt
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (12. Dez 2013 um 13:05 Uhr)
  Mit Zitat antworten Zitat
madas

Registriert seit: 9. Aug 2007
207 Beiträge
 
#14

AW: XML-Datei zu Stream | Stream zu Hashwert | XML gegen Manipulation schützen

  Alt 12. Dez 2013, 13:34
Nur mal so am Rande: Wenn jemand eine Stelle im Hash ändert und die Messwerte nicht manipuliert, dann schlägt Deine Prüfung trotzdem fehl, obwohl die Messwerte noch korrekt sind.

Ich würde es daher auch wie p80286 machen und die XML-Datei in eine passwortgeschützte ZIP-Datei schmeißen und Ruhe ist. Das Passwort ist in geeigneter Form (nicht MD5) zu hinterlegen.

madas
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#15

AW: XML-Datei zu Stream | Stream zu Hashwert | XML gegen Manipulation schützen

  Alt 12. Dez 2013, 13:49
Nur mal so am Rande: Wenn jemand eine Stelle im Hash ändert und die Messwerte nicht manipuliert, dann schlägt Deine Prüfung trotzdem fehl, obwohl die Messwerte noch korrekt sind.

Ich würde es daher auch wie p80286 machen und die XML-Datei in eine passwortgeschützte ZIP-Datei schmeißen und Ruhe ist. Das Passwort ist in geeigneter Form (nicht MD5) zu hinterlegen.

madas
Wenn jemand den Hashwert ändert oder die Daten, dann ist genau der Fall eingetreten, dass man diesen Daten nicht mehr vertrauen kann.

Und der wird also zuverlässig erkannt.

Was soll denn jetzt die ZIP-Datei noch bringen? Ist die gegen Veränderungen geschützt?
Kann ich da etwa keine Bytes ändern?



Und jetzt kennt einer das Hashverfahren, baut die Datei neu auf mit falschen Werten und löscht auch noch die ZIP-Datei ...

Und es fällt ein Klavier vom Himmel und alle Häuser fallen um, alle Kühe fallen um und es gibt kein Strom mehr ... ja, was denn dann?
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (12. Dez 2013 um 13:52 Uhr)
  Mit Zitat antworten Zitat
Headbucket

Registriert seit: 12. Dez 2013
Ort: Dresden
172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#16

AW: XML-Datei zu Stream | Stream zu Hashwert | XML gegen Manipulation schützen

  Alt 12. Dez 2013, 14:14

Bevor die Diskussion in dieser Richtung ausartet möchte ich doch kurz auf diesen Thread verweisen:
Zippen kommt somit nicht in Frage. Auch soll die XML-Speicherung die bisherige binäre Speicherung ablösen.

In der Regel soll eigentlich Niemand etwas an den Daten verändert. Deshalb wäre es im Prinzip auch nicht schlimm, wenn man die Struktur im Hashwert mit berücksichtigt.
Es soll rein informativ jedoch möglich sein, sich die XML-Datei anzuschauen.

Möchte man wirklich Messwerte manipulieren, dann würde sich das auch deutlich leichter realisieren lassen als durch das "knacken" meines Hashwertes. So könnte man z.B. einfach "falsch" Messen, bis man seine Wunschwerte hat. Aus diesem Grund ist bereits MD5 als Hashfunktion mehr als ausreichend. Es soll somit lediglich gegen eine offensichtliche Manipulation schützen.

Es wird wohl nun auf die Methode mit den Streams und einer eventuellen Neuformatierung dieser Streams hinauslaufen.

Geändert von Headbucket (12. Dez 2013 um 14:17 Uhr)
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.415 Beiträge
 
Delphi XE5 Professional
 
#17

AW: XML-Datei zu Stream | Stream zu Hashwert | XML gegen Manipulation schützen

  Alt 12. Dez 2013, 14:29
Da gibt es u.a. auch einen Standard, welcher sich mit XML-Signaturen beschäftigt.
http://www.w3.org/TR/xmldsig-core/
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 08:37 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