Security & data

How your data is protected.

Key-Warden runs on Microsoft Azure and is built so that vendor and customer data is encrypted in transit, encrypted at rest, and strictly segregated between vendors. Here is exactly how. For a plain-language explainer of the licensing model itself, see how licensing works.

The short version

Every connection is HTTPS. Everything stored is encrypted at rest on Microsoft Azure. Every vendor has their own signing key, sealed in Azure Key Vault and never handed out in plaintext. Every credential is scoped to a single vendor, so it can only ever reach that vendor's own data - and card details never touch our systems at all.

Your side Browser / portal Sign-in via Entra External ID (OIDC; email, Google, passkey). No API keys in the browser. Your product + SDK Embeds only the PUBLIC key. Verifies every answer's signature - offline too. Validation payload Licence ref, product, hashed fingerprint, version, time. Only. HTTPS / TLS Ed25519-signed replies valid AND denied - spoofing fails Key-Warden on Microsoft Azure API gateway (APIM) Per-vendor scoped keys. A credential reaches its own vendor's data only. Licensing functions Seats, expiry, revocation enforced server-side; admin actions audit-logged. Azure Key Vault Per-vendor Ed25519 signing keys. Plaintext private keys never leave the vault. ENCRYPTED AT REST Key-Warden Back-End Licences, activations, accounts. Keys and fingerprints stored only as one-way hashes. ENCRYPTED AT REST Vendor walls Vendor A data cross-vendor reads: refused Vendor B data Existence is never disclosed across vendors. Stripe / PayPal (outside Key-Warden) Cards are processed under their PCI-DSS compliance. Card numbers never enter our systems - only the payment reference is kept. In transit: TLS + signed tokens. At rest: Microsoft-managed encryption + Key Vault. Segregation: per-vendor keys, scoped credentials, existence-hiding refusals.
The path of a licence check: encrypted transport in, signed verdict out, secrets and records sealed inside Azure behind per-vendor walls.

Encrypted in transit

All traffic - the website, the portal, the licensing API at api.key-warden.com, and the SDK's validation calls - travels over HTTPS (TLS). On top of the transport layer, every licensing answer is an Ed25519-signed token, and denials are signed too: your product verifies the signature against an embedded public key, so a tampered, spoofed, or replayed response is rejected even if the network itself were compromised.

Encrypted at rest

Licence, activation, customer, and vendor records are stored in the Key-Warden Back-End on Microsoft Azure, encrypted at rest by Microsoft-managed encryption. Cryptographic material - signing keys, API secrets, integration tokens - is held separately in Azure Key Vault. Private signing keys are not retrievable in plaintext by operators, by vendors, or by support: products embed only the public half, which cannot forge a signature.

Per-vendor segregation

Vendors run on shared, hardened Azure infrastructure; what keeps them apart is enforced at four layers. Cryptographically: every vendor has their own Ed25519 signing key, generated and sealed in Azure Key Vault - one vendor's key cannot sign licences for another's products, so even a mis-routed record could not produce a valid licence. At the gateway: API credentials are scoped to a single vendor, so a credential can only ever read or write its own licences, customers, and telemetry. In the registry: a lookup outside your own catalogue receives the same refusal whether or not the record exists - another vendor's records cannot be confirmed to exist, let alone read. In the payment vault: when you connect your own Stripe or PayPal account, those credentials are sealed with AES-256-GCM under a key derived for your vendor account alone, rooted in a vault separate from the platform's other secrets and reached only by managed identity. One vendor's derived key cannot open another's, and a sealed credential lifted out of your record and dropped into someone else's fails its authentication tag rather than decrypting.

What the registry stores

Licence keys are never stored in plaintext: the registry holds only keyed one-way hashes, and the hashing secret lives in Azure Key Vault - a copy of the stored data alone cannot recover a single licence key. Vendor API client keys are stored the same way, one-way hashed. Device fingerprints are stored as one-way SHA-256 hashes of your machineId, so no raw machine identifier ever touches the registry.

Identity and access

Sign-in uses OpenID Connect through Microsoft Entra External ID - email, Google, or a passkey you add - and the website never exposes API keys to your browser: portal calls are proxied server-side and carry a signed identity assertion. Inside each account, access is role-based (vendor superadmin and developer roles; customer owner and viewer roles), invitations are claimed only by the invited email on first sign-in, and safety guards prevent an account from ever losing its last administrator. Administrative actions are audit-logged.

Payments

Card and payment details are processed by Stripe and PayPal under their own PCI-DSS compliance. Key-Warden never stores card numbers - our records hold the payment reference needed to reconcile an invoice, nothing more. Vendors may connect their own Stripe or PayPal account, in which case checkout for their products settles directly into that account. For Stripe we accept restricted keys only: a full secret key is refused server-side, not merely discouraged, so the credential you give us can take a payment and nothing else - it cannot read your customers, issue refunds, or reach your payouts. Stored credentials are never returned to anyone, including you: there is no reveal and no recovery, only replacement.

Data minimisation

Validation calls carry only what licensing needs: a licence reference, product code, hashed device fingerprint, client version, and timestamp. No usernames, hostnames, file paths, or document contents. Source-code hardening (the obfuscation preview) runs entirely in your browser - your source is never uploaded to us or to any third party, and this site loads no third-party scripts or trackers.

What we do not do

  • We do not release private signing keys in plaintext - to anyone.
  • We do not store card or payment details on our systems.
  • We do not send your source code to third-party services.
  • We do not sell or share customer or vendor data with advertisers or data brokers.
  • We do not let one vendor's credentials see another vendor's data - or even confirm it exists.
  • We do not store licence keys, client API keys, or raw machine identifiers in plaintext - one-way hashes only.

What we necessarily process

To run the service we process the licence and activation records needed to enforce seats, expiry, and revocation, plus the contact details you give us for delivery and notices. See our Privacy notice for details, including erasure.

Customer information, privacy and GDPR

Key-Warden handles personal information in line with the Australian Privacy Principles and the principles of the GDPR: collect the minimum, use it only for licensing, keep it only as long as needed.

  • What we hold. Names, email addresses, licence and activation records, and invoices. Nothing sensitive, no card numbers, no behavioural profiles.
  • Who is responsible. When you buy from a vendor who licenses through Key-Warden, that vendor is the controller of your relationship; Key-Warden processes the licensing records on their behalf under strict per-vendor segregation. For products sold by Key-Warden directly, we are the controller.
  • Your rights. You can access and correct your details in your portal, and request a copy or the erasure of your account and its records at welcometo@key-warden.com. Erasure removes personal identifiers while preserving the anonymised records we are legally required to keep (for example invoice totals for tax law).
  • Retention. Licensing records live for the life of the licence plus the statutory retention period for financial records; they are then deleted.
  • Breach response. If an incident ever affects your data, we will notify affected accounts and the relevant authorities promptly, consistent with the Notifiable Data Breaches scheme and GDPR timelines.

Open-source notices

Key-Warden serves every asset from its own domain - nothing is loaded from public CDNs. The open-source components below are redistributed with their licence texts, which are included alongside the files.

View open-source attributions
  • intl-tel-input - international telephone input widget. Copyright © Jack O'Connor. Licensed under the MIT License (licence text).
  • javascript-obfuscator - in-browser hardening preview. Copyright © 2016-2024 Timofey Kachalov. Licensed under the BSD 2-Clause License (licence text). Runs entirely in your browser; nothing you paste is transmitted.

Reporting a vulnerability

Found something? Email welcometo@key-warden.com and we will respond promptly. Please give us a reasonable chance to fix an issue before disclosing it publicly.