🟢 ТРИЗка от MyBox: как удалённо убедиться, что на устройстве запущена конкретная версия приложения?
Ребят, это первая ТРИЗка Мастерской, за решение которой с нас приз и безмерное уважение.
Задачка пришла от Вовы, лидера проекта MyBox: «аттестовать» по сети наши устройства на базе Apple Mac mini. Нужно, чтобы MyBox мог скопировать себя на другое MacOS устройство и подтвердить что он взаимодействует ровно с той же версией приложения с неизменным кодом.
Как Вова сформулировал задачу: нужно заставить macOS предоставить удалённому узлу (через сеть, внутри одной машины проблем нет) подписанный Apple «аттестат», подтверждающий, что на устройстве запущено приложение с конкретным хешем бинарника. При этом macOS должна работать в режиме полной безопасности (SIP включён, приватные API не используются, понижение защиты не допускается).
Что уже не сработало у команды MyBox:
-
Apple API: компания не предоставляет подходящего API для сторонних разработчиков. Есть внутренние механизмы (активация устройства, работа с MDM и т.п.), но они а) недоступны и б) позволяют аттестовать только сам Mac и OC, а не конкретное приложение.
-
Использование приватных API: потребовало бы отключения системной защиты (SIP), что недопустимо.
-
DeviceCheck: разработчик с доступом к Apple Developer Account Мастерской может сделать свою версию софта и организовать доп. дверь себе для входа.
-
AppAttest: не работает на MacOs и ограничен примерно как DeviceCheck.
Как работают ТРИЗки и как прислать ответ, чтобы он засчитался - написали вот тут (ответ кидать комментарием под этот пост). Тому, кто пришлет первым рабочее решение, от Вовы вручим MyBox на базе Apple Mac Mini на 1 Тб SSD*
*не подвох под звездочкой: если вам не нужен MyBox, но ТРИЗку решите - подарим что-то альтернативное, аналогичное по полезности и стоимости.
В этом посте были ссылки, но мы их удалили по правилам Сетки