
Ich habe einige Protokolle, die als Beweis in Datenschutzangelegenheiten der DSGVO verwendet werden. Die Anwendung verarbeitet personenbezogene Daten und protokolliert, wer sie für was verwendet. Die Protokolle sollten von niemandem gelesen werden, es sei denn, es läuft eine laufende Missbrauchsuntersuchung.
Wie kann ich diese täglich rotierten Protokolle sicher verschlüsselt (lokal) speichern? Ich denke an einen Root-Crontab-Job, aber das Passwort sollte nicht im Klartext sein. Alle Vorschläge sind sehr willkommen.
$ ls -ltrh
-rw-r----- 1 appuser appuser 83K May 27 23:55 gdpr.log.2018-05-27
-rw-r----- 1 appuser appuser 905K May 28 23:55 gdpr.log.2018-05-28
-rw-r----- 1 appuser appuser 3.0M May 29 23:40 gdpr.log.2018-05-29
-rw-r----- 1 appuser appuser 462K May 30 09:49 gdpr.log
Antwort1
Sie könnten die Dateien mit einem öffentlichen Schlüssel verschlüsseln, der auf dem Server gespeichert ist und nur mit einem privaten Schlüssel entschlüsselt werden kann, der sich nicht auf dem Server befindet. Auf diese Weise sollten die verschlüsselten Protokolle auch dann noch sicher sein, wenn der Server kompromittiert wird.
Beispiel:
Erstellen Sie ein Arbeitsverzeichnis und erstellen Sie ein neues öffentliches und privates Schlüsselpaar:
$ mkdir /tmp/1
$ cd /tmp/1
$ ssh-keygen -f key
$ ls
key
key.pub
Konvertieren Sie den öffentlichen Schlüssel in pem
das Format:
$ openssl rsa -in key -pubout > key.pub.pem
Erstellen Sie eine Testdatei file
mit dem Namen und dem Inhalt hello
:
$ echo hello > file
Verschlüsseln Sie die Datei mit dem pem
öffentlichen Schlüssel im Format und schreiben Sie die Ausgabe in eine Datei mit dem Namen encrypted
:
$ cat file | openssl rsautl -encrypt -pubin -inkey key.pub.pem > encrypted_file
Entschlüsseln Sie die Datei mit dem privaten Schlüssel:
$ cat encrypted_file | openssl rsautl -decrypt -inkey key
hello
Natürlich möchten Sie den privaten Schlüssel vom Server entfernen und die Verschlüsselungsbefehle in einen Cronjob einfügen. So etwas wie:
for file in /var/log/dir/*;do
cat "${file}" | openssl rsautl -encrypt -pubin -inkey /path/to/key.pub.pem > "${file}.encrypted" && rm "${file}"
done
Antwort2
Jeder, der sich auch nur ansatzweise mit dem Thema auskennt, könnte wahrscheinlich hundert Fragen stellen, um einen realistischen Rahmen für eine Lösung zu finden. Haben Sie schon einmal über eine vollständige Festplattenverschlüsselung nachgedacht? Das ist wirklichWirklicheinfach im Vergleich zum Aufwand, der mit der Erstellung jeglicher Art von Automatisierung oder Verfahren verbunden ist, und ist wahrscheinlich gut genug, um Ihre Haftung abzudecken (ich bin kein Anwalt), sofern Sie nicht über einen Remote-Root verfügen.