Home/Technology/Security Architecture
HIPAA §164.312 · Credential OS UAT 74/74 · AES-256-GCM

HIPAA technical safeguards. In production.

Every §164.312 technical safeguard implemented and verified, not aspirational. AES-256-GCM PHI at rest, mask-by-default API with audited reveal, RS256 passport, boot-time secret guard, row-level RBAC, and a separate PHI access log capturing actor, role, IP, and timestamp on every read. The same architecture ships in Credential OS. Honest about what we have built and honest about what HIPAA compliance also requires beyond the technical controls.

Six §164.312 controls implemented AES-256-GCM column-level encryption Mask-by-default + audited reveal
The shield

Six controls. Every clause cited.

HIPAA §164.312 lists six technical-safeguards categories. We implement all six, with implementation evidence per control. The chart on the right names each control by clause and shows the practical implementation. The evidence is real production code, verified by Credential OS UAT in June 2026 (74 of 74 passing).

Technical safeguards are necessary but not sufficient for HIPAA compliance. The administrative controls under §164.308 (workforce training, sanction policy, contingency planning) and physical controls under §164.310 (facility access, workstation security) are organizational practices that sit alongside the technical implementation. We are explicit with every customer that technical implementation is one of three categories, and a full compliance posture also requires BAAs, HIPAA-eligible hosting, and independent penetration testing.

HIPAA §164.312 technical safeguards · implementation evidence
§164.312(a)(1)
Access Control
Row-level RBAC · tenant scope
§164.312(a)(2)(iv)
Encryption / Decryption
AES-256-GCM · per-tenant DEK
§164.312(b)
Audit Controls
PHI access log · append-only
§164.312(c)(1)
Integrity
RS256 signed payloads
§164.312(d)
Person / Entity Auth
RS256 passport · short TTL
§164.312(e)(1)
Transmission Security
TLS 1.3 in transit · HSTS
Verified in Credential OS · UAT 74 / 74 passing · June 2026
What the audit log captures

Every PHI access. Append-only.

The PHI access log is what makes §164.312(b) audit controls real. Every read, write, reveal, and export of PHI writes a row. Actor, role at access, source IP, timestamp, record class, action, and the application context. Exportable for audit. Retention-policy controlled. Below is the redacted view.

phi_access_log · append-only · Credential OS production · last 4 entries · redacted
Timestamp
Actor / Record
Role
Action
Source IP
2026-06-19 14:32:08
jenkins.rprovider:8842 · TIN field
CRED-ADMIN
REVEAL
10.42.7.18
2026-06-19 14:31:55
jenkins.rprovider:8842 · masked read
CRED-ADMIN
READ
10.42.7.18
2026-06-19 14:29:43
api.svcprovider:8842 · CAQH sync
SVC-SYNC
WRITE
10.42.1.4
2026-06-19 14:28:11
batra.sprovider:8842 · profile load
CRED-OPS
READ
10.42.7.22
The capabilities

Six capabilities. Every safeguard real.

Each capability is production code, shipped in Credential OS and reused across the AR Workflow, Coding Engine, and Reporting Cloud. The architecture below is the discipline that makes the §164.312 implementation hold up under audit.

01 · PHI encryption at rest

AES-256-GCM, column-level.

Every PHI column (SSN, TIN, DOB, taxpayer-ID, sensitive credentialing fields) encrypted with AES-256-GCM. Per-tenant data-encryption keys wrapped by an envelope KEK. Authenticated encryption: tampered ciphertext fails decryption rather than returning corrupted plaintext. Disk-level encryption underneath; column-level is what protects against logical-access compromise.

02 · Mask-by-default API

Reveal endpoint, audited.

The default API response masks PHI fields with structured masks (XXX-XX-1234). Downstream consumers never accidentally log or display full values. When a caller genuinely needs the unmasked value, they call a separate reveal endpoint. Reveal requires elevated role and writes a row to the PHI access log with actor, role, IP, timestamp, justification, and record accessed.

03 · RS256 passport

Asymmetric signing, short TTL.

All inter-service calls and user sessions carry an RS256-signed JWT. RSA with SHA-256 because asymmetric signing means services verify with the public key, no shared secret distribution. Short TTL: 15 minutes for user sessions, 5 minutes for service-to-service. Refresh tokens stored separately with their own audit trail. Compromised passport has a small window.

04 · Security headers

TLS 1.3, HSTS, CSP.

TLS 1.3 in transit with HSTS preload. Content Security Policy locked to known origins. X-Frame-Options DENY. X-Content-Type-Options nosniff. Strict Referrer-Policy. Cookie attributes Secure, HttpOnly, SameSite Strict on auth cookies. Headers verified on every production deploy by the security UAT suite.

05 · Boot-time secret guard

Known-bad defaults, hard fail.

On service boot, the app checks every secret from environment variables against a small set of known-bad defaults (literal 'change-me', empty string, dev-stage JWT signing key in source control). A production-marked deploy loading a known-bad default exits with a clear log line and non-zero status. Prevents the most common cause of shipping a production deploy with a default secret.

06 · PHI access log + row-level RBAC

Append-only audit, scoped by row.

Separate append-only PHI access log captures every read, write, reveal, export with actor, role, IP, timestamp, record class, action, application context. Retention-controlled, exportable for audit. Authorization enforced at the row level in the data access layer; rows visible only if caller role and tenant scope match. Cannot accidentally see another tenant's data even by URL construction.

How a PHI read runs

Four gates. Every read audited.

From an authenticated request to a PHI field returned. Four gates run on every read. Below is the lifecycle of a single API call asking for a provider's masked TIN.

Gate 01

Passport validated.

Incoming request carries an RS256-signed JWT. Verifier checks signature against public key, expiry, audience, and tenant claim. Invalid passport returns 401 with no PHI context loaded. Valid passport populates the authenticated identity and role context for the request.

Gate 02

RBAC at the row.

Data access layer filters by the caller's tenant scope and role permission for the entity. Query never sees rows the caller is not authorized to see. URL-construction attacks return empty results, not access denial, so the schema is not enumerable. Same filter applied to read, write, reveal, export.

Gate 03

Mask by default.

Authorized row loads. Response serializer applies mask transforms to PHI fields per the configured mask policy. TIN returns XXX-XX-1234, SSN returns XXX-XX-1234, DOB returns YYYY. Unmasked values never enter the response unless the caller invoked the reveal endpoint with elevated role.

Gate 04

Log the access.

Before the response returns, a row writes to the append-only PHI access log: actor, role, source IP, timestamp, record class and ID, action (read or reveal), application context. Log is retention-policy controlled. Exportable for audit. Same log captures the writes and exports on the same record.

What auditors see

Measured posture from the architecture.

Verified by the Credential OS UAT suite. The same architecture ships across the coding engine, AR workflow, and reporting cloud. Numbers below are honest, measured posture.

6of 6
§164.312 controls implemented
All six categories of HIPAA technical safeguards have production implementation evidence: access control, encryption, audit controls, integrity, person/entity authentication, transmission security. Verified by independent test in the Credential OS UAT suite, 74 of 74 cases passing as of June 2026.
74/74
Credential OS UAT, security cases
The Credential OS UAT suite covers 74 security and HIPAA technical-safeguard cases (encryption, RBAC, audit log writes, mask boundaries, reveal authorization, passport TTL, secret guard, security headers). 74 of 74 passing in June 2026. Suite re-runs on every production deploy; failures block release.
0
Default secrets in production
The boot-time secret guard prevents any production-marked deploy from starting with a known-bad default secret. A misconfigured deploy exits at boot with a clear log line and a non-zero status code. Zero is the measured count across the active book over the last twelve months.
Common questions

Frequently asked: security architecture.

What HIPAA technical safeguards are actually implemented?
The six controls in §164.312: access control (row-level RBAC tied to authenticated identity), audit controls (the PHI access log we describe below), integrity (signed payloads with RS256), person or entity authentication (RS256 passport with short TTL), transmission security (TLS 1.3 in transit), and one operational practice that is not strictly in §164.312 but matters: mask-by-default API with audited reveal so PHI is never returned unless the caller explicitly asks for the unmasked view and the request is logged. Implemented and verified in Credential OS UAT 74 of 74 in June 2026.
What does AES-256-GCM PHI at rest mean?
Every PHI column in the database (SSN, TIN, DOB, taxpayer-ID details, sensitive credentialing fields) is encrypted at the column level using AES-256-GCM with per-tenant data-encryption keys wrapped by an envelope KEK. Disk-level encryption underneath is also on, but column-level GCM is what protects the data against a logical-access compromise. GCM provides authenticated encryption so a tampered ciphertext returns a decryption failure rather than corrupted plaintext.
Why mask-by-default on the API and what is an audited reveal?
Most calls to a credentialing or coding API do not need the full PHI value. They need to know there is a TIN, that it matches, that the SSN ends in 1234. The default API response masks PHI fields with a structured mask (XXX-XX-1234) so downstream consumers never accidentally log or display full values. When a caller genuinely needs the unmasked value (export, payer enrollment packet, audit response), they call a separate reveal endpoint. Reveal requires elevated role, writes a row to the PHI access log with actor, role, IP, timestamp, justification field, and the specific record accessed.
What is the RS256 passport?
All inter-service calls and user sessions carry an RS256-signed JWT we call the passport. RS256 (RSA with SHA-256) because asymmetric signing means services can verify a token using only the public key, no shared secret distribution. Short TTL (typically 15 minutes for user sessions, 5 minutes for service-to-service) so a compromised passport has a small window. Refresh tokens are stored separately with their own audit trail.
What is the boot-time secret guard?
On service boot, the application checks every secret loaded from environment variables against a small set of known-bad default values (the literal string 'change-me', empty string, the development-stage JWT signing key checked into source control). If any production-marked deployment loads a known-bad default, the service exits with a clear log line and a non-zero status code. The guard is what prevents the most common cause of accidentally shipping a production deploy with a default secret.
What is the PHI access log and what does it capture?
A separate, append-only log table that captures every read, write, reveal, or export of PHI. Each entry records actor (user ID), role at time of access, source IP, timestamp, the record class and ID, the action (read, write, reveal, export), and the application context (which view or endpoint triggered the access). The log is retention-policy-controlled and exportable for audit. It is what makes §164.312(b) audit controls real and not aspirational. Same audit-trail design as the coding engine and the prior-auth workflow.
How does row-level RBAC actually work?
Authorization is enforced at the row level in the data access layer, not just at the route level. A row is visible to a caller only if the caller's role and tenant scope match the row's tenant and the role has the specific permission for the entity. Practical effect: a user cannot accidentally see another tenant's data even if they construct a URL with another tenant's ID, because the data access layer filters by tenant scope before returning anything. Implemented in Credential OS across all credentialing entities.
Are technical safeguards the same as being HIPAA compliant?
No. Technical safeguards under §164.312 are one of three required categories. The other two are administrative safeguards (workforce training, sanctions, contingency planning) under §164.308 and physical safeguards (facility access, workstation security) under §164.310. We have the technical safeguards implemented and verified; full HIPAA compliance also requires Business Associate Agreements with every downstream vendor, HIPAA-eligible hosting infrastructure, an independent penetration test, and the administrative and physical controls. We are honest about that distinction with every customer.

Need the security packet for IT review? Send us the questionnaire.

We will return a security posture document covering §164.312 implementation evidence per control, the Credential OS UAT report, the architectural diagrams for PHI flow and access control, and a frank statement of what is in scope (technical safeguards), what is in progress (independent pen test, hosting BAAs), and what we cannot claim. An ASP-RCM senior partner on the call.