iOS의 차 키 보안
개발자는 지원되는 iPhone과 페어링된 Apple Watch로 실물 키 없이도 안전하게 차량에 접근하도록 지원할 수 있습니다.
소유자 페어링
소유자는 해당 차량의 소유를 증명(자동차 제조업체에 따라 방식이 다름)해야 하며 자동차 제조업체에서 받은 이메일 링크를 통해 자동차 제조업체 앱에서 페어링 절차를 시작하거나 차량 메뉴에서 페어링 절차를 시작할 수 있습니다. 모든 경우에 소유자는 NIST P-256 곡선이 적용된 SPAKE2+ 프로토콜을 통해 보안 페어링 채널을 생성하는 데 사용되는 기밀의 일회성 페어링 암호를 iPhone에 제시해야 합니다. 앱 또는 이메일 링크를 사용하면 자동으로 iPhone에 암호가 전송되지만 차량에서 페어링을 시작하는 경우에는 수동으로 암호를 입력해야 합니다.
키 공유
소유자의 페어링된 iPhone은 iMessage 및 Apple Identity Service(IDS)를 통해 기기별 초대장을 전송하여 자격을 가진 가족 구성원과 친구의 iPhone 기기(및 해당 사람의 페어링된 Apple Watch 기기)에 키를 공유할 수 있습니다. 모든 공유 명령은 종단간 암호화된 IDS 기능을 사용하여 교환됩니다. 소유자의 페어링된 iPhone은 초대 전달을 방지하기 위해서 공유 진행 도중 IDS 채널이 변경되지 않도록 합니다.
초대를 수락하면 가족 구성원 또는 친구의 iPhone이 디지털 키를 생성하고, 해당 키가 정품 Apple 기기에서 생성된 것임을 확인하기 위해 키 생성 인증서 체인을 소유자의 페어링된 iPhone으로 다시 전송합니다. 소유자의 페어링된 iPhone은 다른 가족 구성원 또는 친구 iPhone의 ECC 공개 키에 서명하고, 해당 서명을 가족 구성원 또는 친구의 iPhone으로 다시 전송합니다. 소유자 기기에서의 서명 작업에는 사용자 인증(Face ID, Touch ID 또는 암호 입력) 및 Face ID 및 Touch ID의 이용에서 설명한 대로 안전하게 처리된 사용자 의도가 필요합니다. 초대를 전송하는 데는 인증이 필요하며 해당 인증은 Secure Element에 저장되어 친구의 기기에서 서명 요청을 보내는 경우 사용됩니다. 키 권한은 차량 OEM 서버에서 온라인으로 제공되거나 차량에 처음 공유 키를 사용하는 도중에 차량에 제공됩니다.
키 삭제
키는 키홀더 기기, 소유자의 기기, 차량에서 삭제할 수 있습니다. 키홀더 iPhone에서 키를 삭제하는 경우 키홀더 기기에서 해당 키를 사용하는 중이더라도 바로 삭제가 이루어집니다. 그러므로 삭제 전에 엄중한 경고 메시지가 표시됩니다. 차량에서 키 삭제는 언제나 가능하거나 차량이 온라인일 때만 가능합니다.
키홀더 기기 또는 차량에서 키를 삭제하는 경우 모든 삭제 절차가 자동차 제조업체 측의 KIS(키 인벤토리 서버)로 보고됩니다. KTS는 보험 목적으로 차량에 대해 발급된 키가 등록되어 있는 서버입니다.
소유자는 소유자 패스 뒷면에서 삭제를 요청할 수 있습니다. 삭제 요청은 먼저 자동차 제조업체에 전송되어 업체가 차량에서 키를 제거하도록 합니다. 차량에서 키를 제거할 수 있는 요건은 자동차 제조업체에서 정의합니다. 차량에서 키가 제거된 경우에만 자동차 제조업체는 원격 삭제 요청을 키홀더 기기로 전송합니다.
기기에서 키가 제거된 경우 디지털 차 키를 관리하는 애플릿에서 암호화 형식으로 서명된 제거 증명을 생성하며 해당 증명은 자동차 제조업체에서 삭제 증명 자료로 사용하며 KIS에서 키를 제거할 때도 사용합니다.
NFC 표준 트랜잭션
NFC 키를 사용하는 차량의 경우, 표준 트랜잭션은 리더기와 iPhone에 임시 키 쌍을 생성하여 리더기와 iPhone 간의 보안 채널을 엽니다. 키 합의 방식을 사용하여 공유 비밀이 리더기와 iPhone에 파생될 수 있으며 해당 공유 비밀은 키 유도 함수인 Diffie-Hellman과 페어링 절차에서 생성된 장기 키 서명을 통해 공유 대칭 키를 생성하는 데 사용할 수 있습니다.
차량 측에서 생성된 임시 공개 키는 리더기의 장기간 개인 키로 서명되며 iPhone에서 해당 리더기를 인증합니다. iPhone 관점에서 보자면 이 프로토콜은 통신을 가로채려는 공격자로부터 개인정보를 보호하기 위해 설계되었습니다.
마지막으로 iPhone에서는 구축된 보안 채널을 통해 공개 키 식별자와 리더기의 데이터를 암호화하고 리더기의 데이터에서 파생된 확인 요청 및 일부 추가 앱 특정 데이터에 대한 서명도 암호화합니다. 리더기에서 iPhone 서명을 확인하는 이 절차를 통해 리더기에서 기기를 인증할 수 있게 됩니다.
빠른 트랜잭션
iPhone은 이전에 표준 트랜잭션에서 공유된 비밀을 기반으로 암호문을 생성합니다. 이 암호문을 통해 성능에 민감한 경우에 차량이 기기를 빠르게 인증할 수 있습니다. 또한, 표준 트랜잭션에서 이전에 공유된 비밀 및 새로운 임시 키 쌍으로부터 세션 키를 유도하여 차량과 기기 간의 보안 채널을 구축합니다. 차량에서 보안 채널을 구축할 수 있는 경우 해당 차량이 iPhone에 인증됩니다.
BLE/UWB 표준 트랜잭션
UWB를 사용하는 차량의 경우, Bluetooth LE 세션이 차량과 iPhone 간에 구축됩니다. NFC 트랜잭션과 비슷하게 공유된 비밀 사항은 양측에서 파생되며 안전한 세션의 설립을 위해 사용됩니다. 이 세션은 URSK(UWB 레인징 비밀 키)를 파생하고 동의하기 위해 사용됩니다. URSK는 사용자 기기 및 차량의 UWB 라디오에 제공되어 사용자 기기를 차량 근처 또는 내부의 특정 위치에 정확하게 위치시킬 수 있습니다. 그 다음 차량은 기기 위치를 사용해서 차량 잠금 해제 허용 또는 시동 걸기에 대한 결정을 내립니다. URSK는 사전 정의된 TTL을 가집니다. TTL 만료 시 레인징 방해를 방지하기 위해서 URSK는 보안 레인징이 활성화되지 않았지만 BLE가 연결되어 있는 도안 기기 SE 및 차량 HSM/SE에서 미리 파생될 수 있습니다. 이러면 시간이 촉박한 상황에서 새 URSK를 파생하기 위한 표준 트랜잭션의 필요성이 사라집니다. 미리 파생된 URSK는 매우 빠르게 차 및 기기의 UWB 라디오에 전송되어 UWB 레인징 방해를 방지할 수 있습니다.
개인정보 보호
자동차 제조업체의 키 인벤토리 서버(KIS)에서는 기기 ID, SEID 또는 Apple ID를 저장하지 않습니다. 키 추적 서버에서는 변경 가능한 식별자인 인스턴스 CA 식별자만을 저장합니다. 인스턴스 CA 식별자는 기기의 개인 데이터나 서버와도 연결되어 있지 않기 때문에 사용자가 기기를 완전히 삭제하는 경우 해당 식별자도 삭제됩니다(모든 콘텐츠 및 설정 지우기 사용).