HomeKit-tietoliikenteen suojaus
HomeKit tarjoaa kodin automaatioille infrastruktuurin, jossa hyödynnetään iCloudin ja iOS:n, iPadOS:n ja macOS:n suojausta yksityisten tietojen suojaamiseen ja synkronoimiseen ilman, että ne tulevat Applen tietoon.
HomeKitin identiteetti ja suojaus perustuvat julkisen ja yksityisen Ed25519-avaimen pareihin. iOS-, iPadOS- ja macOS-laitteessa luodaan Ed25519-avainpari kullekin HomeKitin käyttäjälle, ja siitä tulee käyttäjän HomeKit-identiteetti. Sitä käytetään viestinnän todentamiseen iOS-, iPadOS- ja macOS-laitteiden välillä sekä iOS-, iPadOS- ja macOS-laitteiden ja lisälaitteiden välillä.
Avaimet, jotka tallennetaan avainnippuun ja sisällytetään ainoastaan salattuihin avainnippuvarmuuskopioihin, pidetään ajantasaisina laitteiden välillä käyttäen iCloud-avainnippua, jos se on käytössä. HomePod ja Apple TV saavat avaimet käyttäen käyttöönottoa napautuksella tai käyttöönottotilaa, josta kerrotaan jäljempänä. Avaimet jaetaan iPhonesta sen parina olevaan Apple Watchiin käyttäen Apple Identity Service (IDS) ‑palvelua.
Viestintä HomeKit-lisälaitteiden välillä
HomeKit-lisälaitteet luovat oman Ed25519-avainparinsa käytettäväksi viestinnässä iOS-, iPadOS- ja macOS-laitteiden kanssa. Jos lisälaite palautetaan tehdasasetuksiinsa, luodaan uusi avainpari.
Kun iOS-, iPadOS- ja macOS-laite muodostavat suhteen HomeKit-lisälaitteen kanssa, ne vaihtavat avaimia käyttäen Secure Remote Password ‑protokollaa (3072-bittinen), jossa hyödynnetään lisälaitteen valmistajalta saatua kahdeksannumeroista koodia. Käyttäjä syöttää koodin iOS- tai iPadOS-laitteeseen, ja sitten se salataan käyttäen ChaCha20-Poly1305 AEAD:tä ja HKDF-SHA512:lla muodostettuja avaimia. Myös lisälaitteen MFi-hyväksyntä tarkistetaan käyttöönoton yhteydessä. Lisälaitteisiin, joilla ei ole MFi-sirua, voidaan sisällyttää tuki ohjelmistotodennukselle iOS 11.3:ssa tai uudemmissa.
Kun iOS-, iPadOS- ja macOS-laite ja HomeKit-lisälaite viestivät käytön aikana, kumpikin todentaa toisen käyttäen edellä kuvatussa prosessissa vaihdettuja avaimia. Jokaisen istunnon luomiseen käytetään Station-to-Station-protokollaa (STS), ja istunnot salataan käyttäen HKDF-SHA512:lla muodostettuja avaimia, jotka perustuvat istuntokohtaisiin Curve25519-avaimiin. Tämä koskee sekä IP-pohjaisia että Bluetooth Low Energy (BLE) ‑lisälaitteita.
Jos BLE-laite tukee ilmoitusten yleislähetystä, lisälaite saa yleislähetyksen salausavaimen pariksi asetetulta iOS-, iPadOS- ja macOS-laitteelta suojatussa istunnossa. Tätä avainta käytetään lisälaitteen tilamuutostietojen salaamiseen, kun muutoksista ilmoitetaan BLE-mainoksilla. Yleislähetyksen salausavain muodostetaan käyttäen HKDF-SHA512:ta, ja tiedot salataan käyttäen ChaCha20-Poly1305 AEAD ‑algoritmia. iOS-, iPadOS- ja macOS-laite vaihtaa yleislähetyksen salausavaimen ajoittain ja päivittää sen muihin laitteisiin käyttäen iCloudia. Tästä kerrotaan osiossa HomeKitin tietojen suojaus.
HomeKit ja Siri
Siriä voidaan käyttää lisälaitteiden kyselyihin ja hallintaan, ja sillä voidaan aloittaa tilanteita. Sirille annetaan tietoja kodin määrityksistä mahdollisimman niukasti ja anonyymissa muodossa. Siri saa tiedoista komentojen tunnistamista varten tarvittavat huoneiden, lisälaitteiden ja tilanteiden nimet. Sirille lähetettävässä äänisisällössä saatetaan ilmaista tiettyjä lisälaitteita tai komentoja, mutta näitä Siri-tietoja ei yhdistetä muihin Applen ominaisuuksiin kuten HomeKitiin.
Siriä tukevat HomeKit-lisälaitteet
Käyttäjät voivat ottaa käyttöön uusia ominaisuuksia kuten Sirin sekä muita HomePodin ominaisuuksia kuten ajastimet, herätykset, intercomin ja ovikellon Siriä tukevissa lisälaitteissa Koti-appia käyttäen. Kun nämä ominaisuudet on otettu käyttöön, lisälaite tekee yhteistyötä sen parina olevan HomePodin kanssa lähiverkossa, jossa nämä Applen ominaisuudet toimivat. Ääni siirretään laitteiden välillä salattujen kanavien kautta käyttäen sekä HomeKit- että AirPlay-protokollia.
Kun ”Reagoi Hei Siri ‑kutsuun” on päällä, lisälaite kuuntelee ”Hei Siri” ‑lausahdusta käyttäen paikallisesti toimivaa käynnistyslausahduksen tunnistusohjelmaa. Jos tämä ohjelma tunnistaa lausahduksen, se lähettää äänikehykset suoraan parina olevalle HomePodille käyttäen HomeKitiä. HomePod tarkistaa äänimateriaalin uudestaan ja voi kumota ääni-istunnon, jos lausahdus ei vaikuta sisältävän käynnistyslausahdusta.
Kun Sirin käyttö koskettamalla on päällä, käyttäjä voi aloittaa keskustelun Sirin kanssa painamalla lisälaitteessa tätä tarkoitusta varten olevaa painiketta. Äänikehykset lähetetään suoraan parina olevaan HomePodiin.
Kun onnistunut Siri-kutsu tunnistetaan, HomePod lähettää äänen Siri-palvelimille ja toteuttaa käyttäjän aikeen käyttäen samoja suojauksen, yksityisyyden ja salauksen suojakeinoja kuin silloin, jos käyttäjän kutsut tehdään HomePodille itselleen. Jos Siri vastaa äänellä, Sirin vastaus lähetetään lisälaitteeseen AirPlay-äänikanavan kautta. Jotkin Siri-pyynnöt vaativat käyttäjältä lisätietoja (esimerkiksi kysymys, haluaako käyttäjä kuulla lisää vaihtoehtoja). Tässä tapauksessa lisälaite saa merkin, että käyttäjän toimintaa tarvitaan, ja uusi äänimateriaali striimataan HomePodiin.
Lisälaitteessa täytyy olla näkyvä merkki, joka kertoo käyttäjälle, milloin se kuuntelee aktiivisesti (esimerkiksi merkkivalo). Lisälaitteella ei ole tietoa Siri-pyynnön aikeesta lukuun ottamatta pääsyä äänivirtoihin, eikä käyttäjän tietoja tallenneta lisälaitteeseen.