peergos-making-yourself-aud.../BAA-DPA.md
George Lambert afa270a141
Some checks are pending
ci / markdown (push) Waiting to run
Initial pack: Peergos EU audit verification and DataCube audit-ready checklist
Cure53 Berlin 2019 and ROS Amsterdam 2024 are pentests, not HIPAA/SOC2/ISO
certificates. BAA/DPA guidance for ciphertext-at-rest on cryptree+IPFS.
2026-09-15 23:57:04 -04:00

85 lines
3.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# BAAs and DPAs when ciphertext has no host keys
This is **guidance for an evidence pack**, not legal advice.
## The operator statement
Data at rest lives in the **encrypted Peergos cryptree**. Restore uses
**distributed, hash-verified, encrypted IPFS blocks**. Hosts and backup
media see **opaque blobs** (and random CHAMP labels), not filenames, not
PHI, not social graph — if keys never leave the client / customer HSM.
That is **true of the Peergos design** (see `PEERGOS-VERIFICATION.md`).
It **changes the BAA/DPA conversation**. It does **not** auto-delete the
need for contracts.
## HIPAA (US) — Business Associate
A Business Associate is a person who **creates, receives, maintains, or
transmits ePHI** for a covered entity.
**Technical argument you can make (and should document):**
1. ePHI is encrypted **before** it leaves the endpoint (Peergos client /
DataCube writer).
2. The storage node, IPFS, disk, and backup hold **ciphertext + hashes**.
3. Private keys **do not** reside on the storage host (customer HSM /
client). Hash verification detects tampering.
4. Therefore the host **cannot maintain ePHI in intelligible form**.
HHS has long distinguished **conduits** and parties that never have
access to ePHI. Many security programs still **sign a BAA anyway** when
a vendor touches infrastructure, because:
- misconfiguration could later expose keys or plaintext logs;
- support staff might be asked to handle a decrypted export;
- OCR looks at **your** risk analysis, not only crypto papers.
**Practical pack:** risk analysis memo citing cryptree + IPFS hash
checks + key custody (`HSM-CUSTODY` in system-git-sync); BAA **or**
written determination that the vendor is **not** a BA because they
cannot decrypt; list every party with disk/backup (ns1, IPFS cluster,
offsite replica).
## GDPR (EU/UK) — processor vs technical measure
Encrypted data can still be **personal data** if it is reasonably
attributable (usernames, IPs, invoice identity). GDPR **Art. 32**
explicitly lists encryption as a security measure.
**Technical argument:**
- Peergos is designed so the **server is an adversary** for content and
most metadata.
- EU-based **independent pentests** (Cure53 DE, ROS NL) evaluated that
design.
- Processing location for **self-host** is *your* ns1 / customer region,
not peergos.nets Germany hosting, unless you use peergos.net.
You may still need a **DPA (Art. 28)** with anyone who **processes**
personal data (even usernames, logs, billing). Ciphertext-only storage
**narrows** the DPAs technical annex (they never see PHI bodies) but
rarely deletes the contract if they run the VM.
## NATS operators
NATS is an **untrusted broker**. Content is HPKE; destinations and
subjects are in the clear. A NATS operator:
- **cannot** read message bodies if they lack endpoint private keys;
- **can** see routing metadata (who talks to which inbox, sizes, timing);
- **can** drop/delay/copy **ciphertext**.
Treat NATS like a **transit provider**: DPA/BAA depends on whether
routing metadata is personal data in your jurisdiction. Document
passthrough + HPKE in the data-flow diagram.
## What “making yourself audit-ready” means here
You are **not** buying Peergoss Cure53/ROS reports as *your* SOC 2.
You are **reusing** those public evaluations as **vendor/component
assurance** (like using an audited TLS library), then adding:
- your scope, RoPA, key-custody, inspect k-of-n, admin-history;
- evidence *your* instance ran those controls;
- contracts that match who can actually see plaintext.