HomeKit-kommunikationssäkerhet
HomeKit ger tillgång till en infrastruktur för automatisering av hemmet som drar nytta av iCloud och av iOS-, iPadOS- och macOS-sä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. För varje HomeKit-användare genereras ett Ed25519-nyckelpar på iOS-, iPadOS- och macOS-enheten. Detta blir den användarens HomeKit-identitet. Den används till att autentisera kommunikationen mellan flera iOS-, iPadOS- och macOS-enheter samt mellan iOS-, iPadOS- och macOS-enheter och tillbehör.
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 där den finns. HomePod och Apple TV får nycklar via tryck för att installera eller installationsläget som beskrivs nedan. Nycklar delas från en iPhone till en parkopplad Apple Watch via IDS (Apple Identity Service).
Kommunikation mellan HomeKit-tillbehör
HomeKit-tillbehör genererar sina egna Ed25519-nyckelpar för kommunikation med iOS-, iPadOS- och macOS-enheter. Om tillbehöret återställs till fabriksinställningarna genereras ett nytt nyckelpar.
För att upprätta ett förhållande mellan en iOS-, iPadOS- och macOS-enhet och ett HomeKit-tillbehör utväxlas nycklar med protokollet Secure Remote Password (3072 bitar) med hjälp av en åttasiffrig kod som tillhandahålls av tillbehörets tillverkare, anges på iOS- och iPadOS-enheten av användaren 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 iOS-, iPadOS- och macOS-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 iOS-, iPadOS- och macOS-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å av iOS-, iPadOS- och macOS-enheten och uppdateras till andra enheter som använder iCloud enligt beskrivningen i avsnittet HomeKit-datasäkerhet.
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.