nextcloud / nextcloud/server

Encrypted previews with server-side encryption (SSE)

Open
#53,835 3 comments 12 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

0. Needs triage enhancement feature: encryption (server-side) feature: previews and thumbnails medium
Dominant language
PHP
Stars
36.9k
Forks
5.2k
Avg merge
2d 3h
Merged PRs (30d)
713

Description

Hello everyone,

Nextcloud by design doesn't encrypt file previews. Every time I enable server side encryption, I forget that previews are enabled by default and, won't be encrypted. Preview files can be high-resolution thumbnails of original images and documents which could potentially expose sensitive user data. The question is why doesn't Nextcloud encrypt previews? I think encrypting previews will introduce a performance penalty due to decryption processes every time a folder is loaded, but this can be mitigated with various solutions such as browser caching, PHP server caching, or allowing administrators to set a maximum resolution for previews to fine-tune performance. All of these solutions in my opinion are better than totally disabling previews which users have been familiar with for decades and not having them when SSE is enabled is a serious user experiance issue.
If such enhancement is not possible. At least when the server-side encryption (SSE) feature is enabled, users should be warned about potential data leakage from these previews.

Best

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing Nextcloud's server-side encryption and preview subsystems, focusing on how previews are generated and stored when SSE is enabled. Determine whether encrypted previews or an administrator/user warning is feasible, and define the performance and security checks needed to consider the work complete.

Written by the indexing model from the issue text.

Assessment

Tech stack
php
Domain
backend, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.