Fehler beim löschen der Datei mit encryption enabled

Nextcloud version 26.0.1
Operating system and version docker
Apache or nginx version apache2

The issue you are facing:

Wenn ich eine Datei löschen will, egal ob im webinterface oder über die dateifreigabe in meinem ubuntu-nautilus, kommt der Fehler, dass die datei nicht gelöscht werden kann.

Is this the first time you’ve seen this error? (Y/N):
Y

Steps to replicate it:

  1. erstelle im webinterface eine datei “22.md” und gebe ein paar zeichen ein, damit diese nicht 0KB groß bleibt
  2. versuche die datei im webinterface zu löschen

The output of your Nextcloud log in Admin > Logging:

{"reqId":"ae8VSm7AEunj431ytt1V","level":0,"time":"2023-05-24T11:23:45+00:00","remoteAddr":"46.114.173.202","user":"ruben","app":"carnet","method":"DELETE","url":"/remote.php/dav/files/ruben/tmp/22.md","message":"/appinfo/app.php 
is deprecated, use \\OCP\\AppFramework\\Bootstrap\\IBootstrap on the application class instead.","userAgent":"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/110.0","version":"26.0.1.1","data":{"app":"car
net"}}
{"reqId":"ae8VSm7AEunj431ytt1V","level":0,"time":"2023-05-24T11:23:45+00:00","remoteAddr":"46.114.173.202","user":"ruben","app":"encryption","method":"DELETE","url":"/remote.php/dav/files/ruben/tmp/22.md","message":"/appinfo/app.
php is deprecated, use \\OCP\\AppFramework\\Bootstrap\\IBootstrap on the application class instead.","userAgent":"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/110.0","version":"26.0.1.1","data":{"app":
"encryption"}}
{"reqId":"ae8VSm7AEunj431ytt1V","level":3,"time":"2023-05-24T11:23:45+00:00","remoteAddr":"46.114.173.202","user":"ruben","app":"webdav","method":"DELETE","url":"/remote.php/dav/files/ruben/tmp/22.md","message":"Client \"Mozilla/
5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/110.0\" is not allowed to access end-to-end encrypted content","userAgent":"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/110.0","version
":"26.0.1.1","exception":{"Exception":"OCA\\DAV\\Connector\\Sabre\\Exception\\Forbidden","Message":"Client \"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/110.0\" is not allowed to access end-to-end enc
rypted content","Code":0,"Trace":[{"file":"/var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php","line":89,"function":"checkLock","class":"OCA\\EndToEndEncryption\\Connector\\Sabre\\LockPlugin","type":"->","args":[["Sa
bre\\HTTP\\Request"],["Sabre\\HTTP\\Response"]]},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php","line":456,"function":"emit","class":"Sabre\\DAV\\Server","type":"->","args":["beforeMethod:DELETE",[["Sabre\\HTTP\\Re
quest"],["Sabre\\HTTP\\Response"]]]},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php","line":253,"function":"invokeMethod","class":"Sabre\\DAV\\Server","type":"->","args":[["Sabre\\HTTP\\Request"],["Sabre\\HTTP\\Resp
onse"]]},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php","line":321,"function":"start","class":"Sabre\\DAV\\Server","type":"->","args":[]},{"file":"/var/www/html/apps/dav/lib/Server.php","line":366,"function":"exec"
,"class":"Sabre\\DAV\\Server","type":"->","args":[]},{"file":"/var/www/html/apps/dav/appinfo/v2/remote.php","line":35,"function":"exec","class":"OCA\\DAV\\Server","type":"->","args":[]},{"file":"/var/www/html/remote.php","line":1
72,"args":["/var/www/html/apps/dav/appinfo/v2/remote.php"],"function":"require_once"}],"File":"/var/www/html/custom_apps/end_to_end_encryption/lib/Connector/Sabre/LockPlugin.php","Line":122,"message":"Client \"Mozilla/5.0 (X11; U
buntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/110.0\" is not allowed to access end-to-end encrypted content","exception":{},"CustomMessage":"Client \"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefo
x/110.0\" is not allowed to access end-to-end encrypted content"}}

Es scheint, dass dies mit dem encryption modul zu tun hat, denn, wenn ich in der Datei nichts eingeben, dann kann ich diese 0KB datei noch löschen.

Sobald etwas drin steht ist diese gesperrt.

Ich habe auch schon versucht verschlüsselung zu deaktivieren und wieder zu reaktivieren, wie hier beschrieben: Falscher privater Schlüssel für die Verschlüsselungs-App. Bitte aktualisieren Sie Ihren privaten Schlüssel in Ihren persönlichen Einstellungen um wieder Zugriff auf die verschlüsselten Dateien zu erhalten - #22 by rubo77

unwrapping the long log message a bit:

{
    "reqId": "ae8VSm7AEunj431ytt1V",
    "level": 3,
    "time": "2023-05-24T11:23:45+00:00",
    "remoteAddr": "46.114.173.202",
    "user": "ruben",
    "app": "webdav",
    "method": "DELETE",
    "url": "/remote.php/dav/files/ruben/tmp/22.md",
    "message": "Client \"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/110.0\" is not allowed to access end-to-end encrypted content",
    "userAgent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/110.0",
    "version": "26.0.1.1",
    "exception": {
        "Exception": "OCA\\DAV\\Connector\\Sabre\\Exception\\Forbidden",
        "Message": "Client \"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/110.0\" is not allowed to access end-to-end encrypted content",
        "Code": 0,
        "Trace": [
            {
                "file": "/var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php",
                "line": 89,
                "function": "checkLock",
                "class": "OCA\\EndToEndEncryption\\Connector\\Sabre\\LockPlugin",
                "type": "->",
                "args": [
                    [
                        "Sabre\\HTTP\\Request"
                    ],
                    [
                        "Sabre\\HTTP\\Response"
                    ]
                ]
            },
            {
                "file": "/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php",
                "line": 456,
                "function": "emit",
                "class": "Sabre\\DAV\\Server",
                "type": "->",
                "args": [
                    "beforeMethod:DELETE",
                    [
                        [
                            "Sabre\\HTTP\\Request"
                        ],
                        [
                            "Sabre\\HTTP\\Response"
                        ]
                    ]
                ]
            },
            {
                "file": "/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php",
                "line": 253,
                "function": "invokeMethod",
                "class": "Sabre\\DAV\\Server",
                "type": "->",
                "args": [
                    [
                        "Sabre\\HTTP\\Request"
                    ],
                    [
                        "Sabre\\HTTP\\Response"
                    ]
                ]
            },
            {
                "file": "/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php",
                "line": 321,
                "function": "start",
                "class": "Sabre\\DAV\\Server",
                "type": "->",
                "args": []
            },
            {
                "file": "/var/www/html/apps/dav/lib/Server.php",
                "line": 366,
                "function": "exec",
                "class": "Sabre\\DAV\\Server",
                "type": "->",
                "args": []
            },
            {
                "file": "/var/www/html/apps/dav/appinfo/v2/remote.php",
                "line": 35,
                "function": "exec",
                "class": "OCA\\DAV\\Server",
                "type": "->",
                "args": []
            },
            {
                "file": "/var/www/html/remote.php",
                "line": 172,
                "args": [
                    "/var/www/html/apps/dav/appinfo/v2/remote.php"
                ],
                "function": "require_once"
            }
        ],
        "File": "/var/www/html/custom_apps/end_to_end_encryption/lib/Connector/Sabre/LockPlugin.php",
        "Line": 122,
        "message": "Client \"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/110.0\" is not allowed to access end-to-end encrypted content",
        "exception": {},
        "CustomMessage": "Client \"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/110.0\" is not allowed to access end-to-end encrypted content"
    }
}

Ich habe das hier im Forum und Bugtracker gefunden:

https://github.com/nextcloud/server/issues/34744#issuecomment-1303237491
https://github.com/nextcloud/end_to_end_encryption/issues/33

Die Developer fragen schon gezielt nach Tests ob das mit 26.0.2 schon repariert wird (das Update sollte jetzt diese Woche ausgerollt werden).

Allerdings ist in dem andere Post die Rede davon, dass das end-to(end encryption nicht mit der serverseitigen Verschlüsslung kompatibel ist: E2EE is currently not compatible to be used together with server-side encryption

Bei dir sieht das ein bisschen danach aus…

aber müsste dann nicht schon ein problem beim Anzeigen der verschlüsselten dateien passieren? Denn anschauen kann ich die dateien ja… nur halt nicht löschen

ein paar weitere tests:

  • Ich kann die Datei löschen, wenn ich schnell genug bin, anscheinend habe ich ein paar sekunden spielraum, in dem das löschen noch funktioniert
  • Verschieben im Webinterface in einen anderen Ordner funktioniert nicht
  • Kopieren im Webinterface in einen anderen Ordner funktioniert nicht
  • Wenn ich die App “end-to-end encryption” in den Apps deaktiviere, dann kann ich alle dateien löschen, auch die die ich vorher erstellt habe

Wie funktioniert denn das? warum kann ich die verschlüsselten Dateien noch lesen, wenn ich das Modul deaktiviert habe?

Wenn das nicht kompatibel ist, wird es irgendwo Probleme geben. Ich kenne die Innereien nicht, um dir zu sagen, ob das damit zu tun haben könnte. Bevor das nicht offiziell implementiert und getestet wurde, würde ich das nicht einsetzen. Du kannst mal schauen ob es dafür einen Feature-Request gibt. Falls daran gearbeitet wird, gibt es ggf. Versionen zum Testen und Feedback. Aber das wäre alles im Teststadium und nicht für den produktiven Einsatz gedacht. Selbst im normalen Betrieb ist die serverseitige Verschlüsselung etwas tricky, dass man wirklich gute Backups macht und testet.

Wenn du keinen externen Speicher nutzt, würde ich ggf. nur die End-to-End-Encryption einsetzen, da die serverseitige speziell für diese externen Speicher konzipiert wurde, und auf eigenen Dateisystemen nicht die Vorteile bringt (da auf Wunsch für Verschlüsselung der Daten auf Festplatte eine Lösung im Betriebssytem nutzen).

Falls du externen Speicher nutzt, würde ich dann bei extrem sensiblen Dateien, eine andere zusätzliche Client-seitige Lösung suchen (entweder mit Containern wie VeraCrypt, oder Boxcryptor oder andere, da gab es OpenSource).

was meinst du damit? ich nutze z.Z. die apps “default encryption module” und "end-to-end encryption

in einer anderen docker-instanz auf dem selben server, wo ich schon auf 26.0.1 geupdatet hatte und dort jetzt erst die App “end-to-end encryption” aktiviert habe, funktiniert das löschen von neu erstellt dateien korrekt

fehler, ich hatte vergessen die verschlüsselung unter admin->sicherheit zu aktivieren.
Auch in der instanz kann ich die erstellten Dateien nach ein paar sekunden nicht mehr löschen

Default encryption ist die server-seitige Verschlüsselung, hier ein paar Infos:
https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/encryption_configuration.html

Das war auf github:

Das hört sich an, als könnte es prinzipiell funktionieren. Aber das ist wirklich eher was zum Testen und falls etwas nicht läuft, kann man es den Entwicklern melden.

Das Problem existiert immer noch, ich entschluessel jetzt alle files wieder indem ich das “default encryption module” wieder aktiviere und dann mit dem befehl:

docker exec -i --user www-data nextcloud_app_1 php occ encryption:enable
echo "yes" | docker exec -i --user www-data nextcloud_app_1 php occ encryption:decrypt-all