- Key Takeaways
- Hur kodsignering fungerar
- Kodsigneringscertifikat: Offentligt betrodda kontra självsignerade
- Varför tidsstämpling är viktigt
- CA/B-forumets grundkrav: Regeln för hårdvarulagring
- Kodsignering och postkvantkryptografi
- Vanliga fall
- Bästa praxis för kodsignering
- Hur krypteringskonsulting hjälper
- Vanliga frågor om partihandel med mat och dryck
- Skriv under med självförtroende
Kodsignering är praxisen att använda en digital signatur för att bevisa att en programvara, firmware, skript eller körbar fil kommer från en specifik utgivare och inte har ändrats sedan den signerades.
Kodsignering använder en privat nyckel och en kodsigneringscertifikat att bifoga en digital signatur till programvara innan den distribueras. När en användare installerar koden verifierar deras operativsystem signaturen för att bekräfta utgivarens identitet och att koden inte har manipulerats. Det är den primära mekanismen för förtroende i modern programvarudistribution.
Key Takeaways
- Kodsignering bevisar programvarans författarskap och integritet med hjälp av en privat nyckel som innehas av utgivaren och ett kodsigneringscertifikat utfärdat av en betrodd certifikatutfärdare.
- CA/Browserforumet kräver att privata nycklar för kodsignering lagras på hårdvarumöten. FIPS 140-2 Nivå 2 (eller FIPS 140-3 nivå 2) eller Common Criteria EAL 4+, gäller från och med 1 juni 2023.
- Tidsstämpling (RFC 3161) håller en signatur giltig efter att signeringscertifikatet har löpt ut, genom att bevisa när koden signerades.
- SHA-256 är den nuvarande grundläggande hashalgoritmen; SHA-1 är föråldrad och avvisad av moderna plattformar.
- Postkvantkodsignering använder ML-DSA (FIPS 204) eller SLH-DSA (FIPS 205); CNSA 2.0 siktar på exklusiv kvantresistent signering för amerikanska nationella säkerhetssystem från 2027.
Hur kodsignering fungerar
Kodsignering följer samma kryptografimönster med offentlig nyckel som alla digitala signaturer, tillämpat specifikt på programvaruartefakter.
- Generera ett nyckelpar: Utgivaren genererar ett offentligt och ett privat nyckelpar, sedan en Begäran om certifikatsignering (CSR).
- Skaffa ett certifikat: En betrodd certifikatutfärdare validerar utgivarens identitet och utfärdar ett kodsigneringscertifikat som är kopplat till den publika nyckeln.
- Hasha koden: En kryptografisk hash-funktion (vanligtvis SHA-256) producerar en sammanfattning med fast längd av programvaruartefakten.
- Skriv under hashen: Utgivarens privata nyckel krypterar hashkoden för att skapa en digital signatur. Den privata nyckeln måste lagras i en FIPS 140-2 nivå 2 (eller FIPS 140-3 nivå 2) hårdvarumodul, enligt CA/B-forumets regler.
- Paket för distribution: Originalkoden, signaturen och kodsigneringscertifikatet (som innehåller den publika nyckeln) paketeras tillsammans och distribueras.
- Verifiera vid installation: Mottagarens operativsystem hashar koden på nytt, dekrypterar signaturen med den publika nyckeln och jämför de två hasherna. En matchning bekräftar äkthet och integritet.
Om koden ändras efter signering kommer den omberäknade hashen inte att matcha, signaturen kommer att misslyckas med verifieringen och operativsystemet kommer att varna användaren eller blockera installationen.

Kodsigneringscertifikat: Offentligt betrodda kontra självsignerade
Kodsigneringscertifikat delas in i två kategorier med mycket olika förtroendeegenskaper.
| Attribut | Självsignerat certifikat | Offentligt betrott certifikat |
|---|---|---|
| Utfärdats av | Utgivaren, internt | En betrodd certifikatutfärdare (DigiCert, Sectigo, GlobalSign, etc.) |
| Lita på operativsystem/webbläsare | Inte betrodd som standard; utlöser säkerhetsvarningar | Betrott som standard; inga varningar |
| Pris | Gratis | Betald; varierar beroende på valideringsnivå |
| Valideringsnivåer | Ingen | Standard (OV), Organisationsvalidering, Utökad validering (EV) |
| Bäst för | Intern testning, utveckling, privat distribution | Offentlig programvarudistribution till slutanvändare |
| Krav på lagring av privata nycklar | Rekommenderas på HSM | Krävs på FIPS 140-2 nivå 2+ hårdvara sedan 1 juni 2023 |
Extended Validation (EV)-certifikat har de strängaste identitetskontrollerna och ger signerad programvara ett omedelbart rykteshöjande med Microsoft SmartScreen och andra applikationsryktessystem.
Varför tidsstämpling är viktigt
Tidsstämpling kopplar en betrodd tidspost till signaturen vid signeringsögonblicket, så verifieringen förblir giltig även efter att kodsigneringscertifikatet har löpt ut.
Kodsigneringscertifikat har vanligtvis en giltighetstid på ett till tre år. Utan en tidsstämpel behandlas signaturen som ogiltig när certifikatet löper ut och användarna ser säkerhetsvarningar, trots att koden signerades legitimt medan certifikatet var aktivt. En tidsstämpel från en betrodd Timestamp Authority (TSA) åtgärdar detta genom att kryptografiskt bevisa signeringsdatumet. Den relevanta standarden är RFC 3161.
Tidsstämpla alltid produktionskodsignaturer. Detta är en kostnadseffektiv och värdefull operation som är standardpraxis.
CA/B-forumets grundkrav: Regeln för hårdvarulagring
Eftersom Juni 1, 2023, CA/Browser Forum-kodsigneringsgrundkraven har krävt att alla privata nycklar för kodsignering, för både organisationsvaliderings- (OV) och utökade validerings- (EV) certifikat, ska lagras på hårdvara som uppfyller FIPS 140-2 Nivå 2 (eller FIPS 140-3 Nivå 2) eller Common Criteria EAL 4+Lagring av nycklar endast i programvara är inte längre tillåtet för offentligt betrodd kodsignering.
Godkända förvaringsalternativ inkluderar:
- Hårdvarusäkerhetsmoduler (HSM)
- Molnbaserade HSM-tjänster
- USB-baserade hårdvarutokens som uppfyller de nödvändiga certifieringarna
Denna regel riktade sig direkt mot högprofilerade försörjningskedjeattacker såsom Solarwinds (2020), där komprometterade signeringsnycklar användes för att distribuera trojanska Orion-uppdateringar till tusentals organisationer. Att förvara nycklar i manipulationssäker hårdvara gör nyckelstöld betydligt svårare.
Kodsignering och postkvantkryptografi
Signerad kod behöver ofta förbli verifierbar i åratal eller årtionden, firmware i en industriell enhet, en operativsystemversion, en signerad drivrutin, vilket gör kodsignering till en av de mest brådskande prioriteringarna efter kvantmigrering.
RSA och ECDSA-signaturer, som ligger till grund för nästan all kodsignering idag, kan förfalskas av en tillräckligt stor kvantdator som kör Shors algoritm. NIST standardiserade två kvantresistenta signaturalgoritmer i augusti 2024:
- ML-DSA (FIPS 204), baserat på CRYSTALS-Dilithium
- SLH-DSA (FIPS 205), baserat på SPHINCS+
Den amerikanska NSA:s CNSA 2.0 riktlinjer kräver kvantresistenta algoritmer för signering av programvara och firmware i nationella säkerhetssystem, med exklusiv användning riktad från 2027Organisationer med långlivade signerade artefakter bör börja planera övergången nu, ofta via hybridcertifikat som bär både en klassisk och en postkvantumsignatur under migreringen.
Vanliga fall
Kodsignering krävs eller förväntas för de flesta programdistributionsvägar.
- Applikationsdistribution: Windows SmartScreen och macOS Gatekeeper blockerar eller varnar för osignerade körbara filer. Apples App Store och Google Play kräver signerade inlämningar.
- Programuppdateringar och patchar: Signerade uppdateringar bevisar att patchen kom från leverantören och inte har modifierats under transporten.
- Drivrutiner: Windows kräver signerade drivrutiner i kernelläge; osignerade drivrutiner blockeras helt i 64-bitars Windows.
- firmware: IoT-, industri- och fordonsfirmware är signerad för att förhindra skadlig ersättning.
- Skript och makron: PowerShell, Microsoft Office VBA-makron och liknande kan signeras för att uppfylla körningsprinciper.
- CI/CD-artefakter: Containeravbildningar, paket och byggutdata signeras i allt högre grad som en del av säkerhet i programvaruleveranskedjan (SLSA, Sigstore).
Bästa praxis för kodsignering
Sex metoder skiljer ett motståndskraftigt kodsigneringsprogram från ett som leder till en incident i leveranskedjan.
- Lagra privata nycklar i en HSM: Detta krävs för offentligt betrodd kodsignering sedan den 1 juni 2023, och det är den enskilt mest effektiva kontrollen mot nyckelstöld.
- Tidsstämpla varje produktionssignatur: Använd en betrodd TSA (RFC 3161) så att signaturer fortsätter att gälla även efter att certifikatet har löpt ut.
- Använd SHA-256 eller starkare: SHA-1 är föråldrad. Signera inte nya artefakter med SHA-1.
- Begränsa signeringsåtkomst: Kräv flerfaktorsautentisering för varje signeringsåtgärd. Logga vem som signerade vad, när och varifrån.
- Rotera tangenterna och övervaka för felaktig användning: Spåra certifikatets utgångsdatum, leta efter avvikande signeringsaktivitet och återkalla omedelbart vid eventuella komprometteringar.
- Planera PQC-övergången: Börja utvärdera ML-DSA och hybridsignering för långlivad firmware och systemprogramvara nu.
Hur krypteringskonsulting hjälper
CodeSign Secure är Encryption Consultings plattform för kodsignering för företag. Den centraliserar signeringsoperationer bakom en FIPS 140-2 nivå 2 HSM, integreras med Microsoft SignTool, jarsigner och CI / CD-rörledningar inklusive Jenkins, Azure DevOps och GitLab, och stöder tidsstämpling och post-kvantumsignaturalgoritmer allt eftersom de lanseras. Det ger säkerhetsteam fullständig revision spår av varje signeringsoperation och tillämpar CA/B-forumets hårdvarulagringsregel som standard. Stöds av ISO/IEC 27001:2022 och SOC 2-certifierade metoder.
Vanliga frågor om partihandel med mat och dryck
Vad är kodsignering, enkelt uttryckt?
Kodsignering är ett sätt för en programvaruutgivare att koppla en kryptografisk sigill till sin programvara. När en användare installerar programvaran kontrollerar deras operativsystem sigillet för att bekräfta två saker: att programvaran verkligen kommer från den utgivaren, och att ingen har ändrat den sedan den signerades. Om sigillet är brutet eller saknas varnar operativsystemet användaren eller blockerar installationen.
Vad är skillnaden mellan ett självsignerat och ett offentligt betrott kodsigneringscertifikat?
Ett självsignerat certifikat skapas av utgivaren utan extern validering och är inte som standard betrott av operativsystem eller webbläsare, så användarna ser säkerhetsvarningar vid installation. Ett offentligt betrott certifikat utfärdas av en certifikatutfärdare efter identitetsvalidering och är som standard betrott över plattformar. Offentligt betrodda certifikat krävs för att distribuera programvara till externa användare; självsignerat fungerar bra för intern testning.
Varför behöver jag tidsstämpla signerad kod?
Ett kodsigneringscertifikat upphör vanligtvis att gälla efter ett till tre år. Utan en tidsstämpel behandlas signaturen som ogiltig när certifikatet upphör att gälla, även om koden signerades medan certifikatet fortfarande var giltigt. En tidsstämpel från en betrodd RFC 3161-tidsstämpelutfärdare bevisar när koden signerades, så verifieringen fortsätter att lyckas efter att certifikatet har upphört att gälla. Tidsstämpla alltid produktionssignaturer.
Vilken hashalgoritm använder kodsignering?
SHA-256 är den nuvarande baslinjen för kodsignering. SHA-384 och SHA-512 är också acceptabla där starkare hashing föredras. SHA-1 är föråldrad och avvisad av moderna operativsystem och CA/B Forum-krav. Post-quantum-överväganden kräver inte att den ersätts. SHA-256, eftersom Grovers algoritm bara halverar den effektiva säkerhetsnivån, vilket lämnar SHA-256 med ungefär 128-bitars post-kvantsäkerhet.
Vad händer med kodsignering under postkvantkryptografi?
RSA och ECDSA kodsignering bli sårbara när en tillräckligt stor kvantdator finns, eftersom Shors algoritm kan förfalska signaturer. NIST standardiserade kvantresistenta signaturalgoritmer i augusti 2024: ML-DSA (FIPS 204) och SLH-DSA (FIPS 205). CNSA 2.0 kräver kvantresistent signering för amerikanska nationella säkerhetssystem från 2027. Organisationer bör planera hybridsignering (klassisk plus postkvant) för långlivade signerade artefakter.
Hur lagrar jag en privat nyckel för kodsignering på ett säkert sätt?
Lagra den privata nyckeln i en hårdvarusäkerhetsmodul eller hårdvarutoken som uppfyller FIPS 140-2 nivå 2 (eller FIPS 140-3 nivå 2) eller Common Criteria EAL 4+. Detta krävs av CA/Browser Forum för all offentligt betrodd kodsignering sedan den 1 juni 2023. Begränsa åtkomsten med flerfaktorsautentisering, logga varje signeringsåtgärd och exportera aldrig den privata nyckeln till disk eller överför den i programvara.
Skriv under med självförtroende
Redo att säkra dina kodsigneringsoperationer från början till slut? Utforska CodeSign Secure, eller prata till en krypteringskonsult.
- Key Takeaways
- Hur kodsignering fungerar
- Kodsigneringscertifikat: Offentligt betrodda kontra självsignerade
- Varför tidsstämpling är viktigt
- CA/B-forumets grundkrav: Regeln för hårdvarulagring
- Kodsignering och postkvantkryptografi
- Vanliga fall
- Bästa praxis för kodsignering
- Hur krypteringskonsulting hjälper
- Vanliga frågor om partihandel med mat och dryck
- Skriv under med självförtroende
