Hvad er code signing?
Code signing er digital signering af software: programmer, installere, drivere, apps og scripts. Signaturen beviser to ting for modtageren, nemlig hvem der har udgivet koden, og at den ikke er ændret så meget som én bit, siden den blev signeret. Teknisk bygger det på et digitalt certifikat udstedt af en betroet Certificate Authority, hvor den private nøgle bruges til at signere en hash af koden. Styresystemer og browsere håndhæver det kontant: Usigneret software udløser advarsler fra Windows SmartScreen og macOS Gatekeeper, og i mange virksomhedsmiljøer blokeres den helt.
Hvordan virker code signing?
Udgiveren beregner en kryptografisk hash af softwaren og signerer den med sin private nøgle. Certifikatet med den tilhørende offentlige nøgle pakkes sammen med signaturen. Når en bruger installerer softwaren, verificerer styresystemet både signaturen og certifikatkæden op til en betroet rod. Et vigtigt element er timestamping: En uafhængig tidsstemplingstjeneste bekræfter, hvornår signeringen fandt sted. Dermed forbliver signaturen gyldig, selv efter certifikatet udløber, fordi det afgørende er, at certifikatet var gyldigt på signeringstidspunktet. Uden timestamp skulle al udgivet software gensigneres, hver gang certifikatet fornys, og det hænger tæt sammen med resten af certifikatets livscyklus.
Hvorfor skal nøglerne ligge i et HSM?
En code signing-nøgle er et af de mest attraktive mål for angribere: Med den kan de udgive malware, der ser ud som om den kommer fra jer, med gyldig signatur og det hele. Flere kendte supply chain-angreb er startet netop med stjålne signeringsnøgler. Derfor har CA/Browser Forum siden juni 2023 krævet, at private nøgler til offentligt betroede code signing-certifikater genereres og opbevares i certificeret hardware, altså et HSM eller en tilsvarende hardwareenhed. Nøglen kan dermed ikke kopieres fra en udviklermaskine eller en byggeserver, den kan kun bruges gennem modulet. Center for Cybersikkerhed (CFCS) fremhæver generelt beskyttelse af softwareforsyningskæden som et centralt indsatsområde for danske virksomheder.
Code signing i jeres udviklings-pipeline
I moderne udvikling sker signeringen ikke manuelt, men som et automatiseret trin i CI/CD-pipelinen: Byggeserveren sender hashen til en signeringstjeneste, der udfører operationen mod HSM'et og logger hvem der signerede hvad og hvornår. Det giver både hastighed og sporbarhed, men kræver stram adgangskontrol, så et kompromitteret byggejob ikke kan signere vilkårlig kode. Governance omkring signering hører hjemme i jeres samlede PKI, på linje med TLS- og e-mailcertifikater. Hvordan I får hele kæden på plads, fra certifikatvalg over HSM til pipelineintegration, gennemgår vi i e-bogen PKI og HSM i praksis.
Sådan hjælper MI Support IT
Vi har mangeårig specialisterfaring med enterprise-PKI og nøglebeskyttelse og hjælper jer med at vælge de rette code signing-certifikater, opfylde hardwarekravene og integrere signeringen sikkert i jeres pipeline. Læs mere under PKI Management, eller kontakt os for en uforpligtende snak.