Hi I am new to TrueNas. I would like to migrate, but I am really unsure if it fees my security profile.
I always use a mdadm RAID5 that unlocked automatically when decrypting a LUKS encrypted Debian server.
Meaning the data is only unlocked and available, when the encrypted server is turned on.
I’m looking to upgrade to new much lager disks, and to use ZFS pools partly for the encrypted dataset, and partly for many normal datasets for dockers etc. Meaning I would like to have a TrueNas for storage + VM servers and LXCs all on a Proxmox environment.
I’ve been exploring whether encrypted datasets in TrueNAS SCALE can be unlocked remotely in a “no-trust NAS / full-trust workload / server” architecture, and I’m trying to confirm whether what I observed is by design or a limitation that could be revisited.
What I tried (and failed) when unlocking the encrypted dataset remotely
-
REST API (various payloads, documented and undocumented fields. APT depreciated?)
-
JSON-RPC over WebSocket (auth succeeds, unlock jobs never complete)
-
websocat and Python websocket clients(auth succeeds, unlock jobs never complete)
-
Passphrase-based dataset encryption (not key files)
-
decryption over SSH / scripts not possible (no root login and no sudo is possible.)
Result in all cases:
-
Authentication succeeds
-
Dataset unlock never succeeds remotely
-
No clear error explaining that remote unlock is disallowed
This suggests that remote unlocking of encrypted datasets is effectively impossible, even with valid API keys and the correct passphrase.
Can some correct me if its actually possible, and advice please how to do it.
Architectural question
I understand that TrueNAS encryption is designed to protect against:
-
Stolen disks
-
Physical compromise
-
Offline attacks
That makes sense.
However, in many homelab setups, the desired model may very well be different:
-
NAS is not trusted -
A VM or application using the data is trusted (Properly Fully encrypted) -
Dataset should unlock only while that workload / server is running
-
Dataset should re-lock when the workload / sever stops
Right now, the only practical option seems to be:
-
Auto-unlock on boot (leaving the key permanently “in the open door” of a 10 inch steel vault), or
-
Manual unlock via UI - which is pretty tedious
Which raises the question:
If encryption is automatically done at boot, what security problem is it actually solving in a remote or unattended environment?
Feature request / food for thought
Would it be possible (or acceptable) to support explicit, opt-in remote unlocking of encrypted datasets when:
-
API keys are used
-
A passphrase is supplied
-
The user explicitly accepts the risk
-
This fits their security model
This would enable a “no-trust storage / trusted compute/server” design, where encryption is controlled by the workload lifecycle rather than the NAS itself.
I may be trying to use storage-layer encryption like application-layer encryption, but that seems like a valid and increasingly common use case. Secret data used by a secret secure sever!
Is remote unlock intentionally forbidden by design?
If so, could this be documented more clearly — or reconsidered as an optional feature?
Thanks for any insight from the developers or community.