stonith404 / pingvin-share

A self-hosted file sharing platform that combines lightness and beauty, perfect for seamless and efficient file sharing.
https://stonith404.github.io/pingvin-share/
BSD 2-Clause "Simplified" License
3.2k stars 230 forks source link

🚀 Feature: encryption of shared files (the only important missing feature) #534

Open YannuX06 opened 3 months ago

YannuX06 commented 3 months ago

🔖 Feature description

I would be great if the shared files are stored encrypted on the server. Many of our users are unable to do it before uploading it to the server.

🎤 Pitch

So that if the server (or an admin account) is compromised , no one could read the stored files

stonith404 commented 2 months ago

This would only be possible if the share has a password because we need a secret to encrypt and decrypt the files which the server must not know, right?

Mntz commented 1 week ago

The link ID itself could be the secret. This would make management a bit more limited as you won't be able to retrieve shared links since the link IDs are also stored uniquely encrypted.

stonith404 commented 1 week ago

@Mntz The share id must be stored in the database and because of that it isn't possible to use it as a secret. The secret must be something that is either not stored in the database or hashed like the password.

Do you think it would be sufficient if only shares are encrypted with password protection or do you have another idea?

Mntz commented 1 week ago

I think that would work fine if you can also enforce password protection in the configuration settings. Then all transfers are encrypted and Pingvin would be a valid solution in a corporate setting requiring this.

fugidev commented 1 week ago

Firefox Send puts the secret in the url hash, which is never sent to the server

stonith404 commented 1 week ago

@fugidev, OK, that would be a good solution. The only trade-off is that the URL will get very long.