Sicurezza delle comunicazioni di HomeKit
HomeKit fornisce un’infrastruttura di automazione domestica che utilizza funzionalità di sicurezza di iCloud e dei dispositivi 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. La coppia di chiavi Ed25519 è generata sul dispositivo dell’utente e diviene la sua identità di HomeKit. La coppia di chiavi viene usata nel protocollo HAP (HomeKit Accessory Protocol) per eseguire l’autenticazione della comunicazione diretta tra i dispositivi Apple dell’utente e i suoi accessori HomeKit.
Per le abitazioni con un hub domestico, i membri dell’abitazione condivisa possono inviare comandi agli accessori tramite tale hub. Questi comandi vengono inviati, protetti tramite crittografia end‑to‑end e autenticati dal dispositivo dell’utente all’hub domestico tramite il servizio IDS (Apple Identity Service), dove vengono inoltrati all’accessorio pertinente tramite il protocollo HAP o Matter, uno standard di connettività per abitazioni smart.
Le chiavi, archiviate nel portachiavi e incluse solo nei backup codificati del portachiavi, vengono mantenute aggiornate tra i dispositivi tramite il portachiavi iCloud.
Comunicazione tra gli accessori HomeKit
Gli accessori HomeKit generano una loro coppia di chiavi Ed25519 da utilizzare nelle comunicazioni con i dispositivi Apple. Se l’accessorio è ripristinato alle impostazioni di fabbrica, viene generata una nuova coppia di chiavi.
Per stabilire una relazione tra un dispositivo Apple e un accessorio HomeKit, le chiavi vengono scambiate utilizzando il protocollo Secure Remote Password (a 3072 bit) con un codice a otto cifre fornito dal produttore dell’accessorio, inserito sul dispositivo dell’utente 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 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 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 e aggiornata su altri dispositivi che utilizzano iCloud, come descritto nella sezione Sicurezza dei dati di HomeKit.
Comunicazione con gli accessori Matter
L’identità e la sicurezza con gli accessori Matter sono basate sui certificati. Per le abitazioni Apple, l’autorità di certificazione radice di attendibilità viene generata sul dispositivo iniziale dell’utente (la “persona responsabile”) e la chiave privata per l’autorità di certificazione viene archiviata nel suo portachiavi iCloud. Ciascun dispositivo Apple nell’abitazione genera una richiesta di firma del certificato utilizzando la curva NIST P-256. Questa richiesta viene ricevuta dal dispositivo della persona responsabile, che crea un certificato di identità Matter per il dispositivo utilizzando la propria chiave privata dell’autorità di certificazione. Questo certificato viene successivamente utilizzato per autenticare la comunicazione tra i dispositivi degli utenti e gli accessori.
Gli accessori Matter generano la propria coppia di chiavi NIST P-256 e la propria richiesta di firma del certificato e ricevono un certificato dall’autorità di certificazione durante l’abbinamento. Prima della generazione delle coppie di chiavi, l’accessorio Matter e i dispositivi della persona responsabile scambiano le chiavi (tramite il protocollo SPAKE2+ con un PIN fornito dal produttore dell’accessorio) e viene eseguito un processo di attestazione del dispositivo. La richiesta di firma del certificato e il certificato vengono quindi scambiati tramite questo canale, crittografati utilizzando AES-CCM con chiavi derivate da HKDF-SHA256. Se per l'accessorio vengono ripristinate le impostazioni di fabbrica, vengono generate una nuova coppia di chiavi e una nuova richiesta di firma del certificato e durante l’abbinamento viene emesso un nuovo certificato per l’accessorio.
Quando un dispositivo Apple e l’accessorio Matter comunicano durante l’utilizzo, si autenticano a vicenda utilizzando i propri certificati. Ogni sessione è stabilita utilizzando un protocollo a tre fasi (sigma) ed è codificata con chiavi derivate da HKDF-SHA256 basate su chiavi P256 per sessione.
Per ulteriori informazioni su come i dispositivi Apple interagiscono in modo sicuro con gli accessori Matter, consulta la pagina sul supporto di Matter in iOS 16 sul sito web di Apple Developer.
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.