Skip to content

Compliance mapping

Compliance mapping

Read this first — what a library can and can't do

No software package is "SOC 2 certified" or "ISO 27001 certified." Those certify an organization's management system and a service's operation — people, process, and evidence over time — not source code. HIPAA and PCI-DSS likewise apply to entities handling PHI or cardholder data, not to a dependency.

What Cbox ID does is provide the technical controls those frameworks require, implemented correctly and testably, plus the evidence artifacts (audit logs, an SBOM, a conformance matrix, a threat model) an auditor asks for. It moves a large part of the control burden off your plate — but you, the operator, still own the organizational controls (policies, training, vendor management, retention schedules, incident response, a DPIA, and an actual audit).

So the honest framing: adopting Cbox ID puts the identity-and-access, cryptography, and audit-logging controls of these frameworks "in scope and satisfied" at the technical layer. The tables below map each framework's relevant requirements to the feature that addresses it, and end with what remains yours.

SOC 2 (Trust Services Criteria)

TSC Requirement Cbox ID control
CC6.1 Logical access controls RBAC, relationship/entitlement authorization, deny-by-default tenant isolation
CC6.1 Encryption of credentials/keys at rest XChaCha20-Poly1305 AEAD for all secrets; signing keys sealed
CC6.2 Registration & authorization of users Explicit provisioning, SCIM, invitation flow; no silent account merge
CC6.3 Least privilege / role changes Roles + permissions, org-scoped, cross-tenant write guard
CC6.6 Authentication (MFA) Passwords (hashed, with an enforced policy; breach-screen is contract-only), TOTP (replay-safe), WebAuthn/passkeys (UV-enforced). Step-up re-auth is the app's decision, on auth_time/amr/acr signals this package records
CC6.7 Transmission protection Bearer over TLS; SSRF-guarded webhooks; SAML/OIDC signature verification (HSTS is set by the app's security-headers middleware)
CC6.8 Prevent unauthorized software SBOM, dependency audit, license gate in CI
CC7.1–7.2 Monitoring / anomaly detection Hash-chained audit log (framework); request risk-scoring is an app-layer add-on (e.g. cboxdk/laravel-risk, shipped by the host app — not this package)
CC7.2 Security event logging Audit trail of auth, provisioning, key, and admin events
CC8.1 Change management CI gates (lint, PHPStan max, tests, audit, license, SBOM), conventional commits, CHANGELOG. Commit signing is not in force — do not present it as a control

ISO/IEC 27001:2022 (Annex A controls)

Annex A Control Cbox ID
A.5.15–5.18 Access control, identity, authentication RBAC, provisioning, MFA, session management
A.8.2 / A.8.3 Privileged & information access rights Owner/admin roles, org scoping, access-certification campaigns, Segregation-of-Duties policies
A.8.5 Secure authentication Passkeys (phishing-resistant), TOTP, hashed passwords under an enforced policy (breach screen is contract-only)
A.8.24 Use of cryptography Crypto kernel: alg allow-list (RFC 8725), AEAD at rest, key rotation
A.8.15 Logging Tamper-evident, hash-chained audit log with signed checkpoints
A.8.16 Monitoring activities Auditable security events (framework); risk-scoring pipeline at the app layer (add-on)
A.5.23 Cloud service security Self-hostable; no data leaves your infrastructure
A.8.8 Management of technical vulnerabilities composer audit, Dependabot, SAST, SBOM in CI
A.8.28 Secure coding PHPStan max, Pint, tests against real vectors, honest-crypto stance

NIS2 Directive (Art. 21 measures)

Art. 21(2) measure Cbox ID
(a) risk analysis & security policies threat model + this mapping give the technical basis
(d) supply-chain security SBOM (CycloneDX), pinned deps, license + vuln gates
(g) basic cyber hygiene / access control MFA, RBAC, least privilege, password policy, login lockout
(h) cryptography Crypto kernel, key rotation, sealed secrets
(i) HR security / access control provisioning + immediate deprovision (SCIM revokes sessions)
(j) MFA & secured comms passkeys/TOTP; signed/verified federation (HSTS added by the app)
incident handling / reporting audit trail + security event log as forensic evidence

GDPR (data protection by design)

Article Requirement Cbox ID
Art. 25 Data protection by design & default deny-by-default tenancy, minimal token claims, self-hosted
Art. 32 Security of processing AEAD at rest, MFA, alg allow-list, audit log, SSRF/rate-limit defenses
Art. 30 Records of processing audit trail of identity/access events
Art. 33 Breach detection & notification tamper-evident log surfaces anomalies for your 72h clock (plus app-layer risk-scoring, if added)
Art. 22 Automated decisions applies at the app layer, not this framework — if the host adds risk-scoring (e.g. cboxdk/laravel-risk) it is explainable (reasons breakdown) and ships in monitor mode; see that package's docs
Art. 17 Right to erasure SubjectEraser — one transactional call that removes the subject's credentials, sessions, grants, memberships, role grants and vault secrets, scrubs stored payloads, pseudonymises the subject row (id kept) and tells downstream SCIM apps to delete them. See the note below.

Art. 17, honestly. SubjectEraser::erase() covers the package's own stores and returns a receipt of what it did (Security: erasure); a host adds its own stores to the same pipeline. What it does not do is rewrite the audit trail: every column of an audit entry is inside the hash chain, so past entries keep the subject's opaque id (no longer personal data once the subject row is pseudonymised) and a user.erased tombstone is appended instead. Some entries also hold an IP address or, for invitation and verification events, an email address; retaining those is a decision you document under Art. 17(3)(b)/(e), with a retention period. Platform operators are not subjects and are outside the eraser. Copies outside the package — your SIEM, webhook receivers, backups — are yours to erase.

HIPAA Security Rule (§164.312 technical safeguards)

Safeguard Cbox ID
§164.312(a)(1) Access control RBAC, unique user identity, tenant isolation
§164.312(a)(2)(i) Unique user ID opaque per-subject id
§164.312(a)(2)(iii) Automatic logoff absolute + idle session timeout
§164.312(b) Audit controls hash-chained audit log
§164.312(c) Integrity signed checkpoints detect tampering; JWT signature verification
§164.312(d) Person/entity authentication MFA, passkeys, hashed passwords under an enforced policy (breach screen is contract-only)
§164.312(e) Transmission security TLS bearer, signed federation assertions (HSTS via the app's security-headers middleware)

PCI-DSS v4.0 (relevant requirements)

Requirement Cbox ID
Req 3/4 — protect & encrypt data AEAD-sealed secrets; TLS transmission; no secret ever logged
Req 6 — secure development CI gates, SAST, dependency scanning, SBOM
Req 7 — restrict access by need-to-know RBAC, least privilege, deny-by-default
Req 8 — identify & authenticate unique IDs, MFA (8.4), hashed passwords + session management + login lockout; the breach screen (8.3) is contract-only
Req 8.3.6 password length/complexity
Req 10 — log & monitor tamper-evident audit log of all access to auth systems
Req 11 — test security tests vs real vectors; pen-test cadence is the operator's to schedule

What remains yours (the organizational controls)

The package cannot supply these — they are process, not code:

  • Policies & governance: infosec policy, access-review cadence, onboarding/offboarding, vendor management.
  • Data retention & DPIA: define retention for audit logs (and risk data, if you add app-layer risk-scoring); run a Legitimate Interest Assessment / DPIA (GDPR).
  • Erasure / subject-rights procedures: who may invoke SubjectEraser, how a request is verified, your own stores registered as erasure steps, and the documented Art. 17(3) decision on what the audit trail retains — see the Art. 17 note above.
  • Master-key custody and rotation schedule: where the key lives and who can read it, and when you rotate it. The package supports rotation (a versioned keyring and cbox-id:crypto:rewrap, see master key management); deciding to do it is yours.
  • Incident response: a documented plan, breach-notification workflow, and the NIS2/GDPR reporting timelines.
  • Independent assurance: a SOC 2 audit, ISO 27001 certification, HIPAA risk assessment, or PCI ROC/SAQ — performed by an assessor against your running system.
  • Penetration testing: schedule and act on a recurring third-party test.
  • Physical & network controls: hosting, egress control (the complete SSRF answer), backups, key custody of the crypto master key.

Evidence Cbox ID hands your auditor

  • This mapping, the standards conformance matrix, and the feature support matrix.
  • The security model and threat model.
  • A machine-readable CycloneDX SBOM and a passing dependency/license/vuln gate.
  • A tamper-evident audit trail exportable as forensic evidence.
  • Config that is secure by default (MFA available, deny-by-default, an enforced password policy with a 12-character floor; the app adds the breach screen).