Chain of Custody — Cross-cloud data transfer · Transfer General
For Sergey: Drop the <div class="tg-coc-wrap">…</div> block and its <style> into the /chain-of-custody Webflow page. Every class is prefixed tg-coc-, all CSS variables live on .tg-coc-wrap, and the scoped reset never touches anything outside the wrapper — no body{}, no :root, no bare element selectors. The embedded CoC diagram (§5) uses the tg-coc-dg- sub-namespace. Remove this yellow note before publishing.
Server General / Transfer General / Chain of custody

If your auditor asked today to prove a specific file moved intact across clouds — every byte, the right keys, no tampering — what would you hand them?

Transfer General produces a cryptographically signed chain-of-custody record for every object that crosses a cloud boundary. Automatically. At transfer completion. Before anyone asks.

Record type
Signed attestation, per object
Signing
ECDSA P-384 · FIPS 140-2 L2
Verification
Offline · CSP-native KMS
The labor cost

Cross-cloud migrations consume engineers' weeks — and the evidence package is built by hand, after the fact, every time.

Moving regulated data between clouds isn't the hard part. The hard part is what happens before and after: validating the transfer, assembling proof from two sets of cloud logs, and producing a defensible record for your auditor. This is engineering work that doesn't ship product.

01 · Migration

Engineer-hours per migration

Custom scripts, hash verification harnesses, retry logic, log scraping. Each cross-cloud migration project is a small bespoke build.

02 · Audit prep

Evidence assembly per cycle

Pulling source logs from one cloud, destination logs from another, reconciling them by timestamp, packaging the result for the auditor. Quarter after quarter.

03 · Findings

Audit finding remediation

When the evidence package doesn't satisfy the auditor, engineers stop their roadmap to produce supplementary records. Weeks lost per finding.

Calculators · Build vs. buy
Calculate the cost for your team.
Estimate engineer hours, audit prep cycles, and total cost of ownership for your cloud configuration.
Open the calculator
The forensic gap

Cloud providers log operations. They don't log evidence.

Cloud providers do record transfer events within their own boundaries. AWS records ETags and checksums. GCP records crc32c and MD5 hashes. Azure records its own metadata. These records exist because the cloud provider needs them to operate the service — not because they're built to satisfy your auditor.

Three problems make these logs unsuitable as cross-cloud chain-of-custody evidence:

They're not designed to be evidence. Cloud audit logs capture what their own services need for diagnostics and billing. They aren't structured around the questions an auditor will ask, and they aren't signed in a way that proves they haven't been altered after the fact.

They're not immutable by default. Most cloud audit logs can be deleted, redacted, or have their retention shortened by a privileged user. An auditor evaluating evidence asks "could this have been edited?" — and for default cloud logs, the answer is yes.

Nothing links source to destination across the cloud boundary. The source cloud knows it sent something. The destination cloud knows it received something. No single record cryptographically connects the two — proving they're the same object, byte for byte, under the same encryption keys, signed by an independent party.

Default cloud logs

Operational records

Built for diagnostics and billing. Mutable by default. Two separate systems on two separate clouds, with no single record linking them. Format and retention vary by provider — may or may not satisfy an auditor.

  • Built for the provider's operations, not your audit
  • Deletable, redactable, retention-adjustable
  • Two disconnected log systems per transfer
  • No byte-for-byte hash linkage
Transfer General attestation

One signed record per object

Built for evidence. Cryptographically signed by Server General. Written to immutable storage. Covers the full cross-cloud journey in a single canonical payload, independently verifiable against the cloud provider's KMS.

  • Designed around the questions auditors ask
  • Written to immutable, tamper-evident storage
  • One record links source hash to destination hash
  • Signed by an independent party — Server General
The record of truth

One signed record per object — covering the full cross-cloud journey.

Transfer General produces a single cryptographically signed attestation per transferred object. Source and destination paths, hashes proving byte-for-byte integrity, the encryption keys used, the cloud accounts involved, the time of transfer, and Server General's signature certifying the transfer was complete and intact.

View the full sample report
attestations/f6d8e1ab/0001.json
Verified
tg_object_idf6d8e1ab-3c47-4e92-b81f-9a3c2d
sources3://phi-prod/records/patient-2847.enc
destinationgs://analytics-prod/phi/patient-2847.enc
source_sha256e3b0c442 98fc1c14 9afbf4c8 996fb924 27ae41e4 649b934c a495991b 7852b855
dest_sha256e3b0c442 98fc1c14 9afbf4c8 996fb924 27ae41e4 649b934c a495991b 7852b855
integrityMATCH — byte-for-byte identical
transferred_at2026-04-15T09:22:05.119Z
signing_algoECDSA P-384 / SHA-256 / DER
kms_key_refprojects/customer/keys/ask-prod-v1
compliance_mapHIPAA §164.312(c)(1)(2)
signatureMEUCIQDx9mYq7K4n2pB8vW… (DER-encoded)
Signed · Immutable · Chain-of-custody complete
Live sample · /attestation Open full report
The mechanism

Two parallel paths. One integrity anchor.

Transfer General runs two paths in parallel. The data path moves the object. The evidence path captures everything that happens to it. They meet at one cryptographic event — and that event is what makes the chain hold.

Chain of custody · end-to-end

Two parallel paths · One integrity anchor · One signed record
Data path
Evidence path
Integrity anchor
Attestation
Data path · 4 buckets · 3 hops · hop-by-hop deletion
Source
Customer source bucket
plaintext object
Phase 1
Hash + Encrypt source SHA-256 computed
KMS encrypt (DEK)
object encrypted
Staging
Source-side staging
encrypted obj
+ encrypted DEK
+ source hash
Phase 2
Cross-cloud transit encrypted throughout
no KMS call this hop
Landing
Destination-side landing
encrypted obj
+ encrypted DEK
+ source hash
Phase 3
Decrypt + Verify KMS decrypt (DEK)
recompute SHA-256 inline
compare to source hash
Integrity anchor hash match = gate to Destination write
Destination
Customer destination bucket
plaintext object
(byte-for-byte intact)
Evidence path · real-time · backed by immutable storage
Recording · every meaningful event written in real time · tamper-evident, append-only
obj.detected
src.hash.computed
kms.dek.generated
obj.encrypted
staging.write.ok
landing.receive.ok
kms.dek.unwrapped
hash.match ✓
dest.write.ok
Attestation · signed once, after Destination write confirms
Signed with SG ASK (Server General's Attestation Signing Key) · ECDSA P-384 / SHA-256 / DER · FIPS 140-2 Level 2
S1
Canonical payload assembled
S2
Signing input computed
S3
SG KMS Sign called
S4
Signature received + WAL write
S5
WORM record written · chain complete
DEK (customer's data encryption key) protects the payload.  ASK (Server General's signing key) signs the evidence.  Two separate key systems — neither can do the other's job.
The data path

Source → Staging → Landing → Destination.

The object moves through four buckets in three hops. Each hop is confirmation-gated; once the next bucket confirms receipt, Transfer General deletes the object from the prior bucket. The pipeline is serverless. The object is encrypted with your DEK from the moment it leaves Source — and Server General never has plaintext access while it's in transit.

The evidence path

Every event written as it happens.

At every meaningful event — read, hash, encrypt, transfer, decrypt, verify, write — Transfer General writes a record to immutable storage in real time. At the Landing bucket, the object is decrypted and the hash is recomputed inline. The hash comparison is the gate that permits the Destination write. After the write confirms, Transfer General signs the final attestation with its Attestation Signing Key.

Independent verification

Auditors verify the attestation against the cloud provider — without contacting Server General.

Every attestation can be verified two ways. The portable method works offline using standard cryptographic libraries. The authoritative method uses the cloud provider's own KMS to confirm the signature — producing a cloud-issued verification receipt suitable for formal compliance proceedings.

01 Portable

Offline ECDSA verification

Use the bundled PEM and Server General's published public key. Verify with any standard library — openssl dgst -sha256 -verify, Python cryptography, Java Signature. Works without contacting Server General.

Suitable for long-term archival. Each verifier independently establishes trust in the published public key before relying on the verification.

02 Authoritative

CSP-native verification

Call the cloud provider's KMS Verify API against the attestation's signing key ID, with the canonical payload. Produces a cloud-issued verification receipt that is independent of Server General.

Legally defensible. Required for formal compliance proceedings and regulatory inquiries.

Where this fits

What Transfer General satisfies, and where.

Chain-of-custody attestation maps directly to the integrity, audit, and verification controls in the major compliance regimes regulated organizations operate under.

HIPAA / HITECH

Integrity controls for ePHI in motion

45 CFR § 164.312(c)(2)

The HIPAA Security Rule requires covered entities to implement electronic mechanisms to corroborate that ePHI has not been altered or destroyed in an unauthorized manner. The signed attestation is that mechanism — cryptographic evidence that ePHI moved between clouds byte-for-byte intact.

FedRAMP / FISMA

Software & information integrity

NIST 800-53 SI-7

Federal systems require integrity verification of information being transmitted. The hash-match verification at the Landing bucket, combined with the FIPS 140-2 Level 2 signing operation, satisfies the integrity verification requirement at the technical level required for ATO.

SOC 2 Type II

Processing integrity

PI1 — Processing integrity

SOC 2 evaluates whether system processing is complete, valid, accurate, timely, and authorized. The hash-match proves completeness and accuracy. The signed attestation, with timestamps and authorization metadata, demonstrates the rest.

Ready when the auditor asks

This is what your auditor sees — for every object, automatically.

Talk to an engineer about your cloud configuration, or open the sample attestation to see the exact record your team will hand off.