HomeKit-kommunikationssäkerhet
HomeKit ger tillgång till en infrastruktur för automatisering av hemmet som drar nytta av iCloud och funktioner för enhetssäkerhet för att skydda och synkronisera privata data utan att avslöja dem för Apple.
HomeKit-identiteter och -säkerhet bygger på publika/privata Ed25519-nyckelpar. Ett Ed25519-nyckelpar genereras på användarens enhet som blir dess HomeKit-identitet. Nyckelparet används som en del av HomeKit-tillbehörsprotokollet (HomeKit Accessory Protocol, HAP) till att autentisera direkt kommunikation mellan användarens Apple-enheter och deras HomeKit-tillbehör.
I hem där det finns en hemhubb kan medlemmar i det delade hemmet skicka kommandon till tillbehör via denna hemhubb. Dessa kommandon skickas, heltäckande krypterade och autentiserade, från användarens enheten till hemhubben genom IDS (Apple Identity Service) där de vidarebefordras till det relevanta tillbehöret via HomeKit-tillbehörsprotokollet (HAP) eller den smarta hemanslutningsstandarden Matter.
Nycklarna – som förvaras i nyckelringen och bara inkluderas i krypterade säkerhetskopieringar av nyckelringen – hålls uppdaterade mellan enheter med hjälp av iCloud-nyckelring.
Kommunikation mellan HomeKit-tillbehör
HomeKit-tillbehör genererar sina egna Ed25519-nyckelpar för kommunikation med Apple-enheter. Om tillbehöret återställs till fabriksinställningarna genereras ett nytt nyckelpar.
För att upprätta ett förhållande mellan en Apple-enhet och ett HomeKit-tillbehör utväxlas nycklar med protokollet Secure Remote Password (3072 bitar) med en åttasiffrig kod som tillhandahålls av tillbehörets tillverkare, anges på användarens enhet och sedan krypteras med ChaCha20-Poly1305 AEAD med HKDF-SHA512-härledda nycklar. Tillbehörets MFi-certifiering kontrolleras också under installationen. Tillbehör som saknar en MFi-krets kan bygga in stöd för programvaruautentisering med iOS 11.3 eller senare.
När enheten och HomeKit-tillbehöret kommunicerar under användning autentiserar de varandra med hjälp av nycklarna som utväxlades i den ovanstående processen. Varje session upprättas med STS-protokollet (Station-to-Station) och krypteras med HKDF-SHA512-härledda nycklar baserade på sessionsgenererade Curve25519-nycklar. Det gäller både IP-baserade tillbehör och BLE-tillbehör (Bluetooth Low Energy).
BLE-tillbehör som har stöd för utsända notiser får en krypteringsnyckel skickad till sig av en parkopplad enhet via en säker session. Nyckeln används till att kryptera data gällande statusförändringar på enheten som meddelas via BLE-annonseringar. Den utsända krypteringsnyckeln är en HKDF-SHA512-härledd nyckel och data krypteras med algoritmen ChaCha20-Poly1305 AEAD. Den utsända krypteringsnyckeln ändras då och då och uppdateras på andra enheter som använder iCloud enligt beskrivningen i avsnittet HomeKit-datasäkerhet.
Kommunikation med Matter-tillbehör
Identitet och säkerhet med Matter-tillbehör är certifikatbaserade. För Apple-hem genereras certifikatutfärdaren (CA) som är betrodd rot på den inledande användarens enhet (”ägaren”) och den privata nyckeln för CA:n lagras i dess iCloud-nyckelring. Varje Apple-enhet i hemmet genererar en certifikatsigneringsförfrågan (CSR) med NIST P256. Denna CSR tas emot av ägarens enhet, vilket skapar ett Matter-identitetscertifikat för enheten genom att använda dess privata CA-nyckel. Det här certifikatet används sedan till att autentisera kommunikation mellan användares enheter och deras tillbehör.
Matter-tillbehör genererar sitt eget NIST P256-nyckelpar och CSR och får ett certifikat från CA:n när tillbehöret parkopplas. Innan nyckelpar genereras utväxlar Matter-tillbehöret och hemägarens enheter nycklar – via protokollet SPAKE2+ med en PIN-kod som tillhandahålls av tillbehörets tillverkare – och en enhetsattesteringsprocess utförs. CSR och certifikat utväxlas sedan via denna kanal och krypteras med AES-CCM med HKDF-SHA256-härledda nycklar. Om tillbehöret återskapas till fabriksinställningarna genereras ett nytt nyckelpar och en CSR och ett nytt certifikat utfärdas för tillbehöret när det parkopplas.
När en Apple-enhet och Matter-tillbehöret kommunicerar under användning autentiserar vardera certifikat det andra med hjälp av sina egna certifikat. Varje session upprättas med ett trefasprotokoll (sigma) och krypteras med HKDF-SHA256-härledda nycklar baserade på sessionsgenererade P256-nycklar.
För mer information om hur Apple-enheter interagerar säkert med Matter-tillbehör, se Matter support in iOS 16 på Apple Developer-webbplatsen.
HomeKit och Siri
Siri kan användas till att söka efter och styra tillbehör samt för att aktivera scenarier. Mycket begränsad information om hemmets konfiguration överförs anonymt till Siri. Det gäller namnen på rum, tillbehör och scenarier som är nödvändiga för att förstå kommandon. Ljud som skickas till Siri kan gälla specifika tillbehör eller kommandon, men sådana Siri-data associeras inte med andra Apple-funktioner som HomeKit.
Siri-kompatibla HomeKit-tillbehör
Användare kan aktivera nya funktioner, som Siri och andra HomePod-funktioner som timers, alarm, Intercom och dörrklockor, på Siri-kompatibla tillbehör via appen Hem. När de här funktionerna aktiveras koordineras tillbehöret med en parkopplad HomePod som agerar värd för Apple-funktionerna i det lokala nätverket. Ljud utväxlas mellan enheterna via krypterade kanaler som använder både HomeKit- och AirPlay-protokoll.
När Lyssna efter ”Hej Siri” är på lyssnar tillbehöret efter frasen ”Hej Siri” genom att använda en lokal motor som känner igen utlösarfrasen. Om den här motorn känner igen frasen skickar den ljudbildrutor direkt till en parkopplad HomePod via HomeKit. HomePod utför en andra kontroll av ljudet och kan avbryta ljudsessionen ifall frasen inte verkar innehålla utlösarfrasen.
När Tryck för Siri är på kan användaren starta en konversation med Siri genom att trycka på en särskild knapp på tillbehöret. Ljudbildrutorna skickas direkt till den HomePod som är parkopplad.
När en Siri-förfrågan upptäcks skickar HomePod ljudet till Siri-servrar och uppfyller användarens avsikt med samma säkerhet, integritet och krypteringsskydd som HomePod använder för användarförfrågningar som görs till själva HomePod. Ifall Siri har ett ljudsvar skickas Siri-svaret via en AirPlay-kanal till tillbehöret. Vissa Siri-förfrågningar kräver mer information från användaren (exempelvis kan användaren få frågan ifall den vill höra fler alternativ). I sådana fall får tillbehöret en indikation om att användaren bör tillfrågas och det ytterligare ljudet strömmas till HomePod.
Tillbehöret måste ha en visuell indikator som visar för användaren när det lyssnar aktivt (exempelvis en LED-indikator). Tillbehöret saknar vetskap om avsikten med en Siri-förfrågan, med undantag för åtkomsten till ljudströmmar, och inga användardata lagras på tillbehöret.