Kodsigneringsprocess för appar i iOS och iPadOS
I iOS och iPadOS erbjuder Apple appsäkerhet genom obligatorisk kodsignering, strikt inloggning för utvecklare med mera.
Obligatorisk kodsignering
När iOS- eller iPadOS-kärnan har startat styr den vilka användarprocesser och appar som kan köras. För att garantera att alla appar kommer från en känd och godkänd källa, och inte har manipulerats, kräver iOS och iPadOS att all körbar kod ska vara signerad med ett certifikat som utfärdas av Apple. De appar som följer med enheten, som Mail och Safari, är signerade av Apple. Tredjepartsappar måste också valideras och signeras med ett certifikat som utfärdas av Apple. Med obligatorisk kodsignering utökas tillförlitlighetskedjan från operativsystemet till apparna. Det förhindrar att tredjepartsappar läser in osignerade kodresurser eller använder självmodifierande kod.
Hur utvecklare signerar sina appar
Utvecklare kan signera sina appar genom certifikatvalidering (via Apple Developer Program). De kan också bädda in ramverk inuti apparna och låta den koden valideras med ett certifikat som är utfärdat av Apple (via en team-ID-sträng).
Certifikatvalidering: För att utveckla och installera appar på iPhone- eller iPad-enheter måste utvecklare registrera sig hos Apple och gå med i Apple Developer Program. Varje utvecklares verkliga identitet – oavsett om det är en individ eller ett företag – kontrolleras av Apple innan ett certifikat utfärdas. Med det här certifikatet kan utvecklarna signera appar och skicka in dem till App Store för distribution. Det innebär att alla appar i App Store har skickats in av en identifierbar person eller organisation, vilket avskräcker från att skicka in skadliga appar. Apparna har också granskats av Apple som kontrollerar att de generellt fungerar enligt beskrivningen och inte innehåller några uppenbara buggar eller andra större problem. Utöver de tekniska aspekterna gör den här urvalsprocessen att användarna får förtroende för att de appar de köper håller hög kvalitet.
Validering av kodsignatur: Med iOS och iPadOS kan utvecklare bädda in ramverk inuti apparna. De här ramverken kan användas av appen själv eller av tillägg som är inbäddade i appen. För att skydda systemappar och andra appar mot inläsning av kod från tredje part inom deras adressutrymme kontrollerar systemet kodsignaturerna för alla dynamiska bibliotek som någon process länkar till under start. Den här kontrollen genomförs med hjälp av teamidentifieraren (Team ID) som utvinns ur ett certifikat som har utfärdats av Apple. En teamidentifierare är en alfanumerisk sträng på tio tecken – till exempel 1A2B3C4D5F. Ett program kan länka till vilket plattformsbibliotek som helst som följer med systemet, eller vilket annat bibliotek som helst som har samma teamidentifierare som primär körbar kod i sin kodsignatur. Eftersom den körbara kod som ingår i systemet inte har någon teamidentifierare kan den endast länka till de bibliotek som är inbyggda i systemet.
Verifiering av företagsägda interna appar
Behöriga företag har möjlighet att utveckla företagsägda interna appar för användning i organisationen och distribuera dem till sina anställda. Företag och organisationer kan ansöka till Apple Developer Enterprise Program (ADEP). Mer information och behörighetskrav finns på webbplatsen för Apple Developer Enterprise Program. När en organisation blir medlem i ADEP kan den registrera sig och erhålla en tillhandahållandeprofil som gör det möjligt att köra företagsägda interna appar på enheter som organisationen auktoriserar.
Användarna måste ha tillhandahållandeprofilen installerad för att kunna köra de här apparna. Detta garanterar att endast behöriga användare inom organisationen kan läsa in apparna på sin iPhone eller iPad. Appar som installeras via MDM är implicit betrodda eftersom relationen mellan organisationen och enheten redan är upprättad. I annat fall måste användarna godkänna appens tillhandahållandeprofil i Inställningar. Organisationer kan även förhindra att användare godkänner appar från okända utvecklare. Första gången en företagsägd intern app startas måste enheten få en positiv bekräftelse från Apple om att appen tillåts att köras.