Wie lösche ich Dateien so, dass sie nicht wiederhergestellt werden können?

Wie lösche ich Dateien so, dass sie nicht wiederhergestellt werden können?

Ich habe meine eigene Version einer AES-Verschlüsselung in Java implementiert, um eine plattformunabhängige Verschlüsselungsanwendung zu haben, die nicht von den verfügbaren Verschlüsselungen in der verwendeten JVM abhängig ist.

Diese Anwendung sollte diese Chiffre verwenden, um eine Datei zu verschlüsseln und auf der Festplatte zu speichern.

.

Das Problem: Dateien so löschen, dass sie nicht wiederhergestellt werden können

Der Benutzer muss nun seine Originaldatei sicher löschen können, sodass sie ohne Kenntnis des Verschlüsselungsschlüssels nicht wiederhergestellt werden kann. Dazu müsste die App die Datei mehrfach mit zufälligen Daten überschreiben und schließlich vom System löschen.

Allerdings erschwert mir beispielsweise Windows die Sicherung der verschlüsselten Daten mit einer weiteren Tücke. Ab Windows Server 2003 kommt die Shadow Copy Technologie zum Einsatz. Damit können ältere Versionen der gelöschten Datei immer noch von Windows versteckt werden.

Meine Fragen sind nun:

  • Werden für Mac oder Linux Mint/Ubuntu ähnliche Technologien verwendet?
  • Gibt es eine (plattformunabhängige) Möglichkeit, Dateien zu löschen, ohne sie wiederherstellen zu können?

Antwort1

Die einzige Möglichkeit, das Wiederherstellen von Dateien nachweislich zu verhindern, ohne dass man auf Sektorebene auf die Festplatte zugreifen und das Dateisystem kennen muss, besteht darin, eine Datei zu öffnen, beliebige Daten darauf zu schreiben, bis die Festplatte voll ist, und dann die Datei zu löschen. Und wenn Dinge verdeckt werden, hilft das wahrscheinlich nicht.

Wenn der Benutzer nicht auf den Schlüssel zugreifen kann, sind die Daten in der Datei nutzlos und Sie können sich das Löschen sparen. Wenn die Länge der Datei Informationen preisgeben könnte, füllen Sie Ihre Daten vor dem Schreiben auf.

Wenn Sie zum Verschlüsseln/Entschlüsseln dieser Datei nur einen einzigen Schlüssel benötigen, müssen Sie eindeutige Sitzungsschlüssel von einem Upstream-Hauptschlüssel ableiten.

Beachten Sie: Wenn Sie Schlüssel oder Dinge, die zum Ableiten von Schlüsseln verwendet werden, am selben Ort wie den Geheimtext speichern, implementieren Sie ein grundsätzlich defektes System, das immer irgendwann geknackt werden kann.

Antwort2

Leider gibt es keine Möglichkeit, dies zu umgehen. Verschiedene Implementierungen von auf dem Betriebssystem basierender Software oder Drittanbieter-Tools sind so konzipiert, dass sie Daten so speichern, dass siedürfenwiederhergestellt werden. Es gibt nichts, was Sie in Ihrer Anwendung tun können, um dies außer Kraft zu setzen. Dateiversionierung, Schattenkopien, Backups usw. erstellen Kopien Ihrer Datei.

Das Einzige, was Sie tun können, ist, die Dateien auf einem Gerät oder Datenträger zu speichern, auf dem keine „Backups“ vorhanden sind.

verwandte Informationen