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

EgenskapUSB-tokenCloud 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 = nyutfä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 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:

  1. CI/CD-pipeline bygger programvaran.
  2. Pipeline 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. 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.