Можливо, ви пам'ятаєте приголомшливу новину про виявлення уразливості відновлення в iOS 9.x
При наявності цифрового підпису, дана утилітадозволяє відновити будь-який 32-бітове пристрій на будь-яку версію прошивки iOS 9.x, незалежно від встановленої початкової версії, без всяких ключів, додаткового ПЗ і навіть без виконання процедури джейлбрейка.
Як видно з цього опису, дана пролом вбезпеки має великий потенціал і дозволяє повернути до ладу всі 32-бітові пристрою. У зв'язці з джейлбрейком Home Depot для версій iOS 9.1-9.3.4, все сумісні пристрої більше ніколи не залишаться без джейлбрейка, назавжди збережуть можливість повернення на версію iOS 9 без страху перед процедурою поновлення або відновлення.
Хороша новина полягає в тому, що розвиток утилітиiDeviceReRestoreВипуск фінальної версії перевіреного часом інструментуidevicerestoreстало можливим завдяки розробникам @alitek123, @Thmitt і @JonathanSeals, які скористалися виявленим @alitek123 недоліком безпеки.Проведення процесу бета-тестування - заслуга розробників @Mirko, @ee_csw і @DjSn0wfall.
Для перевірки роботи інструмента у дії йогоВи можете завантажити з веб-сайту iDeviceReRestore. Поточний номер утиліти —1.0.1, у якій було вирішено проблему управління залежностями, яка була у початковій версії інструмента. Зараз існують версії інструменту для роботи під керуванням Linux та MacOS. Версія для роботи під ОС Windows відсутня, але я знаю безліч прикладів успішного застосування цього інструмента як віртуальну машину.
Деталі про роботу інструменту:
- Підтримкатільки32-бітових пристроїв.
- Відновленнятількина версії прошивокiOS 9.x.
- Вихідна версія прошивки може бутибудь-який, Протестовані версії з iOS 6 по iOS 10.
- Наявність джейлбрейку для вихідної версіїне обов'язково.
- Процес не вимагає наявності ключів, додаткового ПЗ та інших спеціальних інструментів для даного випадку.
- Обов'язковонаявність збережених цифрових підписів для встановлюваної версії прошивки.
- Наявність спеціальних вимог для цифрових підписів.Цифрові підписи не можуть бути з розряду тих,що отримані «по повітрю». Можна використовувати підписи з розряду «Erase» або «Update», хоча для процесу не всі вони підійдуть. Цифрові підписи повинні бути збережені без спеціального для даного випадку одноразового коду. Якщо цифровий підпис починається з рядка «MIIKkj», То все нормально, її можна використовуватися. Якщо немає, то вона можливо підійде, але потрібна додаткова перевірка.
- Метод вимагає наявності підписаного «baseband»,наприклад Prometheus. Тим не менше, більшість, якщо всі пристрої, повинні без проблем отримати робочий baseband починаючи від поточної версії для iOS 10 і підписаною версією, отриманої «по повітрю».
- Відновлення з версії iOS 9 на версію iOS 9 можна виконати в режимі відновлення, відновлення з версії, відмінної від iOS 9, на версію iOS 9 необхідно виконувати тільки в режимі «DFU».
- Цифрові підписи повинні мати окремі квиткиiBSS для відновлення в режимі DFU. У разі їх відсутності, ці цифрові підписи можуть бути використані тільки для відновлення з версії прошивки iOS 9 на версію прошивки iOS 9.
Для перевірки сумісності наявної цифровоїпідписи з утилітою «iDeviceReRestore», можна скористатися цим «nonce-checker» сервісом. Або, відкрити цифровий підпис в текстовому редакторі і перевірити її на предмет вмісту квитків iBSS і змісту початкової рядка.
За словами розробника @ DjSn0wfall, компаніяApple не зможе закрити цю вразливість з наступних причин. У режимі «DFU» пристрій знаходиться в режимі очікування перевірки легітимності компонента підпису, ніж є квиток iBSS. Після завантаження цифрового підпису з квитком iBSS, строго кажучи ми не порушуємо роботу механізму безпеки, що дозволяє нам в наступному кроці завантажити підписаний компонент iBEC, в якому вже присутня необхідна пролом - відсутність спеціального одноразового коду «no-nonce. Після цього ми инициализируем процес відновлення пристрою, ігноруючи будь-які інші вимоги з безпеки і перевірки цілісності. Слід зазначити, що даний експлойт також частково присутня починаючи з версії iOS 8 і аж до версії iOS 10.2.1, але в цих версіях даний експлойт не може бути використаний.