Secure Channel
Secure Channel v2 (SCv2) protects sensitive WEB chain requests by encrypting request and response payloads using hybrid RSA + AES encryption.
When It Is Used
SCv2 is required for these Consumer operations:
- login initiation (
/auth/login/initiate) - registration initiation (
/auth/register/initiate) - password reset (
/auth/password/forgot) - password change (
/auth/password/change) - sensitive security center mutations
Required Sequence
- Get public key —
GET /web/v1/consumer/secure-channel/public-key - Create session —
POST /web/v1/consumer/secure-channel/sessionwith RSA-encrypted AES keys - Send encrypted payloads — include
X-SC-Session-Idheader on requests - Close session —
POST /web/v1/consumer/secure-channel/session/closewhen the flow ends
Protocol Details
| Property | Value |
|---|---|
| Key exchange | RSA-OAEP-2048 |
| Payload encryption | AES-256-GCM |
| Session header | X-SC-Session-Id |
| Version header | X-SC-Version |
What It Does Not Replace
Secure Channel does not replace:
- portal context (
X-PORTAL-ACCESS-CODE) - JWT session state (
Authorization: Bearer) X-Client-Hashfingerprint- permission and scope checks
Common Failure Modes
| Symptom | Likely cause |
|---|---|
SECURE_CHANNEL.INVALID_PAYLOAD | Request sent in plaintext to SCv2-required endpoint |
SECURE_CHANNEL.SESSION_NOT_FOUND | Missing or stale X-SC-Session-Id |
ACCESS.TOKEN_MISSING after SC setup | Valid SC but missing JWT or portal context |