Processo di firma del codice delle app in iOS e iPadOS
In iOS e iPadOS, Apple garantisce la sicurezza delle app attraverso meccanismi come la firma obbligatoria del codice, la firma da parte degli sviluppatori e altro ancora.
Firma obbligatoria del codice
Il kernel di iOS e iPadOS, una volta avviato, controlla i processi utente e le app che possono venire eseguite. Per aiutare a garantire che tutte le app provengano da una fonte conosciuta e approvata, e che non siano state alterate, iOS e iPadOS richiedono che tutto il codice eseguibile venga firmato utilizzando un certificato emesso da Apple. Le app fornite con il dispositivo, come Mail e Safari, sono firmate da Apple. Anche le app di terze parti devono essere convalidate e firmate utilizzando un certificato emesso da Apple. La firma del codice obbligatoria amplia il concetto di catena di attendibilità dal sistema operativo alle app, e aiuta a impedire alle app di terze parti di caricare risorse codice non firmate o di usare codice auto modificante.
Firma delle app da parte degli sviluppatori
Gli sviluppatori possono firmare le proprie app attraverso la convalida dei certificati (tramite l’Apple Developer Program). Possono inoltre integrare dei framework all’interno delle proprie app e far convalidare tale codice con un certificato emesso da Apple (tramite una stringa che identifica il team).
Convalida dei certificati: per poter sviluppare e installare app su iPhone o iPad, gli sviluppatori devono registrarsi presso Apple e prendere parte all’Apple Developer Program. Prima di emettere il certificato, Apple verifica l’identità reale di ogni sviluppatore, sia esso un individuo o un’azienda. Questo certificato consente agli sviluppatori di firmare le app e di inviarle ad App Store per la distribuzione. Il risultato è dunque che tutte le app presenti in App Store sono state consegnate da una persona o da un’organizzazione identificabile, e questo serve come deterrente per la creazione di app pericolose. Inoltre, le app sono state verificate da Apple per aiutare a garantire che in generale funzionino come descritto e che non contengano errori evidenti o altri problemi. Oltre alla tecnologia di cui abbiamo parlato poco fa, questo processo di selezione dà agli utenti la sicurezza che le app che acquistano siano di qualità.
Convalida della firma del codice: iOS e iPadOS permettono agli sviluppatori di incorporare nelle proprie app dei framework che possono essere utilizzati dall’app stessa o da estensioni incorporate all’interno dell’app. Per proteggere il sistema e altre app ed evitare che carichino codice di terze parti all’interno del loro spazio di indirizzi, il sistema esegue una convalida della firma del codice di tutte le librerie dinamiche a cui un processo si collega all’avvio. Questa verifica si compie attraverso l’identificatore di team (Team ID), che viene estratto da un certificato emesso da Apple. Un identificatore di team è una stringa alfanumerica di lunghezza pari a 10 caratteri; ad esempio, 1A2B3C4D5F. Un programma può collegarsi a qualunque libreria della piattaforma fornita con il sistema o qualunque libreria che abbia nella firma del codice lo stesso identificatore di team dell’eseguibile principale. Dal momento che gli eseguibili forniti come parte del sistema non hanno un identificatore di team, tali programmi potranno collegarsi solo a librerie facenti parte del sistema stesso.
Verificare le app proprietarie sviluppate in-house
Le aziende considerate idonee in base ai requisiti sotto indicati hanno la possibilità di scrivere app proprietarie in‑house da utilizzare all’interno dell’organizzazione e da distribuire ai propri dipendenti. Le aziende e le organizzazioni possono iscriversi al programma Apple Developer Enterprise Program (ADEP). Per ulteriori informazioni e per rivedere i requisiti di idoneità, visita il sito web dell’Apple Developer Enterprise Program. Dopo che un’organizzazione è entrata a far parte dell’ADEP, può registrarsi per ottenere un profilo di provisioning che permetta alle app proprietarie sviluppate in‑house di essere eseguite sui dispositivi autorizzati.
Gli utenti devono a loro volta avere il profilo di provisioning installato per poter eseguire queste app. In questo modo si aiuta a garantire che solo gli utenti previsti dall’organizzazione siano in grado di caricare le app sui propri iPhone o iPad. Le app installate tramite soluzione MDM sono considerate implicitamente affidabili, perché la relazione tra l’organizzazione e il dispositivo è già stata stabilita. Negli altri casi, gli utenti devono approvare il profilo di provisioning dell’app in Impostazioni. Le organizzazioni possono anche impedire agli utenti di approvare le app provenienti da sviluppatori sconosciuti. Al primo avvio di qualsiasi app proprietaria sviluppata in-house, il dispositivo deve ricevere da Apple una conferma del fatto che l’esecuzione dell’app è autorizzata.