Trusted Computing, iPad, сертификация немодифицированных приложений
Так как Apple контролирует весь аппаратный / программный стек, возможно ли получить следующее (через некоторый тип доверенных вычислений):
- аппаратное обеспечение удостоверяет, что программное обеспечение является подлинной, не сломанной iOS
- iOS подтверждает на моем сервере, что приложение работает без изменений
Чего это добиться, заключается в следующем:
когда мой сервер отправляет данные, гарантируется, что данные могут быть использованы только так, как я намереваюсь их использовать (так как он запускает мое приложение без изменений, на iOS без сломанной тюрьмы).
Это предотвращает такие вещи, как модифицированное приложение, которое крадет данные, передаваемые с сервера на клиент. Я понимаю, что теоретически можно подслушать, но это можно устранить с помощью шифрования.
Спасибо!
1 ответ
Вкратце нет.
Вы говорите о концепциях доверенных вычислений на платформе, которая не поддерживает TC. IOS не включает ничего рядом Trusted Computing - Remote Attestation
, У него нет TPM.
Цепочка доверия, установленная чипом Apple, просто пытается остановить выполнение, если подпись следующего элемента в цепочке загрузки недействительна. Если что-то не получается (джейлбрейкнуто), это не эффективный способ его обнаружения. Он очень похож на Secure Boot, представленный Microsoft, но сильно отличается от Trusted Computing, который attest
какая версия системы в данный момент запущена.
При использовании доверенных вычислений TPM сохраняет измерения (PCR) загрузки системы (SRTM). При загрузке первое выполненное действие (CRTM - единственное, чему мы действительно должны безоговорочно доверять) запустит цепочку путем измерения BIOS, отправит меру в TPM (в PCR) и передаст выполнение ему (BIOS). Затем BIOS делает то же самое для следующего элемента в цепочке загрузки.
Измерения, сохраненные в PCR, могут затем использоваться для шифрования или дешифрования информации (операции SEAL/UNSEAL) в зависимости от среды, загруженной в память.
TPM не принимает меры по измерениям (хорошо или плохо). Идея состоит не в том, чтобы ограничивать то, что может быть загружено, а в том, чтобы знать, какая среда загружена на платформе. Если что-то было изменено, TPM не будет содержать правильные значения PCR, и операция UNSEAL (расшифровка с использованием PCR в качестве ключа) не будет работать.
В случае удаленной аттестации речь идет об операции QUOTE. По сути, это то же самое, что и SEAL, но использует другие ключи, чтобы убедиться, что оценивающая сторона может подтвердить, что аттестация действительно происходит из реального / совместимого TPM.
Несомненно, система может использовать операцию SEAL для защиты секрета, используемого для расшифровки операционной системы, и, таким образом, производить - в некотором роде - тот же эффект, что и безопасная загрузка.
Для получения дополнительной информации см. Мои другие сообщения.