Linode: Linux Luks Encryption As Good As End To End Encryption?

Linode offers Nextcloud hosting. If I was to create a Debian server and encrypt it with luks full disk encryption and set up Nextcloud on the server, will this be essentially a good method of Client Side E2EE encryption for the server preventing Linode or anyone to be able to read the files on my Nextcloud server?

Or is there a flaw in this approach that I do not see? I know client side encryption means it encrypts the data, then sends it to the server or grabs the data from the server and decrypts it on your device. If I can set a luks password, it will encrypt the entire linux installation, making it unreadable without the password which I will control. And when you send/recieve files the data is encrypted in transit.

As far I can see , LUKS prevent to read data when the harddisk will be stolen or like that. If the server is up and running, everyone with access to the server can read the files, depending to the rights in the OS. It has nothing to do with transportencryption.

If I have root access, and I control the root password and all the linux username passwords, will that make it impossible for Linode to read my data?

I understand linux encryption has nothing to do with transport encryption, but with a encrypted linux installation Linode cannot even see my files as they are incoming and outgoing due to Nextcloud transfer encryption?

Hmmmm I can not be sure that there is no way as long as the Server is up and running, did not test it, sorry. But technical when the Memory is encrypted because your Server is up, there is no different to an unecrypted memory for the System. Maybe another user can say more about it…

The key thing here is that LUKS is about encrypting the data on a disk at rest. But once the PC is booted, the encryption key must be entered, and is then held unencrypted in RAM until the machine is powered off again. If someone (including a hosting provider) has physical access to the PC, it is an easy task to dump the contents of the RAM, and search it for the encryption key. So, LUKS encryption is not an effective way to provide protection from a malicious host.

Really, there is no reliable way to have a server like Nextcloud hosted remotely and be secure from attacks by the host. If you need that, then you need true client-side encryption, where you use an encryption program on your local PC, and only the encrypted files are sent to a file server, never the encryption key.

2 Likes

I would use Crytomator but the problem is that it is not free and open source on Android, and I need it to be since I do not have Google Play Store on my Android phone.

Well, you could actually use Nextcloud as a solution, if you only use it as an encrypted file server, and ignore its other functionality.

End-to-end encryption is done through both the desktop client and the Android client. In both cases, the encryption is done locally. So, at least in theory, it should be possible to have an untrusted server, and be confident that it only ever receives encrypted files.

The downside is that you have to forget about the web interface and the other features, as they would remain potentially insecure, and not be able to do anything with the encrypted files.