-
Notifications
You must be signed in to change notification settings - Fork 8
Open
Description
Modern License Verification: RSA → Ed25519 Migration
Background:
Current licenses: <product>-<email>:<expiry>;<RSA_encrypted_blob>
- Verified by decrypting the encrypted part and comparing to the readable payload.
- Checks expiry and Thunderbird identity.
- Problem: RSA‑512 is insecure; private key can be derived → old licenses are forgeable.
Proposed Solution:
- Switch to Ed25519 signatures.
- Keep payload format unchanged (
<product>-<email>:<expiry>;<signature>). - Verification steps:
- Split at
; - Verify signature over the readable part
- Check expiry and email
- Split at
Migration Strategy:
- Dual verification: Ed25519 preferred, fallback to RSA‑512 for legacy licenses.
- Issue new licenses with Ed25519 only.
- Gradually phase out RSA‑512 by prompting users to exchange old keys.
Local License Generator Requirements:
- Standalone script for generating licenses locally.
- Fast enough for Fastspring’s execution limits (<10s).
- Uses Ed25519 signing for deterministic, secure output.
- No external dependencies.
Add-on Integration:
- New
ed25519.mjs.jsmodule handles verification. Licenser.mjs.jsupdated to use Ed25519 while keeping RSA fallback temporarily.- Fully open-source; only the public key is shipped.
Benefits:
- Secure, modern cryptography.
- Short, fixed-size signatures (~88 chars Base64).
- Backwards-compatible migration.
- Fast local generation, minimal impact on existing workflow.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels