
Безопасность ключей от автомобиля в iOS
Разработчики могут обеспечивать защищенный доступ к электронным ключам от автомобиля на поддерживаемых iPhone и часах Apple Watch, объединенных в пару.
Объединение в пару с владельцем
Владелец должен подтвердить, что транспортное средство принадлежит ему (способ подтверждения зависит от автопроизводителя; часто требуется принести один или два брелока для ключей), после чего он сможет начать процесс объединения в пару в приложении автопроизводителя с помощью ссылки в письме, отправленном автопроизводителем, или через меню транспортного средства. В любом случае при объединении в пару владелец должен ввести на iPhone секретный одноразовый пароль, с помощью которого создается защищенный канал связи по протоколу SPAKE2+ на основе кривой NIST P‑256 с целью создания безопасного канала SCP03 для передачи данных между устройством и транспортным средством. При использовании приложения или ссылки в письме пароль автоматически передается на iPhone. При объединении в пару из интерфейса транспортного средства пароль необходимо ввести вручную.
Если объединение в пару выполняет владелец, транспортное средство отправляет по каналу SCP03 запрос, предписывающий Secure Element на устройстве сгенерировать пару ключей на основе эллиптической криптографии (ECC). Затем идентификатор транспортного средства и его открытый ключ безопасно привязываются к этой паре ключей. Открытый ключ устройства (device.PK) отправляется назад на транспортное средство в формате сертификата X.509 вместе с цепочкой сертификатов, которая подтверждается открытым ключом корневого сертификата автопроизводителя (root.PK), встроенным в транспортное средство при его производстве. Это позволяет проверить открытый ключ устройства и принять его в качестве ключа владельца.
Ключ владельца в Secure Element на устройстве также безопасно связывает сертификат root.PK автопроизводителя, предоставленный транспортным средством по каналу SCP03, с ключом device.PK для совместного использования ключа.
Если это требуется для целей страхования, каждый ключ владельца необходимо зарегистрировать на сервере автопроизводителя. Устройство отправляет свою цепочку сертификатов device.PK на сервер отслеживания ключей (KTS), который возвращает подпись, подтверждающую регистрацию. Устройство передает эту подпись на транспортное средство в конце процесса объединения в пару или при следующей стандартной транзакции с транспортным средством (см. далее), и транспортное средство активирует ключ владельца, если подпись KTS успешно проверена. Ключи подписей KTS являются собственностью автопроизводителя.
Совместное использование ключей
iPhone отправителя может делиться ключами с поддерживаемыми устройствами, отправляя получателю URL‑адрес приглашения по любому каналу связи, например электронной почте, iMessage, WhatsApp, WeChat или AirDrop. Этот URL‑адрес перенаправляет получателя в конфиденциальный почтовый ящик на сервере ретрансляции, работающем по спецификации IETF. Ключ шифрования конфиденциальности отправляется в виде фрагмента URL‑адреса.
В ходе этого процесса iPhone отправителя запрашивает у пользователя аутентификацию (с помощью Face ID, Touch ID или код‑пароля) и безопасное подтверждение намерения, как описано в разделе Использование Optic ID, Face ID и Touch ID. Авторизация отправителя временно сохраняется в Secure Element, чтобы ее можно было использовать впоследствии, когда устройство получателя вернет запрос на подписание.
В целях повышения безопасности для активации переданного ключа отправитель может потребовать у получателя использовать один из доступных вариантов активации, поддерживаемых его автопроизводителем, или ввести код‑пароль на устройстве получателя.
После принятия приглашения устройство получателя извлекает данные для создания ключа из почтового ящика на сервере ретрансляции и создает цифровой ключ по спецификации цифровых ключей CCC. В процессе создания ключа он подписывается отправителем. Устройство получателя возвращает цепочку сертификатов создания ключа на iPhone отправителя через сервер ретрансляции. Затем iPhone отправителя использует сертификат root.PK, встроенный в Secure Element, чтобы подтвердить, что ключ получателя был создан с использованием ожидаемой цепочки сертификатов. В случае успешного подтверждения iPhone отправителя подписывает открытый ключ ECC устройства получателя и возвращает подпись получателю через сервер ретрансляции. Подпись авторизуется с использованием авторизации отправителя, ранее сохраненной в Secure Element.
Права доступа к ключу и подпись отправителя передаются транспортному средству при первом использовании общего ключа на этом транспортном средстве (см. раздел Стандартные транзакции). Права доступа описывают перечисленные ниже характеристики.
Уровень доступа: например, разблокировка или вождение.
Политика дальнейшей передачи ключа: например, дальнейшая передача запрещена, ограничена или разрешена без ограничений длины цепочки передачи.
Некоторые автопроизводители требуют регистрировать каждый общий ключ на своем сервере. Устройство отправляет свою цепочку сертификатов device.PK на сервер отслеживания ключей (KTS), который возвращает подпись, подтверждающую регистрацию. Устройство получателя предъявляет эту подпись транспортному средству при первой обмене данными c ним (см. раздел Стандартные транзакции). Транспортное средство проверяет подпись, и, если подпись KTS успешно подтверждена, активирует общий ключ. Эти ключи подписей являются собственностью автопроизводителя.
Удаление ключа
Ключи можно удалять следующими способами:
на устройстве держателя ключа;
с устройства владельца;
с устройства, поделившегося ключом, с надлежащей авторизацией;
изнутри транспортного средства.
Удаление на iPhone держателя ключа выполняется немедленно, даже если в этот момент держатель использует ключ или его устройство не подключено к интернету.
Удаление ключей в транспортном средстве может быть возможно в зависимости от политики автопроизводителя:
в любое время;
только когда транспортное средство подключено к интернету;
только при наличии брелока для ключей (чтобы исключить возможность остаться без ключа).
В любом случае информация об удалении на устройстве держателя ключа или в транспортном средстве передается в KTS на стороне автопроизводителя, где выданные ключи регистрируются для целей страхования.
Владелец и пользователи с соответствующими правами могут запросить удаление, используя запрос об удаленном прекращении действия ключа, подписанный личным ключом отправителя запроса (device.SK). Для этого необходимо выбрать пользователей в списке аккаунтов держателей общего ключа на задней стороне ключа от автомобиля в Apple Wallet. Сначала запрос отправляется автопроизводителю, чтобы он удалил ключ с транспортного средства. Условия удаления ключа с транспортного средства определяет автопроизводитель (как указано выше). Только после удаления ключа с транспортного средства автопроизводитель отправляет подписанный запрос об удаленном прекращении действия ключа на устройство держателя ключа.
После того как действие ключа на устройстве прекращено, апплет, который управляет цифровыми ключами от автомобилей, создает удостоверение прекращения действия ключа, заверенное криптографической подписью. Это удостоверение подтверждает удаление ключа автопроизводителем и используется для удаления ключа с сервера KIS.
Конфиденциальность
В KTS автопроизводителя не хранятся идентификаторы устройств, SEID или данные Аккаунта Apple. На этом сервере хранится только изменяемый идентификатор — идентификатор экземпляра центра сертификации. Этот идентификатор не привязан к каким-либо персональным данным на устройстве или на сервере, и он удаляется, когда пользователь запускает функцию «Стереть контент и настройки».
Стандарт CCC также требует, чтобы информация KTS хранилась на стороне автопроизводителя с соблюдением конфиденциальности и использовалась только в страховых случаях или для других надлежащих запросов.
Данные о регистрации ключа (идентификатор ключа, идентификатор транспортного средства, открытый ключ транспортного средства, цепочка сертификатов открытого ключа устройства, права доступа к ключу), которые устройство отправляет в KTS, шифруются открытым ключом шифрования конфиденциальности KTS. Серверы Apple, которые передают данные о регистрации ключа с устройства на сервер автопроизводителя, неспособны расшифровать эти данные. Apple не знает, с кем владелец поделился ключами для своего транспортного средства.
Любой другой аксессуар для iPhone или Apple Watch, не способный пройти аутентификацию на устройстве, не сможет получить статический идентификатор посредством стандартной или быстрой транзакции через NFC или Bluetooth. Если устройство не может распознать идентификатор транспортного средства (например, по ошибке пытается получить доступ к другому внешне похожему транспортному средству), то апплет в Secure Element использует суррогатный ключ, который генерирует случайные значения вместо осмысленных ключей или криптограмм.
Первоначальное Bluetooth-соединение защищено временными ключами, которые предоставляются при передаче ключа для автомобиля или автопроизводителем в ответ на запрос об отслеживании ключа.