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:

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.