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.
| Action | Network Activity |
|---|---|
| Generate a local signing key | No signing-server request |
| Build a badge | Local cryptographic operations |
| Embed remote logo as Data URL | Fetches the remote image |
| Verify a badge | Fetches public JWKS |
| Use standalone verification | Fetches SVG, JWKS, and assertion |
| Display a remote logo | May request the remote image |
| Display advertising | May 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:
- SHA-256 artwork hashing.
- ECDSA P-256 digital signatures.
- Published public keys.
- Signed attestation metadata.
- Separately hosted assertion records.
- Correct verification logic.
- 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:
- Requiring a valid signature on every assertion.
- Cross-checking assertion fields against the SVG attestation.
- Enforcing expiration timestamps.
- Binding verification to a trusted issuer origin.
- Validating all relevant attestation and assertion fields.
- Providing secure key backup and rotation workflows.
- Reviewing remote image and data URL handling.
- Testing browser compatibility and Content Security Policy.
- Auditing SVG rendering and embedding behavior.
- 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.
Updated 7 days ago
