Elcomsoft про доступ к данным на iPhone

Вдогонку ко вчерашнему посту мне удалось получить комментарий CEO компании Elcomsoft Co Ltd на тему доступа к данным на iPhone. Тут он не касается морально-юридической стороны аспекта по построению backdoor в операционную систему, а рассуждает просто о технической возможности доступа к данным на смартфоне.
Компания ElcomSoft — известный игрок в мире доступа к зашифрованным данным, особенно известен вот этот случай 15-летней давности (черт, уже целых 15 лет прошло, с ума сойти — я ведь читал это все в новостях, когда эта драма разворачивалась). В компании знают кое-что о доступе к данным на iOS устройствах, поэтому их комментарий интересен вдвойне. С некоторыми сокращениями (и с согласия автора) я публикую его комментарий в блоге.
—————
Есть один нюанс. Не ломая пароль, кое-что таки можно вытащить и из залоченного аппарата, но Apple об этом предпочитает не говорить. Мы об этом писали. Если в двух словах — даже в iOS 8 (ну и 9, конечно), некоторые интересные (в смысле, потенциально полезные для следствия) данные шифруются по-прежнему без участия пасскода. На самом деле, по-другому и невозможно реализовать, иначе только что включенный (но ещё не разлоченный) телефон будет вообще неработоспособен. В частности, журнал звонков, логи системы (подключения к сетям и прочее), логи приложений, некоторые данные о почте, временные файлы. Журнал звонков, конечно, проще у оператора взять, но тем не менее.

На старые устройства (до iPhone 4 включительно) можно было через DFU грузить свой рамдиск, пользуясь уязвимостью в бутроме (сначала делая tethered jailbreak фактически). C iPhone 4S и выше мы работаем только если jailbreak уже установлен (более того, нужен ещё OpenSSH). Ну а FBI фактически заказала Apple сделать аналог нашего продукта Elcomsoft iOS Forensic Toolkit (только заточенного под конкретный аппарат).
Что касается ломания пасскода — тут оффлайн-атака невозможна, проверять пасскод можно только на устройстве, и скорость перебора очень низкая – от 5 до 25 п/с, в зависимостьи от модели аппарата. Если загружаемся из образа (подписанного) — то опция “стирать после 10 неверных попыток” не действует, поскольку она действует на уровне системы, а не железа.
Наконец — для 64-битных устройств (то есть всех начиная с iPhone 5S) всё сильно сложнее, пароль перебирать нереально вообще (опускаем технические детали). То есть для них можно вытащить (точнее, расшифровать) только упомянутый выше очень ограниченный объём данных, типа журнала звонков и лога.
Реально способов добраться до контента залоченного айфона (4S и выше) только три:
1. Вытянуть клаудный бэкап (конечно, если он есть, и если известен Apple ID & password; конечно, сам Apple может добраться до бэкапа и без пароля, поскольку данные там не зашифрованы).
2. Найти компютер, к которому аппарат подключался, и был установлен trusted relationship. При перезагрузке аппарата, правда, ключи инвалидируются. Но если не перезагружали после последнего подключения — то можно не вводя пасскод сделать iTunes-бэкап, а иногда ещё кое-что дополнительно вытащить (даже если бэкап с паролем), в зависимости от версии iOS.
3. Сломать пароль перебором прямо на экране. Я знаю как минимум два решения (программно-аппаратных), плюс некоторые компании предоставляют подобный сервис (дорого). Но там очень много ограничений как по моделям, так и по версиям iOS, плюс не все справляются с опцией удаления данных после 10 неверных попыток и даже если опция не установлена, то система после каждого неверного ввода увеличивает интервал, после которого можно попробовать следующий вариант. Указанные решения обходят эту защиту (делая паузы между попытками — если они делаются реже некоторого интервала в районе 30-40 секунд, то пауза НЕ увеличивается, но понятно что перебор получается совсем уж медленный; плюс в некоторых версиях iOS 8 была ошибка, которая вообще позволяла эту паузу обойти). Но в одном из решений, наоборот, надо *специально* ввести неверный пароль несколько раз, пока телефон не скажет что он заблокирован, и только тогда запускать процесс. В другом решении правильность пароля можно определить только по камере, наведённой на экран. В третьем надо разбирать аппарат и подключаться напрямую к процессору аппарата. По грубым оценкам, success rate для таких решений не превышает 10% — в с мысле, на 9 из 10 аппаратов процесс перебора даже не запускается, по разным причинам.