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

EgenskapUSB-tokenMoln-HSM
SäkerhetsnivåFIPS 140-2 Level 2FIPS 140-2 Level 3
CI/CD-integrationBegränsad (kräver fysisk anslutning)Full (API-baserad)
StartkostnadInkluderad i certifikatprisetMolnkonto + installation
Löpande kostnadIngenAzure Key Vault Premium ca 500 DKK/år inkl. 500 000 signeringar
FleranvändaråtkomstFysisk delning av enhetIAM-roller
Backup/redundansNej (förlust = återutfärdande)Automatisk
Offline-användningJaNej
RevisionsloggBegränsadFull molnloggning
NyckelstorlekVanligtvis RSA 2048/3072RSA 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:

  1. Programvaran byggs i en CI/CD-pipeline.
  2. Byggsteget anropar signtool (Windows) eller jSign (cross-platform) med referens till Key Vault-nyckeln.
  3. Signering sker via Azure API. Den privata nyckeln lämnar aldrig HSM:en.
  4. 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.