Forum: PC-Programmierung SDV-Sichere Datenvernichtung


von xcatpc (Gast)


Lesenswert?

Hallo!

Wenn eine Datei gelöscht wird, wird lediglich der Speicherbereich 
freigegeben.
Somit kann die gelöschte Datei mit speziellen Programmen, 
wiederhergestellt werden.

Abhilfe schafft meine Anwendung: SDV - Sichere Datenvernichtung

Meine Anwendung steht für euch unter:
http://sourceforge.net/projects/sdv/files/
kostenlos zur Verfügung.

Ich bitte lediglich um Feedback!

von mal nee frage (Gast)


Lesenswert?

was ist an deinem prog anders oder bessers als die hundert anderen die 
es schon gibt

?

von xcatpc (Gast)


Lesenswert?

Ist eines meiner ersten Programme welches ich selbst entwickelt habe.
Es geht mir lediglich um Feedback, wie schnell es läuft, ob es Fehler 
gibt, usw.

Es ist zwar "nur" ein kommandokonsolen Programm, aber dennoch ist es 
unter Bsp: Linux sehr angenehm zu verwenden, auch unter windows muss ich 
die zu löschenden Verzeichnisse/Dateien nur auf das Programm schieben.

Ob es besser als andere Programme ist, ist ein wenig relativ. Das musst 
du selbst für dich herausfinden.

von O. D. (odbs)


Lesenswert?

Dein Programm arbeitet im "user space" und weiß nichts über das 
zugrundeliegende Dateisystem. Zum Beispiel auf einem JFFS2 (viele 
Embedded Systems mit einem NAND-Flash benutzen das) könntest du nicht 
sicher sein, dass die Daten wirklich überschrieben werden.

von Vlad T. (vlad_tepesch)


Lesenswert?

Oliver Döring schrieb:
> Dein Programm arbeitet im "user space" und weiß nichts über das
> zugrundeliegende Dateisystem. Zum Beispiel auf einem JFFS2 (viele
> Embedded Systems mit einem NAND-Flash benutzen das) könntest du nicht
> sicher sein, dass die Daten wirklich überschrieben werden.

das kannst du auch bei kernel Treibern oder Dateisystemtreibern nicht 
sein, da auf Flashebene noch Wear Leveling Algorithmen greifen können

von Peter II (Gast)


Lesenswert?

Hier ein paar anmerkungen für dein Programm.

1. du wertest das return von  init_datenspeicher nicht aus, wenn kein 
speicher da ist machst du einfach weiter.

2. bei sichern, neu_datenspeicher das gleiche

3. das schreiben von einzelnen bytes ist viel zu langsam, man sollte 
immer mindestens die clustergröße vom filesystem schreiben. (oder 
einfach mal 8192byte. Warum überhaupt das lesen? Einfach beim stat 
gleich mit die größe auslesen und einfach bis zu dieser größe schreiben.

4. wo hast du überhaup das remove gefunden, ich kannte bis jetzt nur 
unlink. Aber auch dort sollte man prüfen ob das löschen erfolgreich war.

5. Bei einem fehler sollte dein Programm auch nicht 0 zurückgeben 
sondern ein fehlercode.

6. Die namen der Prozduren sind ein wenig merkwürdig - z.b. sichern 
könnte man besser als ReadDir machen. Auch eine stukt sollte man nicht 
STRUK nennen.


Fazit: Für ein ersten Programm ok, aber eine sehr schlechte 
Fehlerbehandung.

von bitte löschen (Gast)


Lesenswert?

Ich würde ja auch gerne meinen Senf dazu geben, aber ich finde Deinen 
Quellcode nicht. Da ist nur

"Home / Quellcode (source)
Name   Modified   Size   Status
Parent folder
Totals: 0 Items
This folder has no files."

zu lesen.

Etwas anderes:
(Ich bin kein Rechtsanwalt, daher dieser Hinweis, dass folgendes mein 
persönlicher, möglicherweise falscher Wissenstand und keine 
Rechtsauskunft ist.)

Du könntest Dir vor der Veröffentlichung Deines nächsten Projekts (und 
auch zu diesem) ein paar Gedanken zur Lizensierung machen, weniger um 
Deine Rechte an Deinem Quellcode zu schützen, sondern um Dich vor 
irgendwelchen A..löchern zu schützen, die Geld daraus schlagen wollen, 
Dir rechtlich ans Bein zu pinkeln, indem sie Dich aus irgendeinem 
schwachsinnigen Grund verklagen, z.B. weil Dein Programm nicht alle 
Blöcke einer Datei gelöscht hat (und das wird es je nach Dateisystem 
wahrscheinlich tun) und dadurch Firmengeheimnisse beim Verkauf der 
Festplatte preisgegeben wurden. (Das wäre zugegebenermaßen recht 
deppert, aber es gibt Leute, die mit derart konstruierten Fällen ihren 
Lebensunterhalt "verdienen".)
Wir leben in einer Welt, wo man für das Servieren einer heißen Suppe mit 
einer Klage wegen Körperverletzung rechnen muss. Ob man für ein Produkt 
haftet, hängt nicht davon ab, ob man Geld dafür bekommen hat, sondern 
inwieweit man sich mit einem Lizenzabkommen davor schützt, für 
Folgeschäden haftbar gemacht werden zu können. Schau Dir irgendein 
Produkt an, und Du wirst mindestens einen Haftungsausschluss auf der 
Verpackung, dem Beipackzettel o.Ä. finden. Das ist nicht paranoid, 
sondern nötig. Sonst könnte man für jeden verhunzten Urlaubsfilm (sorry, 
veraltetes Beispiel) die Erstattung des Urlaubs einklagen. :D ;)

Ich habe jüngst vor der Veröffentlichung meines ersten Open Source 
Projektchens (http://pksl.de/ressearch) erst mal die GPL3 und die 
dazugehörigen FAQ angeschaut und habe für mich die Entscheidung 
getroffen, dieses und allen folgenden Open Source Kram als Free Software 
unter die GPL3 zu stellen. - Ich könnte mir keinen Anwalt leisten, der 
mir einen rechtsgültigen eigenen Lizenztext formuliert, und keiner kann 
es sich leisten, auf einen Lizenztext zu verzichten.

Nachtrag: bevor ich eine Platte weggebe mach ich
1
for (( i=0; $i<4; ++i ))
2
  do dd bs=8192 if=/dev/random of=/dev/sdb
3
  dd bs=8192 if=/dev/null of=/dev/sdb
4
done

von olibert (Gast)


Lesenswert?

Philipp Klostermann schrieb:
> dd bs=8192 if=/dev/null of=/dev/sdb

Du meinst wahrscheinlich eher /dev/zero :

dd bs=8192 if=/dev/zero of=/dev/sdb

/dev/null gibt nichts aus: cat /dev/null

von Peter II (Gast)


Lesenswert?

Philipp Klostermann schrieb:
> Nachtrag: bevor ich eine Platte weggebe mach ich
> for (( i=0; $i<4; ++i ))
das kannst du dir sparen, wie mittlerweile ist allgemein anerkannt, das 
einfach überschreiben ausreicht.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Peter II schrieb:
> mittlerweile ist allgemein anerkannt, das
> einfach überschreiben ausreicht.

Der Gegenbeweis jedenfalls steht noch aus.

von Peter II (Gast)


Lesenswert?


von bitte löschen (Gast)


Lesenswert?

olibert schrieb:
> Du meinst wahrscheinlich eher /dev/zero

Äh, ja. - Hihi (peinlichgrins)

Peter II schrieb:
> 
http://www.heise.de/security/meldung/Sicheres-Loeschen-Einmal-ueberschreiben-genuegt-198816.html

Danke, das spart Zeit, auch wenn ich in der Praxis selten damit zu tun 
habe.

von Andreas D. (rackandboneman)


Lesenswert?

Auf Linux-Systemen gibt es inzwischen auch shred(1) als 
Standardausstattung.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.