Två vägar till säker nyckellagring
Sedan 1 juni 2023 kräver CA/Browser Forum att den privata nyckeln till alla kodsigneringscertifikat (både OV och EV) lagras på certifierad hårdvara: antingen en fysisk USB-token (FIPS 140-2 Level 2 eller CC EAL 4+) eller en molnbaserad HSM.
Valet mellan USB-token och moln-HSM beror på ditt arbetsflöde, ditt team och dina säkerhetskrav. Båda metoderna uppfyller CA/Browser Forums krav. Skillnaden ligger i det praktiska.
USB-tokens
En USB-token är en fysisk kryptoenhet, vanligtvis en Thales SafeNet 5110 CC eller en YubiKey 5, som lagrar den privata nyckeln i ett säkert chip. Nyckeln kan inte kopieras ut från enheten. Signeringen görs direkt i token.
Fördelar:
- Enkel installation: anslut token, installera drivrutinen och signera.
- Inga löpande kostnader utöver själva token (ingår vanligtvis i certifikatpriset).
- Full kontroll. Nyckeln finns fysiskt hos dig.
- Fungerar offline. Inget beroende av molntjänster.
Nackdelar:
- Bara en person kan signera åt gången (enheten måste vara fysiskt ansluten).
- Svårt att integrera i CI/CD-pipelines. Kräver en dedikerad byggserver där token alltid sitter i.
- Risk för förlust eller skada. Om token försvinner måste certifikatet återutfärdas på en ny token.
- SafeNet-programvaran blockerar signering via RDP (Remote Desktop). TeamViewer fungerar dock. Enheten måste vara fysiskt ansluten direkt till maskinen (en fysisk dator eller en virtuell maskin med USB-passthrough).
- Skalar dåligt. Om flera team behöver signera kan man köpa extra token och utfärda kopior av certifikatet på dem.
Moln-HSM
Moln-HSM som Azure Key Vault Premium, Google Cloud KMS och AWS CloudHSM lagrar nyckeln i en FIPS 140-2 Level 3-certifierad HSM i molnet. Signering sker via API-anrop. Azure Key Vault Premium används ofta för fjärrsignering och signering i pipelines. Google Cloud KMS stöder CNG/PKCS#11. AWS CloudHSM är dyrare och främst intressant för den som redan har en HSM-enhet där.
Fördelar:
- Full CI/CD-integration. Signeringskommandon kan köras i pipelines utan fysisk hårdvara.
- Åtkomstkontroll via IAM. Flera användare och tjänster kan signera med rollbaserad åtkomst.
- Revisionslogg. Alla signeringar loggas.
- Ingen risk för fysisk förlust. Molnleverantören hanterar backup och redundans.
- Högre säkerhetsnivå (FIPS 140-2 Level 3 jämfört med Level 2 för de flesta USB-token).
Nackdelar:
- Löpande kostnader. Azure Key Vault Premium kostar ca $5/nyckel/månad + per operation. AWS CloudHSM är avsevärt dyrare (ca $1,40/timme per HSM-kluster).
- Mer komplex installation. Kräver molnkonto, IAM-konfiguration och integration med signeringsverktyg.
- Beroende av molnleverantör. Om Azure/AWS har driftstopp kan du inte signera.
- Kräver nätverksåtkomst. Fungerar inte offline.
Jämförelse
| Egenskap | USB-token | Moln-HSM |
|---|---|---|
| Säkerhetsnivå | FIPS 140-2 Level 2 | FIPS 140-2 Level 3 |
| CI/CD-integration | Begränsad (kräver fysisk anslutning) | Full (API-baserad) |
| Startkostnad | Inkluderad i certifikatpriset | Molnkonto + installation |
| Löpande kostnad | Ingen | Azure Key Vault Premium ca 500 DKK/år inkl. 500 000 signeringar |
| Fleranvändaråtkomst | Fysisk delning av enhet | IAM-roller |
| Backup/redundans | Nej (förlust = återutfärdande) | Automatisk |
| Offline-användning | Ja | Nej |
| Revisionslogg | Begränsad | Full molnloggning |
| Nyckelstorlek | Vanligtvis RSA 2048/3072 | RSA 2048-4096, ECDSA P-256/P-384 |
CI/CD och automatisering
För team med automatiserade build-pipelines är moln-HSM det självklara valet. Du kan signera i GitHub Actions, Azure DevOps, GitLab CI eller Jenkins utan att ansluta fysisk hårdvara.
Ett typiskt arbetsflöde med Azure Key Vault:
- Programvaran byggs i en CI/CD-pipeline.
- Byggsteget anropar
signtool(Windows) ellerjSign(cross-platform) med referens till Key Vault-nyckeln. - Signering sker via Azure API. Den privata nyckeln lämnar aldrig HSM:en.
- Den signerade filen publiceras.
Med USB-token behövs en dedikerad byggagent (fysisk eller virtuell maskin med USB-passthrough) där token alltid sitter i. Det fungerar, men skalar dåligt och gör byggagenten till en enskild felpunkt.
Kortfattat
USB-token räcker för manuella releaser och har inga löpande kostnader. Moln-HSM behövs för CI/CD och team på flera orter. Det vanliga är att börja med USB-token och byta till moln-HSM vid automatisering.
När väljer du vad?
Välj USB-token om:
- Du signerar manuellt och sällan (t.ex. månatliga releaser).
- Du har ett utvecklarteam på en plats.
- Du vill minimera löpande kostnader.
- Du behöver signera offline.
Välj moln-HSM om:
- Du har en CI/CD-pipeline som behöver signera automatiskt.
- Flera team eller platser behöver kunna signera.
- Du behöver revisionslogg och åtkomstkontroll.
- Du redan använder Azure, AWS eller Google Cloud.
Kom igång
Vi har detaljerade installationsguider för de tre stora molnplattformarna:
Behöver du hjälp att välja rätt lösning? Kontakta oss. Vi ger förutsättningslösa råd.