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

EgenskabUSB-tokenCloud HSM
SikkerhedsniveauFIPS 140-2 Level 2FIPS 140-2 Level 3
CI/CD-integrationBegrænset (kræver fysisk tilslutning)Fuld (API-baseret)
StartomkostningInkluderet i certifikatprisCloud-konto + opsætning
Løbende omkostningIngenAzure Key Vault Premium ca. 500 DKK/år inkl. 500.000 signeringer
FlerbrugeradgangFysisk deling af enhedIAM-roller
Backup/redundansNej (tab = genudstedelse)Automatisk
Offline brugJaNej
Audit trailBegrænsetFuld cloud-logging
NøglestørrelseTypisk RSA 2048/3072RSA 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:

  1. CI/CD pipeline bygger software.
  2. Pipeline kalder signtool (Windows) eller jSign (cross-platform) med reference til Key Vault-nøglen.
  3. Signering sker via Azure API. Den private nøgle forlader aldrig HSM'en.
  4. 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.