To veje til sikker nøgleopbevaring
Siden 1. juni 2023 kræver CA/Browser Forum, at alle Code Signing-certifikater (både OV og EV) opbevarer den private nøgle på certificeret hardware: enten en fysisk USB-token (FIPS 140-2 Level 2 eller CC EAL 4+) eller en cloud-baseret HSM.
Valget mellem USB-token og cloud HSM afhænger af din workflow, dit team og dine sikkerhedskrav. Begge tilgange opfylder CA/Browser Forum-kravene. Forskellen ligger i praktisk brug.
USB-tokens
En USB-token er en fysisk kryptoenhed, typisk en Thales SafeNet 5110 CC eller en YubiKey 5, der opbevarer den private nøgle i en sikker chip. Nøglen kan ikke kopieres ud af enheden. Signering sker direkte på tokenen.
Fordele:
- Simpel opsætning. Tilslut USB, installér driver, signér.
- Ingen løbende omkostninger ud over selve tokenen (typisk inkluderet i certifikatprisen).
- Fuld kontrol. Nøglen er fysisk hos dig.
- Virker offline. Ingen afhængighed af cloud-tjenester.
Ulemper:
- Kun én person kan signere ad gangen (enheden skal fysisk tilsluttes).
- Svært at integrere i CI/CD pipelines. Kræver en dedikeret build-maskine med tokenen tilsluttet permanent.
- Risiko for tab eller beskadigelse. Hvis tokenen mistes, skal certifikatet genudstedes med en ny token.
- SafeNet-softwaren blokerer signering over RDP (Remote Desktop). TeamViewer fungerer dog. Enheden skal være direkte fysisk forbundet til maskinen (enten fysisk OS eller passthrough til virtuel maskine).
- Skalerer dårligt. Hvis flere teams skal signere, kan man tilkøbe ekstra USB-enheder og genudstede kopier af certifikatet til dem.
Cloud HSM
Cloud HSM-løsninger som Azure Key Vault Premium, Google Cloud KMS og AWS CloudHSM opbevarer nøglen i en FIPS 140-2 Level 3 certificeret HSM i skyen. Signering sker via API-kald. Azure Key Vault Premium er den mest anvendte løsning til fjernadgang og pipeline-signering. Google Cloud KMS understøtter CNG/PKCS#11. AWS CloudHSM er dyrere og mest relevant, hvis man allerede har en HSM-enhed der.
Fordele:
- Fuld CI/CD-integration. Signeringskommandoer kan køre i pipelines uden fysisk hardware.
- Adgangskontrol via IAM. Flere brugere og services kan signere med rollebaseret adgang.
- Audit trail. Alle signeringer logges.
- Ingen risiko for fysisk tab. Cloud-provideren håndterer backup og redundans.
- Højere sikkerhedsniveau (FIPS 140-2 Level 3 vs Level 2 for de fleste USB-tokens).
Ulemper:
- Løbende omkostninger. Azure Key Vault Premium koster ca. $5/nøgle/måned + per operation. AWS CloudHSM er væsentligt dyrere (ca. $1.40/time per HSM-klynge).
- Mere kompleks opsætning. Kræver cloud-konto, IAM-konfiguration og integration med signeringsværktøjer.
- Afhængighed af cloud-provider. Hvis Azure/AWS har nedetid, kan du ikke signere.
- Kræver netværksadgang. Fungerer ikke offline.
Sammenligning
| Egenskab | USB-token | Cloud HSM |
|---|---|---|
| Sikkerhedsniveau | FIPS 140-2 Level 2 | FIPS 140-2 Level 3 |
| CI/CD-integration | Begrænset (kræver fysisk tilslutning) | Fuld (API-baseret) |
| Startomkostning | Inkluderet i certifikatpris | Cloud-konto + opsætning |
| Løbende omkostning | Ingen | Azure Key Vault Premium ca. 500 DKK/år inkl. 500.000 signeringer |
| Flerbrugeradgang | Fysisk deling af enhed | IAM-roller |
| Backup/redundans | Nej (tab = genudstedelse) | Automatisk |
| Offline brug | Ja | Nej |
| Audit trail | Begrænset | Fuld cloud-logging |
| Nøglestørrelse | Typisk RSA 2048/3072 | RSA 2048-4096, ECDSA P-256/P-384 |
CI/CD og automatisering
For teams med automatiserede build pipelines er cloud HSM det oplagte valg. Du kan signere i GitHub Actions, Azure DevOps, GitLab CI eller Jenkins uden at tilslutte fysisk hardware.
Typisk workflow med Azure Key Vault:
- CI/CD pipeline bygger software.
- Pipeline kalder
signtool(Windows) ellerjSign(cross-platform) med reference til Key Vault-nøglen. - Signering sker via Azure API. Den private nøgle forlader aldrig HSM'en.
- Signeret binær publiceres.
Med USB-token kræver det en dedikeret build-agent (fysisk eller VM med USB-passthrough), der altid har tokenen tilsluttet. Det fungerer, men skalerer dårligt og introducerer et single point of failure.
Kort sagt
USB-token er hurtigt og billigt til manuelle releases. Cloud HSM er nødvendigt for CI/CD og distribuerede teams. De fleste vælger USB-token til at starte med og skifter til Cloud HSM, når de automatiserer.
Hvornår vælger du hvad?
Vælg USB-token hvis:
- Du signerer manuelt og sjældent (f.eks. månedlige releases).
- Du har ét udviklerteam på ét sted.
- Du vil minimere løbende omkostninger.
- Du har brug for at signere offline.
Vælg cloud HSM hvis:
- Du har en CI/CD pipeline, der skal signere automatisk.
- Flere teams eller lokationer skal kunne signere.
- Du har brug for audit trail og adgangskontrol.
- Du allerede bruger Azure, AWS eller Google Cloud.
Kom i gang
Vi har detaljerede opsætningsguides til alle tre store cloud-platforme:
Har du brug for hjælp til at vælge den rigtige løsning? Kontakt os. Vi rådgiver uforpligtende.