SuperDRM. by SuperFile
Multi-DRM key & licence service

The licence server you own.

Widevine, FairPlay and Clear Key served from infrastructure you control. Content keys sealed under a hardware vault, every licence metered and revocable, and nothing charged per licence — because it runs on your metal.

$ curl -X POST https://api.superdrm.com/v1/keys \
    -H "Authorization: Bearer sdrm_live_…" \
    -d '{"label":"launch-film","scheme":"cbcs"}'

{ "content_id": "194341ee…",
  "systems": ["widevine","fairplay","clearkey"],
  "cpix": "/v1/cpix?k=194341ee…" }

# player posts its CDM challenge…
✓ licence issued · widevine · 93 ms · metered
$0per licence on current plans — no metered vendor in the path
~93 mslicence round trip, measured in production
106/106Apple’s FairPlay test vectors pass against our KSM — a build check, not a licence: production credentials are pending Apple
1,370content keys migrated in from a hosted DRM vendor overnight
Capabilities

Everything between your packager and the player’s CDM.

Two halves, one meter: Key Protect issues and seals content keys; the License Service answers CDM challenges under policy you set per token, per tenant, per request.

Key Protect

One key per content id, shared by every DRM system. CPIX 2 output that is field-compatible with hosted keygenerators — most packagers migrate by changing one URL.

POST /v1/keys · GET /v1/cpix

License Service

Widevine with your own signer, FairPlay built on Apple’s FPS SDK and verified against Apple’s test vectors — production credentials pending Apple — and Clear Key for tooling. PlayReady is on the roadmap and answers honestly until it is licensed.

/v1/<tenant>/license/<system>

Bring your own keys

Import keys you already hold — from a hosted vendor’s CPIX, your own KMS — and serve licences for them at zero cost, with per-request fallback to the old vendor while you migrate.

POST /v1/keys/import

Hardware vault

Content keys never rest in the clear: sealed under a KEK in a PKCS#11 HSM, a cloud KMS, or software for dev. Every sealed row records its KEK, so rotation is a re-seal job, not a schema change. And once a backend registers a hybrid X25519 + ML-KEM-768 key, the content keys it fetches never cross the network in the clear either — they arrive encapsulated to that key, so traffic recorded today cannot be opened by a quantum computer later.

SUPERDRM_VAULT = local | pkcs11 | aws-kms

Metering & live ops

One row per licence attempt — issued or refused — with security level, device hash and latency. A live event stream and console watch every grant; revoking a key or share kills playback at the next request.

/v1/usage · SSE /v1/admin/events

Attested devices NEW

TPM remote attestation as licence policy: keys are released only to machines that prove — cryptographically — they booted your exact OS image. Revoke a device and its playback dies mid-token.

policy: { attested: true }
Attested devices

Keys only for machines you trust — provably.

Hardware DRM ends where the vendor’s silicon does. Attestation extends it to appliances and managed fleets: the same boot-chain root of trust that makes mobile hardware DRM real, built from measured boot and your licence policy.

Scope, honestly: this is a key-release control for devices with a firmware TPM — kiosks, viewing rooms, managed fleets. It proves which software asked for the key. Nothing anywhere stops a camera pointed at a screen.

Enroll

The device’s TPM mints a restricted attestation key; one API call registers it. A quote from anything else verifies as exactly that — something else.

Pin the golden image

Each viewer release registers its measured-boot PCR values. A patched kernel, a swapped compositor, another OS — different measurements, no keys.

Quote over a nonce

At session start the device returns a TPM-signed quote over a single-use challenge. The verifier is native code in the licence server — no shell-outs, refusals name every failed check.

Licence under policy

policy: {attested: true} gates any system — Widevine to Clear Key. Device status is re-checked on every request, so revocation is immediate.

How it fits

Three verbs. No vendor in the middle.

SuperDRM speaks the open standards your stack already uses — CPIX 2, CENC, EME — so packagers and players integrate without SDKs.

01 · Package

Your packager asks for a key

Shaka Packager, GPAC, ffmpeg — anything that reads CPIX. The response carries KID, key and PSSH for every enabled system.

GET /v1/cpix?k=<content-id>
02 · Protect

Keys sealed, policy attached

The key is sealed under your vault’s KEK the moment it exists. Policy — hardware-secure only, HDCP, rental windows, attested devices — lives in signed licence tokens your backend mints.

POST /v1/tokens · pol: {hw, hdcp, attested…}
03 · Play

The player exchanges a challenge

Standard EME: the CDM’s challenge goes to your tenant’s licence endpoint, policy is enforced, the grant is metered, the frame decodes.

POST /v1/<tenant>/license/widevine?lt=…
Deployment

From a single box to keep-your-own-key.

The same code at every tier — what changes is where the key-encryption key lives and who can ever see it.

Standard

Your metal

  • Runs on your servers, your network
  • KEK in a PKCS#11 HSM you plug in
  • Embedded Postgres or your own
  • Ideal for staging and sovereign labs
Protected

Cloud KMS

  • KEK in a cloud KMS, never exportable
  • Licence service in a hardened enclave
  • Managed Postgres, multi-AZ
  • The recommended production tier
Sovereign planned

Keep your own key

  • Planned, not yet deployed. Today’s root key sits in a FIPS 140-2 Level 3 HSM (IBM Key Protect)
  • The design targets a Level 4 HSM service with a customer-controlled master key, so the provider cannot unwrap a content key
  • For regulated and national deployments
  • Scoped as an enterprise engagement — talk to us before you plan around it

Ships as docker compose up, a Helm chart, or a single Node service + Postgres. On-prem installs carry a signed install licence and report usage to your mothership — and every install exports and re-imports its entire state with its keys intact.