Två vägar till säker nyckellagring
Sedan 1 juni 2023 kräver CA/Browser Forum att alla Code Signing-certifikat (både OV och EV) lagrar den privata nyckeln 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 cloud 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. Signering sker direkt på token.
Fördelar:
- Enkel installation. Anslut USB, installera drivrutin, signera.
- Inga löpande kostnader utöver själva token (vanligtvis inkluderad 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 build-maskin med token permanent ansluten.
- Risk för förlust eller skada. Om token försvinner måste certifikatet utfärdas på nytt med en ny token.
- SafeNet-mjukvaran blockerar signering via RDP (Remote Desktop). TeamViewer fungerar dock. Enheten måste vara direkt fysiskt ansluten till maskinen (antingen fysiskt OS eller passthrough till virtuell maskin).
- Skalar dåligt. Om flera team behöver signera kan man köpa extra USB-enheter och utfärda kopior av certifikatet till dem.
Cloud HSM
Cloud HSM-lösningar 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 är den mest använda lösningen för fjärråtkomst och pipeline-signering. Google Cloud KMS stöder CNG/PKCS#11. AWS CloudHSM är dyrare och mest relevant om man 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-tokens).
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 | Cloud 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 = nyutfä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 cloud HSM det uppenbara valet. Du kan signera i GitHub Actions, Azure DevOps, GitLab CI eller Jenkins utan att ansluta fysisk hårdvara.
Typiskt arbetsflöde med Azure Key Vault:
- CI/CD-pipeline bygger programvaran.
- Pipeline 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.
- Signerad binär publiceras.
Med USB-token krävs en dedikerad build-agent (fysisk eller VM med USB-passthrough) som alltid har token ansluten. Det fungerar, men skalar dåligt och introducerar en single point of failure.
Kortfattat
USB-token är enkelt och billigt för manuella releaser. Cloud HSM är nödvändigt för CI/CD och distribuerade team. De flesta börjar med USB-token och byter till Cloud HSM när de automatiserar.
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 cloud 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 alla tre stora molnplattformar:
Behöver du hjälp att välja rätt lösning? Kontakta oss. Vi ger oförpliktande rådgivning.