Как я могу быть уверен, что Apple не вмешалась в мое приложение? - PullRequest
0 голосов
/ 27 сентября 2018

Из того, что я понимаю, когда вы загружаете приложение iOS в App Store, и оно одобрено, у Apple есть процесс, в котором они фактически шифруют приложение, используя только ключ, который у них есть (оно также запекается на всех устройствах Apple),затем снова подпишите его (видя, что у них нет личного подписывающего ключа оригинального издателя).Следовательно, само приложение, которое кто-то загружает из App Store, больше не содержит криптографических «доказательств» того, что это приложение отправлено им издателем.

Независимо от того, будет ли Apple когда-нибудь рисковать изменением загруженного файла.приложение (для какой выгоды?), может показаться, что как издателю программного обеспечения очень трудно, если не невозможно, быть уверенным, что то, что загружается из App Store, не было подделано в какой-то момент до того, как Apple зашифровала / повторно-подписал его.

Да, его можно установить на взломанное устройство, а инструменты, такие как сцепление, можно использовать для его расшифровки, но не существует простого способа определить, были ли внесены какие-либо изменения, которые я могу определить.В идеале я хотел бы иметь какую-то проверку времени выполнения в приложении, чтобы оно не было изменено или переупаковано в любом случае, но хотя я могу сделать это для приложений, не распространяемых через магазин приложений, кажется, что это невозможнодля приложений из магазина приложений.

Кроме того, кто-нибудь знает, одинаков ли процесс для приложений TestFlight?

1 Ответ

0 голосов
/ 13 апреля 2019

Это просто невозможно на любом не взломанном устройстве, поскольку вы не можете получить доступ к исполняемому файлу из песочницы.Чтобы проверить изменения, вам нужно выйти из песочницы, расшифровать исполняемый файл и, возможно, получить хэш-сумму (sha1, md5 ...) и сравнить ее с загруженной версией.

...