Sicurezza delle comunicazioni di HomeKit
HomeKit fornisce un'infrastruttura di automazione domestica che utilizza la sicurezza di iCloud e iOS, iPadOS e macOS per proteggere e sincronizzare i dati privati senza rivelarli ad Apple.
L'identità e la sicurezza di HomeKit sono basate su coppie di chiavi pubbliche‑private Ed25519. Per ogni utente di HomeKit sui dispositivi iOS, iPadOS e macOS viene generata una coppia di chiavi Ed25519, che diventa la sua identità HomeKit. È usata per autenticare la comunicazione tra i dispositivi iOS, iPadOS e macOS e tra i dispositivi iOS, iPadOS e macOS e gli accessori.
Le chiavi, archiviate nel portachiavi e incluse solo nei backup codificati del portachiavi, vengono mantenute aggiornate tra i dispositivi tramite il portachiavi iCloud, quando disponibile. HomePod e Apple TV ricevono le chiavi mediante la configurazione tramite tocco o la modalità di configurazione descritte di seguito. Le chiavi sono condivise da un iPhone a un Apple Watch abbinato tramite il servizio IDS.
Comunicazione tra gli accessori HomeKit
Gli accessori HomeKit generano la loro coppia di chiavi Ed25519 da utilizzare nelle comunicazioni con i dispositivi iOS, iPadOS e macOS. Se l'accessorio è ripristinato alle impostazioni di fabbrica, viene generata una nuova coppia di chiavi.
Per stabilire una relazione tra un dispositivo iOS, iPadOS e macOS e un accessorio HomeKit, le chiavi vengono scambiate utilizzando il protocollo Secure Remote Password (a 3072 bit), usando un codice a otto cifre fornito dal produttore dell'accessorio e inserito dall'utente sul dispositivo iOS e iPadOS e successivamente codificato mediante ChaCha20-Poly1305 AEAD con chiavi derivate da HKDF‑SHA512. Durante la configurazione viene verificata anche la certificazione MFi dell'accessorio. Gli accessori senza un chip MFi possono integrare il supporto per l'autenticazione software su iOS 11.3 o versione successiva.
Quando il dispositivo iOS, iPadOS e macOS e l'accessorio HomeKit comunicano durante l'utilizzo, si autenticano reciprocamente utilizzando le chiavi scambiate nel processo descritto sopra. Ogni sessione è stabilita utilizzando il protocollo Station‑to‑Station ed è codificata con chiavi derivate da HKDF‑SHA512 basate su chiavi Curve25519 per sessione. Questo meccanismo è valido sia per accessori basati su IP che per quelli Bluetooth Low Energy (BLE).
Per i dispositivi BLE che supportano le notifiche broadcast, all'accessorio viene fornita una chiave di codifica broadcast da un dispositivo iOS, iPadOS e macOS abbinato tramite una sessione sicura. Tale chiave è utilizzata per codificare i dati riguardo alle modifiche di stato sull'accessorio, che vengono comunicate tramite trasmissioni BLE. La chiave di codifica broadcast è una chiave derivata tramite HKDF‑SHA512 e i dati sono codificati con l'algoritmo ChaCha20-Poly1305 AEAD (Authenticated Encryption with Associated Data). La chiave di codifica broadcast viene modificata periodicamente dal dispositivo iOS, iPadOS e macOS e aggiornata su altri dispositivi che utilizzano iCloud, come descritto nella sezione Sicurezza dei dati di HomeKit.
HomeKit e Siri
Siri può essere utilizzato per inviare richieste agli accessori, controllarli e per attivare le scene. Siri riceve le informazioni essenziali sulla configurazione dell'abitazione, in modo da fornire i nomi di stanze, accessori e scene necessari al riconoscimento dei comandi. L'audio inviato a Siri potrebbe indicare dei comandi o degli accessori specifici, ma tali dati di Siri non sono associati ad altre funzionalità di Apple come HomeKit.
Accessori di HomeKit compatibili con Siri
Utilizzando l'app Casa, gli utenti possono abilitare Siri e le altre funzionalità di HomePod come i timer, gli avvisi, l'interfono e il campanello sugli accessori compatibili con Siri. Quando queste sono abilitate, l'accessorio si coordina con l'HomePod abbinato e collegato alla rete locale che supporta queste funzionalità Apple. La trasmissione dell'audio tra i dispositivi avviene mediante canali crittografati, utilizzando sia i protocolli HomeKit che AirPlay.
Quando “Abilita Ehi Siri” è attivato, l'accessorio attende che venga pronunciata la frase “Ehi Siri” e la identifica mediante un motore di rilevamento delle frasi trigger eseguito in locale. Se quest'ultimo rileva la frase, i frame audio vengono inviati direttamente all'HomePod abbinato tramite HomeKit. L'HomePod controlla l'audio una seconda volta e potrebbe cancellare la sessione in corso se la frase trigger non viene rilevata.
Quando la funzionalità di attivazione di Siri tramite tocco è attiva, l'utente può iniziare una conversazione con Siri premendo il tasto dedicato sull'accessorio. I frame audio vengono inviati direttamente all'HomePod abbinato.
Dopo che viene rilevata un'attivazione di Siri, HomePod invia l'audio ai server di Siri e attua l'intento dell'utente utilizzando la stessa crittografia e le stesse misure per tutelare la sicurezza e la privacy che applica alle richieste che gli utenti rivolgono direttamente a HomePod. Se Siri produce una risposta audio, questa viene inviata all'accessorio tramite un canale audio AirPlay. Per alcune richieste di Siri è necessario che l'utente fornisca ulteriori informazioni, ad esempio, viene chiesto se voglia ascoltare più opzioni. In questi casi, l'accessorio riceve l'istruzione di fare delle domande all'utente e l'audio aggiuntivo viene trasmesso in streaming all'HomePod.
L'accessorio deve essere dotato un indicatore visivo per segnalare all'utente quando è in ascolto, ad esempio, un indicatore LED. L'accessorio non è a conoscenza dell'intenzione della richiesta fatta a Siri, ad eccezione dei flussi audio; nessun dato dell'utente viene salvato sull'accessorio.