HomeKit 통신 보안
HomeKit는 iCloud와 기기 보안 기능을 사용하여 Apple에 공개하지 않으면서도 개인 데이터를 보호하고 동기화할 수 있는 홈 자동화 인프라를 제공합니다.
HomeKit 신원 및 보안은 Ed25519 공개-개인 키 쌍을 기반으로 합니다. Ed25519 키 쌍은 사용자의 기기에 생성되며 HomeKit 신원으로 사용됩니다. 키 쌍은 사용자의 Apple 기기 및 HomeKit 액세서리 간 직접 통신을 인증하기 위해 HomeKit 액세서리 프로토콜(HAP)의 일부로 사용됩니다.
홈 허브가 있는 홈의 경우, 공유 홈의 구성원은 이 홈 허브를 통해 액세서리에 명령을 전달할 수 있습니다. 이러한 명령은 Apple Identity Service(IDS)를 사용하여 사용자의 기기에서 홈 허브로 종단간 암호화 및 인증되어 전송되며, 여기에서 HomeKit Accessory Protocol(HAP) 또는 스마트 홈 연결 표준인 Matter를 사용하여 관련 액세서리로 전달됩니다.
키체인에 저장되며 암호화된 키체인 백업에만 포함된 키는 iCloud 키체인을 사용하여 여러 기기에서 최신으로 유지됩니다.
HomeKit 액세서리 간의 통신
HomeKit 액세서리는 자체적으로 Ed25519 키 쌍을 생성해 Apple 기기와 통신합니다. 액세서리가 초기화 설정으로 복원되는 경우 새로운 키 쌍이 생성됩니다.
Apple 기기와 HomeKit 액세서리 간의 관계를 구축하기 위해, 키는 Secure Remote Password(SRP) 프로토콜(3072비트)을 사용하여 교환됩니다. 액세서리 제조업체에서 제공하는 8자리 코드인 키를 사용자의 기기에 입력하면 HKDF-SHA512에서 파생된 키와 함께 ChaCha20-Poly1305 AEAD를 사용하여 암호화됩니다. 액세서리의 MFi 인증은 설정 중에도 확인됩니다. MFi 칩이 탑재되지 않은 액세서리는 iOS 11.3 이상에서 소프트웨어 인증을 지원할 수 있습니다.
사용 중에 기기와 HomeKit 액세서리가 통신하면 위에서 설명한 프로세스를 통해 교환한 키를 사용하여 서로를 인증합니다. 각 세션은 STS(Station-to-Station) 프로토콜을 사용해 구축되며 세션별 Curve25519 키를 기반으로 HKDF-SHA512에서 파생된 키를 사용해 암호화됩니다. 이는 IP 기반 및 BLE(Bluetooth Low Energy) 액세서리에도 적용됩니다.
브로드캐스트 알림을 지원하는 BLE 기기의 경우 보안 세션으로 연결된 기기의 브로드캐스트 암호화 키를 통해 액세서리가 권한 설정됩니다. 이 키는 해당 액세서리의 상태 변경에 대한 데이터를 암호화하는 데 사용되며 이 데이터는 BLE 알림을 통해 알림으로 전송됩니다. 브로드캐스트 암호화 키는 HKDF-SHA512에서 파생된 키이며 데이터는 ChaCha20-Poly1305 AEAD 알고리즘을 사용하여 암호화됩니다. 브로드캐스트 암호화 키는 주기적으로 변경되며 HomeKit 데이터 보안에서 설명한 대로 iCloud를 사용하여 다른 기기에 업데이트됩니다.
Matter 액세서리로 통신하기
Matter 액세서리를 통한 신원 및 보안은 인증서에 기반합니다. Apple 홈의 경우, 신뢰 루트 인증 기관(CA)은 초기 사용자 기기(‘소유자’)에서 생성되며, CA에 대한 개인 키는 해당 iCloud 키체인에 저장됩니다. 홈의 각 Apple 기기는 NIST P256을 사용하여 인증서 서명 요청(CSR)을 생성합니다. 이 CSR은 소유자의 기기에 포함되며,해당 CA 개인 키를 사용하는 기기에 대한 Matter 신원 인증서를 생성합니다. 그러고 나면 이 인증서는 사용자의 기기 및 액세서리 간 통신을 인증하는 데 사용됩니다.
Matter 액세서리는 자체적으로 NIST P256 키 쌍 및 CSR을 생성하며, 액세서리 페어링 중에 CA에서 인증서를 수신합니다. 키 쌍이 생성되기 전에, Matter 액세서리 및 홈 소유자의 기기는 액세서리 제조업체에서 제공하는 PIN을 통한 SPAKE2+ 프로토콜을 사용하여 키를 교환하며, 기기 인증 프로세스가 수행됩니다. 그런 다음 CSR 및 인증서는 AES-CCM 및 HKDF-SHA256에서 파생된 키를 사용하여 암호화된 채널을 통해 교환됩니다. 액세서리가 초기 설정으로 복구될 경우, 새로운 키 쌍 및 CSR이 생성되고, 페어링 중에 액세서리에 대해 새로운 인증서가 발급됩니다.
사용 중에 Apple 기기 및 Matter 액세서리가 통신하면, 각각 자체 인증서를 사용하여 서로를 인증합니다. 각 세션은 3단계(시그마) 프로토콜을 사용해 구축되며 세션별 P256 키를 기반으로 HKDF-SHA256에서 파생된 키를 사용해 암호화됩니다.
Apple 기기가 Matter 액세서리와 안전하게 통신하는 방법에 관한 정보는 Apple Developer 웹 사이트에서 iOS 16의 Matter 지원을 참조하십시오.
HomeKit 및 Siri
액세서리에 쿼리를 보내거나 액세서리를 제어하고 모드를 활성화시키기 위해 Siri를 사용할 수 있습니다. Siri는 홈 구성에 관해 최소한의 정보를 익명으로 제공받습니다. Siri가 명령을 인식하는데 필요한 방, 액세서리 및 모드의 이름이 제공됩니다. Siri에게 전송된 오디오는 특정 액세서리 또는 명령어를 나타낼 수 있지만 Siri 데이터는 HomeKit와 같은 Apple의 다른 기능과는 연결되지 않습니다.
Siri 지원 HomeKit 액세서리
사용자는 Siri 지원 액세서리에서 홈 앱을 사용하여 타이머, 알람, 인터컴 및 초인종과 같은 새로운 Siri 및 기타 HomePod 기능을 활성화할 수 있습니다. 이러한 기능이 활성화될 경우, 액세서리는 이러한 Apple 기능을 호스트하는 로컬 네트워크와 페어링된 HomePod과 함께 조정됩니다. HomeKit 및 AirPlay 프로토콜을 함께 사용하여 암호화된 채널을 통해 기기 간에 오디오가 교환됩니다.
‘Siri야’ 듣기가 켜져 있을 경우, 액세서리는 자체적으로 실행 중인 트리거 구문 감지 엔진을 사용하여 “Siri야”라는 구문을 듣습니다. 구문을 감지할 경우, 이 엔진은 HomeKit를 사용하여 페어링된 HomePod에 오디오 프레임을 직접 전송합니다. HomePod은 오디오를 다시 확인하고, 만약 구문이 트리거 문구를 포함하지 않을 경우 오디오 세션을 취소합니다.
Touch for Siri가 켜져 있을 경우, 사용자는 액세서리에서 지정 버튼을 눌러 Siri와 대화를 시작할 수 있습니다. 페어링된 HomePod에 오디오 프레임을 직접 전송합니다.
Siri 호출이 성공적으로 감지될 경우, HomePod은 Siri 서버에 오디오를 전송하고 HomePod이 HomePod 자체에 대한 사용자 호출에 적용된 것과 동일한 보안, 개인정보 보호 및 암호화 안전 장치를 사용하여 사용자의 요구를 충족합니다. Siri에 오디오 응답이 있을 경우 Siri 응답이 AirPlay 오디오 채널을 통해 액세서리로 전송됩니다. 일부 Siri 요청은 사용자가 더 많은 옵션을 듣고 싶은지와 같은 추가적인 정보를 요구합니다. 이 경우 액세서리는 사용자에게 메시지를 전달하라는 지시를 받고, 추가적인 오디오가 HomePod에 스트리밍됩니다.
액세서리에는 LED 표시기와 같이 현재 듣고 있음을 사용자에게 알려주는 시각 표시기가 필요합니다. 액세서리는 오디오 스트리밍에 대한 접근을 제외하면 Siri 요청의 목적을 알 수 없으며, 어떤 사용자 데이터도 액세서리에 저장되지 않습니다.