Sicurezza di Handoff
Apple gestisce la funzionalità Handoff in modo sicuro, sia che venga usata tra un dispositivo e l’altro, tra un’app nativa e un sito web o per trasferire grandi quantità di dati.
Funzionamento sicuro di Handoff
Con Handoff, quando i dispositivi iOS, iPadOS e macOS dell’utente sono vicini, l’utente può trasferire automaticamente ciò a cui sta lavorando da un dispositivo all’altro. Handoff permette all’utente di cambiare dispositivo continuando immediatamente a lavorare.
Quando l’utente accede a iCloud su un secondo dispositivo con funzionalità Handoff, i due dispositivi stabiliscono un abbinamento fuori banda con Bluetooth Low Energy (BLE) 4.2 utilizzando il servizio di notifiche push di Apple (APN). I messaggi individuali sono codificati come gli iMessage. Una volta completato l’abbinamento, ogni dispositivo genera una chiave simmetrica AES a 256 bit che viene archiviata nel portachiavi del dispositivo. Questa chiave può codificare e autenticare le trasmissioni BLE, che comunicano l’attività corrente del dispositivo ad altri dispositivi abbinati via iCloud utilizzando AES256 in modalità GCM, con misure di sicurezza contro i replay attack.
La prima volta che riceve una trasmissione da una nuova chiave, il dispositivo instaura una connessione BLE con il dispositivo di origine ed effettua uno scambio della chiave di codifica della trasmissione. Questa connessione è protetta grazie alla codifica standard Bluetooth Low Energy 4.2 e alla codifica dei singoli messaggi, in maniera simile a quanto avviene per i messaggi iMessage. In alcune situazioni, questi messaggi sono inviati tramite APN invece di BLE. Il payload dell’attività è protetto e trasferito come avviene per iMessage.
Handoff fra app native e siti web
Handoff consente alle app native per iOS, iPadOS e macOS di riprendere l’attività di un utente su una pagina web in domini legittimamente controllati dallo sviluppatore dell’app. Permette inoltre di riprendere in un browser l’attività svolta dall’utente nell’app nativa.
Per aiutare a impedire alle app native di riprendere i siti web non controllati dallo sviluppatore, l’app deve dimostrare di avere un legittimo controllo sui domini web in questione. Il controllo su un sito web si stabilisce attraverso il meccanismo utilizzato per le credenziali web condivise. Per maggiori dettagli, consulta Accesso delle app alle password salvate. Il sistema deve convalidare il controllo dell’app sul nome di dominio prima che sia consentito all’app di accettare l’attività dell’utente via Handoff.
La sorgente di una pagina web trasferita tramite Handoff può essere qualsiasi browser che abbia adottato le API di Handoff. Quando l’utente visualizza una pagina web, il sistema annuncia il nome di dominio della pagina nei byte di trasmissione codificati di Handoff. Solo gli altri dispositivi dell’utente possono decrittografare i byte di trasmissione.
Sul dispositivo ricevente, il sistema rileva che un’app nativa installata accetta il trasferimento Handoff dal nome di dominio annunciato e visualizza l’icona di quell’app nativa come opzione Handoff. Quando viene avviata, l’app nativa riceve l’URL completo e il titolo della pagina web. Fra il browser e l’app nativa non vengono trasferite altre informazioni.
Nella direzione opposta, un’app nativa può specificare un URL alternativo quando un dispositivo che riceve il trasferimento Handoff non dispone della stessa app. In questo caso il sistema visualizza il browser di default dell’utente come opzione Handoff (se tale browser ha adottato le API di Handoff). Quando si richiede il trasferimento Handoff, il browser viene avviato e riceve l’URL alternativo fornito dall’app sorgente. Non è necessario che l’URL alternativo rientri nei nomi di dominio controllati dallo sviluppatore dell’app nativa.
Handoff con volumi elevati di dati
Oltre alle funzionalità di base di Handoff, alcune app possono utilizzare API che supportano l’invio di un volume maggiore di dati attraverso una tecnologia Wi‑Fi peer‑to‑peer creata da Apple (simile ad AirDrop). Ad esempio, l’app Mail utilizza queste API per consentire il trasferimento via Handoff di una bozza, che può contenere allegati di grandi dimensioni.
Quando un’app utilizza queste API, lo scambio fra i due dispositivi ha inizio proprio come in Handoff. Tuttavia, dopo aver ricevuto il payload iniziale via Bluetooth Low Energy (BLE), il dispositivo ricevente avvia una nuova connessione Wi‑Fi. Tale connessione è crittografata (tramite TLS) e risulta affidabile grazie all’identità condivisa tramite il portachiavi iCloud. L’identità dei certificati verrà verificata confrontandoli con l’identità dell’utente. Su questa connessione codificata vengono quindi trasferiti ulteriori dati di payload fino a completare il trasferimento.
Appunti condivisi
Gli appunti condivisi si servono di Handoff per trasferire in modo sicuro il contenuto degli appunti tra i dispositivi, perché sia possibile copiare da un dispositivo e incollare su un altro. I contenuti sono protetti nello stesso modo degli altri dati di Handoff e vengono condivisi di default con gli appunti condivisi, salvo nel caso in cui lo sviluppatore decida di non consentire la condivisione.
Le app hanno accesso ai dati degli appunti a prescindere dal fatto che l’utente abbia incollato o meno gli appunti nell’app. Con gli appunti condivisi, l’accesso a tali dati viene esteso alle app presenti sugli altri dispositivi (associati allo stesso account iCloud).