Hoppa till innehåll

47-dagarscertifikaten är på väg. Är du redo?

Agera nu →

Förstå hur kodsignering påverkar din organisation

användning av en kryptografisk hash

Den körbara filen som levereras signeras digitalt när en utvecklare kodsignerar sitt program. Konsumenter av programmet betraktar den intakta signaturen som bevis på att koden inte har ändrats mellan den tidpunkt då den överfördes och den tidpunkt då den installerades på konsumentens enhet. Denna signatur fungerar som ett slags "vaxsigill". Kodsignering innebär att man tillämpar digitala signaturer för att distribuera filer med hjälp av kryptering med offentlig nyckel.

Hur kodsignering påverkar en organisation: det avgör om din programvara installeras utan en säkerhetsvarning, om större plattformar accepterar den för distribution överhuvudtaget, och om en signeringsnyckel någonsin komprometteras, hur stor explosionsradie den komprometterade har, allt från en enda artefakt till att varje produktlinje delar en nyckel.

Key Takeaways

  • Kodsignering är inte valfritt för distribution på de flesta större plattformar; det är en förutsättning som de flesta appbutiker och operativsystem tillämpar innan de accepterar programvara överhuvudtaget.
  • CA/Browser Forums faktiska HSM-baslinje för offentligt betrodda kodsigneringscertifikat är FIPS 140-2 Nivå 2 eller Common Criteria EAL 4+, gällande sedan den 1 juni 2023. Vissa plattformar överskrider detta minimum med nivå 3-hårdvara, men nivå 2 är det kompatibla golvet, inte en otillräcklig genväg.
  • För den fullständiga attackytan för mjukvaruleveranskedjan som detta passar in i, se Kodsignering 101: Lås ner din programvaruleveranskedja.

Behov av kodsignering

Idag är internet det primära sättet för distribuering, åtkomst och användning av programvara – nästan varje applikation på din dator har förmodligen laddats ner online. Den utbredda användningen av detta medium har också ökat risken för kriminell verksamhet.

Till exempel kan hackare och internetbrottslingar stjäla den körbara filens källkod, lägga till skadlig kod i den och sedan göra programvaran tillgänglig för online-sökning och distribution. Naturligtvis skulle skadlig kod infektera alla användare som laddade ner och installerade filen.

Kodsignering förhindrar att detta inträffar. Ditt operativsystem förhindrar att installationen av program fortsätter utan att först verifiera att det finns ett kodsigneringscertifikat när du laddar ner och installerar det. Användaren informeras om ett certifikat från en betrodd leverantör saknas vid denna tidpunkt och kan bestämma om de vill fortsätta med installationen eller inte.

Kodsigneringsarbete

  1. För utvecklare

    Skaparen måste först skapa en speciell privat nyckel som kan användas för att kryptera informationen. Enligt teorin bakom kryptografi med publik nyckel är ett privat-publik nyckelpar en samling krypteringstekniker som kan användas för kryptering och dekryptering. Efter att nyckelparet har skapats skickas den publika nyckeln till en certifikatutfärdare (CA), en välrenommerad organisation som utfärdar certifikat.

    CA bekräftar utvecklarens legitimitet innan deras publika nyckel bifogas ett digitalt signerat certifikat, utvecklarens bevis på att de är den rättmätiga ägaren av nyckeln. Utvecklaren som begärde certifikatet får tillbaka den publika nyckeln och certifikatet från CA.

    digitalt signerat certifikat
  2. För konsumenten

    Innan ett program installeras är de flesta operativsystem konfigurerade för att kontrollera om det finns ett kodsigneringscertifikat. När en installation begärs verifierar operativsystemet först certifikatets giltighet innan sammanfattningen dekrypteras med en offentlig nyckel från certifikatutfärdaren.

Ändringar gjorda för programvaruutveckling

Ett objekt (dokument, fil, skript, bibliotek etc.) som används under programvaruutvecklingsprocessen kallas en mellanliggande artefakt. Dessa artefakter bör signeras under hela utvecklingscykeln för att förhindra modifiering av någon annan än den auktoriserade skaparen.

Utvecklare kan modifiera en fil eller ett skript i sin utvecklingsmiljö, kodsignera det och sedan spara den signerade artefakten i sitt arkiv för framtida bruk. Dessa mellanliggande artefakters kodsignatur hjälper till att förhindra hackare från att introducera oönskade komponenter under hela byggprocessen. Många olika komponenter används i moderna programvaruutvecklingsmetoder.

Ett betydande intrång kan inträffa om skadlig kod infiltrerar någon av dessa komponenter. Det är viktigt att era mjukvaruutvecklingsteam tar hänsyn till detta. Era mjukvaruutvecklingsteam måste kodsignera alla mellanliggande artefakter som de använder för att skapa programvara som ett resultat av detta.

Fördelar med kodsignering

  • Hjälper till att autentisera utvecklarens identitet och främjar förtroende på båda sidor i transaktionen.
  • Ger bevis på att programvaran inte har manipulerats eller påverkats och att den konsumeras på det sätt den var avsedd att konsumeras.
  • Tillåter utvecklare att distribuera på fler plattformar – med tanke på att större plattformar kräver kodsignering före publicering.

Lösning för företagskodsignering

Få en lösning för alla dina behov av kodsignering och kryptografi för mjukvara med vår kodsigneringslösning.

Bästa praxis för kodsignering

  1. Utför kodintegritetskontroller

    All kod som utvecklare checkar in måste signeras digitalt med sin signeringsnyckel. För att säkerställa att den slutgiltiga publicerade koden är oförändrad måste alla utvecklarsignaturer kontrolleras. Den slutliga versionen bör signeras och släppas när alla dessa kontroller har slutförts. Ett viktigt steg som hjälper till att säkerställa att programuppdateringen är fri från manipulation och säker för användning av dina klienter är att verifiera källkodens integritet.

  2. Förvara nycklarna på en mycket säker plats

    Ett av de största misstagen företag gör när det gäller nyckelförvaring är att förvara nycklarna på en hårddisk, en utvecklares persondator eller byggservrar. Detta fel kan ge angripare ett stort möjligheter att komma åt dina privata nycklar och kompromettera flera system. Förvara alltid dina kodsigneringsnycklar i mycket säkra kryptografiska områden, till exempel en Hardware Security Module (HSM). CA/Browser Forum har krävt HSM eller motsvarande hårdvaruskydd, minst FIPS 140-2 nivå 2 eller Common Criteria EAL 4+, för alla offentligt betrodda kodsigneringscertifikat sedan den 1 juni 2023; vissa plattformar, inklusive CodeSign Secure , använder FIPS 140-2 nivå 3-hårdvara, vilket överskrider detta minimum. HSM:er är extremt svåra att bryta sig mot eftersom de är manipuleringssäkra. Du kan vara garanterad att inga privata nycklar någonsin exporteras och att ingen annan någonsin kommer att ha tillgång till eller använda kodsigneringsnycklarna felaktigt.

  3. Rotera tangenterna

    Ibland tenderar organisationer att använda samma nyckel för att signera utgåvor för olika produktlinjer och verksamheter. Detta kan inte vara en bra idé alls. Alla utgåvor du har signerat med kodsigneringsnyckeln riskerar att bli hackade. Istället vore det klokt att byta nycklar regelbundet. Använd dessutom separata och oberoende nycklar för att signera olika utgåvor över DevOps-team.

Vanliga frågor om partihandel med mat och dryck

Krävs FIPS 140-2 nivå 3 för kodsignering av HSM:er?

Nej. CA/Browser Forums minimum för offentligt betrodda kodsigneringscertifikat är FIPS 140-2 Nivå 2 eller Common Criteria EAL 4+. Nivå 3 överstiger detta minimum; vissa plattformar använder det som en starkare intern standard, men det är inte själva efterlevnadskravet.

Vad är den faktiska organisatoriska kostnaden för att hoppa över kodsignering?

Utöver de säkerhetsvarningar som användarna ser, avvisar de flesta större plattformar (appbutiker, webbläsare, operativsystemuppdateringsmekanismer) osignerad programvara direkt, vilket gör kodsignering till en distributionsförutsättning, inte bara en förtroendesignal.

Bör samma nyckelskyltsläpp användas för flera produktlinjer?

Nej. Att dela en nyckel över flera produktlinjer innebär att en enda kompromiss utsätter varje utgåva som signeras med den nyckeln för risk. Använd separata nycklar per produktlinje eller team för att begränsa explosionsradien för varje enskild kompromiss.

Slutsats

Ett kodsigneringscertifikat är avgörande för användarens förtroende och för att säkerställa att din källkod är intakt. Dessutom låter det dig säkerställa att din applikation inte utsätts för cyberattacker. Ökande cyberattacker och en massiv appmarknad innebär att du måste vara beredd på säkerhetsfronten.