P0-5: Generate the EdDSA update-signing key #20
Labels
No labels
data-integrity
engine
platform
procurement
remote
scaffold
ui
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: Cordy/cairn-desktop#20
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Manual task. Depends on P0-1. Prerequisite for P3-7 (auto-update).
Generate the EdDSA update-signing key
Auto-update (P3-7) verifies downloads with an EdDSA/Ed25519 signature that is independent of
TLS, so a compromised web server cannot push a malicious build. Sparkle (macOS) and
WinSparkle (Windows) use the same key format and tooling, so one key serves both
platforms.
Mobile does not need this — app stores handle update integrity themselves. This is desktop-only.
generate_keysorwinsparkle-tool.repo, not CI, not the web server.
can locate is the same as a lost one.
Why it must be separate from the code-signing certificate
Two different compromises, two different keys:
binary.
If both live in the same place, compromising the website becomes sufficient to ship signed
malware to every installed client. Keeping them separate means an attacker needs the update
key and the code-signing identity. This is the whole reason the update mechanism does not
simply trust TLS.
Acceptance criteria
P0-5: Update-signing key, Google Play org account, mobile reposto P0-5: Generate the EdDSA update-signing key