Ingrid Holst here. I’ve lost count of the afternoons I’ve spent in windowless rooms, watching architects pitch grand encryption-everywhere strategies while they can’t even agree what “data at rest” means for a spinning disk versus a memory-mapped file. If you can’t define the two states of data plainly, you’ll buy the wrong controls, burn budget on overlapping tools, and still flunk an audit. So let’s strip this back.

The Physical Truth Nobody Wants to Admit
Data at rest means data stored on a persistent medium that survives a power cycle. Hard disk, SSD, tape, optical disc, even a cold storage shard in object storage—if it’ll be there after you pull the plug, it counts. The defining property: the data isn’t actively moving through a processing unit, a bus, or a network interface. It just sits there. And it piles up risk the longer it sits.
Data in motion—sometimes called data in transit—is data that’s actually going somewhere. Across a network, a backplane, an internal bus between components. The instant a read head fetches a block from an SSD and shoves it over PCIe lanes into memory, you’ve got data in motion. The distinction matters because the threat profile flips completely. A disk on a shelf can be stolen. A packet crossing an unencrypted VLAN can be sniffed. Different failure modes, different controls.
Most of the confusion kicks in when engineers treat encryption as a checkbox. They slap TLS on the wire, full-disk encryption on the laptop, and wash their hands of it. But if an application logs plaintext credit card numbers to a database that writes to an encrypted volume, you haven’t protected a thing against an attacker with a valid database connection. The data was at rest on disk, sure, but the application saw it in motion between the logger and the storage engine. Gaps like that make me distrust any architecture diagram that uses a single “encryption” icon.
Where the Boundary Actually Sits
Here’s a boundary you can work with: if the data lives in a buffer that vanishes during a power failure, it’s in motion. If the data survives a reboot, it’s at rest. That’s the line. Everything else is marketing fluff.
Take a database transaction. The client fires a query over TCP—data in motion. The database process parses the query and holds the result set in memory buffers—still in motion. The database writes the committed rows to a write-ahead log on disk. Now the data’s at rest, at least in the log. Later, the database flushes the pages to the tablespace files—also at rest. But during that flush, the data moves across the storage bus. That split second is motion again. If you’re not encrypting the storage bus inside the server, you’ve got a gap. Most teams ignore this because they trust the physical rack. And that trust is fine, right up until you share a chassis with a compromised neighbor in a colo cage.

Why TLS Alone Is Not a Data-at-Rest Strategy
I’ve seen project requirements that state, “All data must be encrypted at rest,” and the implementation boils down to mandatory HTTPS. That’s a category error. HTTPS protects the channel between client and server. Once the server receives the data and writes it to a file system, the HTTPS session is ancient history. If that file system isn’t encrypted, the data sits in the clear. A backup tape taken offsite, a decommissioned disk pulled from the array, a snapshot leaked through a misconfigured S3 bucket policy—all those scenarios bypass the network layer completely.
The fix isn’t complicated. Use LUKS, BitLocker, or cloud-native volume encryption for block storage. Use server-side encryption with customer-managed keys for object storage. Then apply TLS for the network. That’s two layers with two different jobs. Don’t mix them up.
The Backup Blind Spot
Backups are the most neglected intersection. A backup process reads data at rest from primary storage, moves it across the network to a backup server, and writes it to backup media. The data is in motion during the transfer and at rest on the target. If the backup stream isn’t encrypted, you’ve exposed the data in motion. If the backup media isn’t encrypted, you’ve exposed it at rest. I’ve audited setups where the production database was encrypted, the replication link used TLS, but the nightly dump was written to an unencrypted NFS mount. The team insisted the NFS server was on the same VLAN. Then a compromised printer on that VLAN captured the mount traffic. The basics matter. They always do.
The Performance Excuse and Why It Fails
Someone will always claim that encrypting data at rest adds unacceptable latency. Look, modern AES-NI instruction sets on any x86 processor from the last decade churn through AES-256 at gigabytes per second with negligible CPU overhead. The I/O bottleneck is almost always the storage media itself, not the crypto. For data in motion, TLS 1.3 handshakes are fast, and session resumption makes them faster. If your workload is so touchy that TLS termination becomes a bottleneck, you’re probably running at a scale where hardware security modules or dedicated SSL offload cards are a rounding error in the budget.
The real performance hit comes from badly designed key management. If your application fetches a decryption key from a remote KMIP server for every single disk read, you’ll feel that latency. Cache the keys locally, protect them with a TPM or an HSM-backed enclave, and the problem melts away. Again, it’s about understanding the physical flow, not about trusting a vendor slide deck.

Real-World Scenarios That Expose the Gap
Scenario 1: The Retired SAN Array
A company decommissions a storage area network array. The SAN had controller-based encryption, but the drives were physically yanked and sent to an IT asset disposal vendor. The vendor was supposed to shred them. Instead, a technician grabbed a few drives, hooked them up to a SATA dock, and found the data was encrypted only as long as the array controllers were present. Without the controllers, the self-encrypting drives had defaulted to a factory unlock state—because nobody had set the ATA security password. Data at rest was protected on paper, but the implementation assumed the controller would always be the gatekeeper. That assumption broke at the physical boundary.
Scenario 2: The Kubernetes ConfigMap
A team stores database connection strings in a Kubernetes ConfigMap. The ConfigMap lives in etcd, which is written to disk on the control plane nodes. The team encrypts the etcd data at rest using the Kubernetes encryption provider. They also use TLS for all pod-to-pod chatter. But the ConfigMap gets mounted as a file inside the pod. The application reads the file and logs the connection string on startup. The log is shipped to a central logging service over plain syslog. The data moved from at rest (ConfigMap) to in motion (syslog), and nobody noticed the syslog path was unencrypted. The encryption at rest on etcd didn’t stop that leak for a second.
Checklist for People Who Just Want the Job Done
Stop walking into architecture review meetings without a list. Here’s what I go through when someone asks me to review a system design:
- Identify every storage medium. Disks, SSDs, USB drives, SD cards, tape, object stores, caches that survive reboots. That’s your data-at-rest surface.
- For each medium, ask if the encryption is independent of the application. Full-disk encryption, volume encryption, or server-side object encryption. Not just application-layer encoding.
- Trace every data path between components. From client to API, API to database, database to backup, backup to offsite. Each hop is data in motion.
- Verify the encryption protocol and version on each hop. TLS 1.2 minimum, preferably 1.3. No self-signed certificates in production. Mutual TLS if the network segment is untrusted.
- Check the memory boundary. If the application holds sensitive data in memory, that’s data in motion between the CPU and RAM. Memory encryption (AMD SME, Intel TME) exists for a reason. Decide if your threat model needs it.
- Audit the key management. Where are the keys? Who can access them? Are they rotated? A lost key for data at rest means lost data. A compromised key for data in motion means past sessions can be decrypted if someone recorded the traffic.
That list isn’t glamorous. It won’t land you a conference talk. But it’ll keep your name out of breach notification headlines.
FAQ
Is an encrypted database considered data at rest?
Only if the database files on disk are encrypted. Transparent data encryption at the tablespace level counts. Application-level column encryption doesn’t protect the entire file, but it does protect specific fields at rest. You need to understand what layer the encryption operates at. If the database process can read the plaintext without an external key, the data is effectively in the clear to anyone with access to the database memory space.
Does a VPN protect data in motion?
A VPN protects data in motion between the VPN endpoints. It does nothing for data at rest on either side. It also does nothing for data in motion once the traffic exits the VPN tunnel. If your VPN terminates at a cloud instance and the traffic then travels over the cloud provider’s internal network, you’re relying on the provider’s network isolation unless you encrypt at the application layer too.
How often should encryption keys be rotated?
For data in motion, session keys rotate with every connection, so the real worry is the long-lived certificate or pre-shared key. Rotate certificates at least annually, and use automated renewal. For data at rest, the master key rotation frequency depends on your compliance requirements. PCI DSS asks for annual rotation. A practical approach: rotate keys when you rotate the data—during a storage migration, for instance. Re-encrypting petabytes of data just to rotate a key is expensive, so many organizations use envelope encryption, where a master key wraps a data encryption key, and only the master key is rotated.
What about data in use? Is that another state?
Data in use is data actively being processed by the CPU, held in registers or cache. It’s a legitimate third state, but for most practical engineering discussions, it falls under data in motion because the data is volatile and not persisted. If your threat model includes physical memory attacks or cold boot attacks, then data in use demands its own controls—memory encryption or enclaves, for example. For the typical enterprise argument about encrypting data, sticking to at rest and in motion covers 95% of the risk surface.
The distinction between data at rest and data in motion isn’t an academic exercise. It’s a prerequisite for buying the right tools and writing a security policy that actually maps to physical reality. If your next architecture diagram can’t answer where the data sits and where it moves, you’ve got work to do before you even glance at a vendor comparison matrix.







