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!
was ist an deinem prog anders oder bessers als die hundert anderen die es schon gibt ?
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.
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.
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
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.
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 |
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
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.
Peter II schrieb: > mittlerweile ist allgemein anerkannt, das > einfach überschreiben ausreicht. Der Gegenbeweis jedenfalls steht noch aus.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.