Privacy, Security, and Troubleshooting

BadgeMax Pro is designed to generate and sign badges in the browser while allowing administrators to publish the resulting artifacts on their own hosting infrastructure.

Privacy Commitment

The application states:

This site never saves or sells your data.

The supplied implementation performs badge generation and cryptographic signing locally.

It does not implement an application backend that receives uploaded private keys or performs signing on behalf of the user.

Local Key Handling

Keys are generated and imported using the browser Web Crypto API.

The active key pair is held in JavaScript memory.

The private JWK is also displayed in an editable text field for export and import.

The supplied signing code does not intentionally persist private keys in browser localStorage or send them to a signing API.

External Network Requests

Some functions deliberately contact external resources.

ActionNetwork Activity
Generate a local signing keyNo signing-server request
Build a badgeLocal cryptographic operations
Embed remote logo as Data URLFetches the remote image
Verify a badgeFetches public JWKS
Use standalone verificationFetches SVG, JWKS, and assertion
Display a remote logoMay request the remote image
Display advertisingMay load external advertising resources

The supplied HTML includes advertising code.

Accordingly, the site's commitment not to save or sell user data should not be expanded into a blanket claim that no third-party requests ever occur.

Protecting Private Keys

The private signing key is the most sensitive asset in the workflow.

Recommended practices:

  • Use a trusted browser and device.
  • Avoid generating production keys on shared computers.
  • Keep private JWK backups encrypted.
  • Do not paste private keys into untrusted websites.
  • Avoid publishing private keys in source control.
  • Rotate keys if compromise is suspected.
  • Close the administrative session when finished.

Security Model

BadgeMax Pro's security model depends on:

  1. SHA-256 artwork hashing.
  2. ECDSA P-256 digital signatures.
  3. Published public keys.
  4. Signed attestation metadata.
  5. Separately hosted assertion records.
  6. Correct verification logic.
  7. Trust in the issuer and its hosting infrastructure.

What BadgeMax Pro Does Not Guarantee

A generated badge does not independently prove:

  • The issuer's legal identity
  • An external certification
  • Compliance with a regulatory standard
  • That a recipient deserves the badge
  • That an assertion has never been replaced
  • That a private key has never been compromised

These properties require additional processes or trust mechanisms.

Troubleshooting

WebCrypto Is Unavailable

Use a modern browser with Web Crypto support.

For deployed pages, use HTTPS.

The Badge Is Unverified Immediately After Generation

The built-in verifier requires the public JWKS to be reachable.

Publish the JWKS at the expected location and try again.

Key with kid Not Found

The badge's key ID does not match an entry in the published JWKS.

Check the kid field and the hosted public keys.

Public Key Mismatch

The embedded public key differs from the selected published key.

Confirm that the badge was signed with the intended key and that the correct JWKS is deployed.

Artwork Hash Mismatch

The SVG artwork may have been modified after signing.

Regenerate the badge and publish the new SVG and corresponding assertion.

Signature Verification Failed

Possible causes include:

  • Incorrect public key
  • Modified signed metadata
  • Wrong key identifier
  • Incompatible signature encoding
  • Incorrectly deployed artifacts

Assertion Fetch Failed

Confirm that the assertion URL exists and returns valid JSON.

Check HTTPS, CORS, and server permissions.

Cannot Embed Remote Logo

The remote image host may not permit cross-origin fetching.

Use Choose file to embed a local image or retain the image URL as an external reference.

Badge Image Is Missing

Check that the SVG is served with the correct MIME type.

If using a remote logo, confirm the image URL is reachable.

Copy Does Nothing

Clipboard access may be restricted by the browser.

Select and copy the embed code manually.

Badge Checkmark Opens the Wrong URL

Review the Assertion URL in the designer.

Regenerate the badge after correcting it.

Revoked Badge Still Appears Verified in the Designer

The built-in verification checks artwork integrity, signature, and JWKS matching.

It does not check the online assertion's status.

Use the standalone verifier for the currently implemented online status check.

Expired Assertion Still Appears Valid

The supplied verifier does not currently enforce exp.

Expiration metadata alone does not implement expiration policy.

Recommended Production Improvements

Before relying on BadgeMax Pro for high-assurance attestations, consider:

  1. Requiring a valid signature on every assertion.
  2. Cross-checking assertion fields against the SVG attestation.
  3. Enforcing expiration timestamps.
  4. Binding verification to a trusted issuer origin.
  5. Validating all relevant attestation and assertion fields.
  6. Providing secure key backup and rotation workflows.
  7. Reviewing remote image and data URL handling.
  8. Testing browser compatibility and Content Security Policy.
  9. Auditing SVG rendering and embedding behavior.
  10. Conducting an independent security review.

Summary

BadgeMax Pro combines visual badge design with cryptographic attestations and static-hosting support.

Its browser-based workflow allows administrators to create, sign, export, and publish badges without operating a dedicated signing backend.

For deployments where badge authenticity has important security or business consequences, the verifier and key-management procedures should be hardened and independently validated.


Did this page help you?