AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Verständnisfrage: Verschlüsselung + Schutz vor Datenverlust
Thema durchsuchen
Ansicht
Themen-Optionen

Verständnisfrage: Verschlüsselung + Schutz vor Datenverlust

Ein Thema von Ares · begonnen am 24. Sep 2009 · letzter Beitrag vom 25. Sep 2009
Antwort Antwort
Ares

Registriert seit: 5. Dez 2002
269 Beiträge
 
#1

Verständnisfrage: Verschlüsselung + Schutz vor Datenverlust

  Alt 24. Sep 2009, 17:26
Hallo!

Es gibt ja diverse Tools die Dateien nach verschiedenen Methoden verschlüsseln. Hierbei stelle ich mir die Frage wie die Verschlüsselungsmethoden auf Beschädigungen der Dateien reagieren. Was passiert also, wenn ich Datei A in in Format X verschlüssele und in der Datei X dann ein paar Bits kippe.

Wird bei der Entschlüsselung dann einfach eine kaputte Datei A erstellt? Oder kann es sein, dass die Entschlüsselung komplett fehl schlägt weil diese an den "defekten" Bits hängen bleibt?

Ich nehme mal an, dass Lösung A "Entschlüsselung zu defekter Datei A" richtig ist. Gibt es dann Verfahren um solche Fehler zu erkennen und zu reparieren? Gibt es dabei unterschiede zwischen den verschiedenen Verschlüsselungsverfahren?

(PS: Ich gehe hierbei nur von symmentrischen Verfahren wie z.B. AES aus)

Besten Dank
Ares
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Verständnisfrage: Verschlüsselung + Schutz vor Datenverl

  Alt 24. Sep 2009, 17:59
Zitat von Ares:
Oder kann es sein, dass die Entschlüsselung komplett fehl schlägt weil diese an den "defekten" Bits hängen bleibt?
Ob es hängen bleibt kommt wohl auf die Entschlüsselung an und wie sie bei fehlern reagiert.

Ich glaub viele Verschlüsselungen erstellen einfach nur eine defekte Datei.
Denke mal Hagen würde sagen, daß dieses der Beste weg wäre.
Bei vielen Verschlüsselnungen müßte man wohl ein zusätzliches Prüfmerkmal, wie z.B. eine Prüfsumme einbauen, um die Korrektheit der Entschlüsselung zu prüfen.
Und ich denk mir einfach mal, das dieses unter Umständen die Sicherheit der Verschlüsselung gefährtet.
Da über sie eventuell ein Angriff und wenn es nur Bruteforce ist, leichter fällt (ein Programm hat ja dann mindestens einen Wert, wogegen es prüfen kann, ob es erfolgreich war)


Was das reparieren angeht, so wird man wohl zusätzliche Reperatur-/Vergleichsdaten mit einbauen müssen, denn irgendwo her muß man ja die Daten für die Reperatur holen.
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 negaH
negaH

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

Re: Verständnisfrage: Verschlüsselung + Schutz vor Datenverl

  Alt 24. Sep 2009, 18:54
Das hängt ab von der verwendeten Verschlüsselung und den Prioritäten die der Nutzer und Designer an diese anlegt. Es läuft immer auf eine Kompromißsituation hinaus.

Angenommen du möchtst es sehr sehr sicher dann würde 1 falsches Bit an einer beliebigen Stelle im Ciphertext den kompletten Plaintext vernichten. Denn so wird eine gute Verschlüsselung reagieren wenn man bestimmte Angriffe abwehren muß.

Angenommen deine Priorität ist das die Daten auch bei Fehlern noch teilweise korrekt sind dann kann man zb. bei Blockverschlüsselungen sogenannte selbstsynchronisierende Ciphermodis benutzen. Zb. CBC ist ein solcher Modus. Die komplette Nachricht wird in Blöcken verschlüsselt (deswegen Blockverschlüsselung) und 1 falsches Ciphertextbit vernichtet den aktuellen Block und eventuell noch den nachfolgenden Block. Das Ratio liegt also bei 1Bit zu 16xBlockgröße in Bytes. Das sind sogenannte selbstsynchronisierende Ciphermodis.

Oder man wählt sogenannte Streaming-Ciphermodis bei denen der Cipher nur einen Schlüsselstrom erzeugt der mit den Daten XOR verknüpft wird. Also defakto ein billiger Streamcipher ohne Rückkopplungen des Datenstromes in die Cipherengine. Dann ist ein Datenblock quasi ein Byte oder sogar Bit je nach Cipher. Das Ratio beträgt dann 1Bit zu 1Byte oder 1Bit zu 1Bit je nach Cipher.

Aber von Oben nach Unten wird in den vorherigen Absätzen die Sicherheit immer weiter reduziert und immer mehr Angriffe werden möglich.
Man kann nun intern zwei wesentliche Arten von Fehlererkennungen/korrekturen anwenden. Einmal die sichere Erkennung von Fehler/Manipulationen durch kryptographische Primitive. Je nach Verfahren geht das von einfachen Prüfsummen, eingebetteen Cipher Message Authentification über zusätzlich zu implementierende Primitive wie HMACs (Hash Message Authentification Codes) bis eben zu "unfälschbaren" digitalen Signaturen wie DSA und Konsorten. Diese alle sind wieder kryptographisch aufsteigend immer sicherer und erkennen nur ob eine Manipulation oder ein Datenfehler vorliegt.
Die zweite Gruppe sind ECCs, Fehlerkorreturverfahren. Allerdings sollte man diese besser im äußeren Kontext der Datenübertragung benutzen, dh. auf den verschlüsselten Datenstrom statt auf die Plaintextnachricht und vor der Verschlüsselung. Denn je nach Cipher-/Mode wird bei einem Datenbitfehler ja eine ganze Menge an Datenblöcken zerstört. Wenn die ECC nicht exakt und explizit auf den Cipher abgestimmt wurde, also eine Standard-ECC ist so sollte dieser immer auf den Ciphertext Stream angewendet werden.

Um deine Frage also zu beantworten: grundsätzlich kann man wie bei normalen Datenübertragungen auch bei verschlüsselten Datenübertragungen die gleichen Verfahren benutzen um Fehler zu erkennen und korregieren zu können. Es ändert sich nur die Vorgehensweise da die Krypographie mit berücksichtigt werden muß und diese Fehler Erkennungen/Korrekturen nicht das krypto. System schwächen dürfen.

ECC's zb. basieren auf der Idee möglichst mit wenigen zusäzlichen Datenbits sehr viel redundante Aussagen über die Nutzbits zu kodieren die die Restauration fehlerhafter Nutzbits ermöglichen. Das steht oft im Widerspruch zu einer Verschlüsselungen die nach Möglichkeit eben keinerlei zusätzliche redundaten Informationen über den Plaintext nach AUßen dringen lassen möchte. Nutzt man die ECCs also auf dem Ciphertext (Außen) dann besteht nicht die Gefahr (im Gegensatz zur ECC auf dem Plaintext vor der Verschlüsselung, also Innen) das ein Angreifer die Eigenschaften der ECC ausnutzt um die Verschlüsselung zu brechen.
Gleiches gilt auch für die MACs, Digitalen Signaturen. Werden sie auf dem Plaintext angewendet so müssen sie immer dem Random Oracle Model entsprechen, also vollständig randomisiert arbeiten. Ansonsten kann ein Angreifer diese ausnutzen um das System zu brechen.

Gruß Hagen
  Mit Zitat antworten Zitat
Ares

Registriert seit: 5. Dez 2002
269 Beiträge
 
#4

Re: Verständnisfrage: Verschlüsselung + Schutz vor Datenverl

  Alt 25. Sep 2009, 06:52
Hallo!

Erst einmal vielen Dank für die ausführlichen Antworten, damit habt ihr mir schon mal ein gutes Stück weiter geholfen! Weiß zufällig jemand wie es sich bei dieser Frage bei den ganzen gängigen Verschlüsselungsprogrammen für den Heim-PC verhält? Was passiert wenn ich meine Festplatte mit Bitlocker oder TrueCrypt verschlüssele und ein Bit kippt. Sind dann alle/viele Daten betroffen? In diesem Fall wäre es ja ein größeres Risiko seine Daten verschlüsselt zu speichern statt im Klartext.

Ich will mir ein kleines Programm schreiben, dass Dateien verschlüsselt (mit eine Blockchiffre wie z.B. AES) und diese dann auf einen Server lädt. Natürlich haben die Protokolle für die Datenübertragung schon eigene Verfahren für die Fehlervermeidung- und -findung, ich würde die Daten aber gerne doppelt schützen.

Nach der Erklärung von negaH kommen hierfür ja nur ECCs in Frage die von außen auf den Chiphertext angewendet werden. Gibt es hierfür standardisierte Dateiformate?

Das klingt vielleicht blöd, aber auf Anhieb fällt mir hierzu das ZIP-Format ein. Hier gibt es Optionen mit denen Redundanzinformationen zu einer Datei hinzugefügt werden. Setzt man die Kompression auf 0 hätte man also das gesuchte Format mit dem eine Datei bis zu einem gewissen Grad vor Fehlern geschützt wird. Ist das richtig oder übersehe ich hier etwas?

Ich fände es umständlich das ZIP-Format zu verwenden, dabei die Hauptfunktion außen vor zu lassen und nur eine Nebenfunktion (Redundanz erzeugen) zu verwenden. Gibt es also andere Dateiformate die nur für die Redundanzerzeugung gemacht sind und diese somit auch besser beherrschen?

Besten Dank
Ares
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Verständnisfrage: Verschlüsselung + Schutz vor Datenverl

  Alt 25. Sep 2009, 09:53
Auf'm Webserver hast du doch meistens schon einen Schutz, in Form von Backups.

Am einfachsten wäre es da wohl, wenn du die Redundanz wegläßt und z.B. nach der Datenübertragung die Daten nochmal vergleichst.

z.B. auf dem Server mit einem Programm Hash's erstellst, welche vom lokalen Programm gegengeprüft werden.
Ist da ein Fehler drin, wird die Datei nochmals übertragen.
(bei "kleinen" Datenmengen kann man auch leicht die ganze Datei nochmals runterladen und vergleichen)

Falls du da selber was machen willst ...
http://de.wikipedia.org/wiki/PAR2 (Parity Files)
soweit ich das mal gesehen hab, ist das Format offen und du kannst di selber was dazu basteln (hatte damals keine Delphiimplementation dazu gefunden)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#6

Re: Verständnisfrage: Verschlüsselung + Schutz vor Datenverl

  Alt 25. Sep 2009, 12:21
Zitat von Ares:
Ich will mir ein kleines Programm schreiben, dass Dateien verschlüsselt (mit eine Blockchiffre wie z.B. AES) und diese dann auf einen Server lädt.
Wenn Du den EAX-Modus verwendest, gibt es die Authentizitätsprüfung beim Entschlüsseln als (fast) kostenlose Zugabe. Oder Du schreibst eine Programm, daß nur die Authentizitätsprüfung macht.

Zitat von Ares:
Das klingt vielleicht blöd, aber auf Anhieb fällt mir hierzu das ZIP-Format ein. Hier gibt es Optionen mit denen Redundanzinformationen zu einer Datei hinzugefügt werden.
Das wäre mir neu, daß ZIP Fehlerkorrektur macht (welches Programm soll das sein?), von RAR weiß ich es sicher.
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

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

Re: Verständnisfrage: Verschlüsselung + Schutz vor Datenverl

  Alt 25. Sep 2009, 12:55
Es gibt nur sehr wenig Source/Programme die ECCs können. Gute ECCs sind schon mathematisch sehr anspruchsvoll (Red Salomon ist noch einfach). Meistens geht man praktisch pragmatisch vor und macht Backups. Backups haben den Vorteil das sie eine vollständige Sicherung darstellen und damit leistungsfähiger sind als ECCs, besonders aus Sicht größerer Datenverluste wie bei sektorierten Festplatten üblich.

Dein Problem hat nichts mit Kryptographie ansich zu tun, ausgenommen das Problem der Authentizitätsprüfung aber das ist eigentlich nicht das was du suchst.

Gruß Hagen
  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 05:59 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