Автоматический подбор PIN-кода для iPhone

У iPhone есть функция, которая стирает пользовательские данные с устройства, если PIN-код на экране блокировки введён неверно 10 раз. Казалось бы, подобрать даже четырёхзначный код нереально – шанс угадать слишком мал. Тем не менее, пишут про электронное устройство, которое PIN-код успешно подбирает. Хитрость в том, что устройство, обнаружив ошибочный ввод по показаниям дисплея, моментально отрубает питание телефона (для реализации этого требуются вскрыть корпус и подключить прерыватель). Из-за алгоритмической ошибки в процедуре обработки ввода PIN-кода, телефон не успевает записать новое значение счётчика попыток в память, поэтому после перезагрузки можно попробовать ещё раз (пишут, что примерно 111 часов нужно для проверки всего множества кодов).

Насколько можно понять, речь об уязвимости CVE-2014-4451, которая датирована 18 ноября 2014 года и должна быть уже закрыта. Очевидно, что ошибка разработчиков состоит в последовательности шагов алгоритма: нужно сперва увеличивать значение счётчика попыток в энергонезависимой памяти, а только потом выводить результат проверки на экран (не наоборот). Очень показательный пример того, что в реализации функций обеспечения безопасности подобная “мелочь” может начисто удалить все защитные свойства.

()

Похожие записки:



Далее - мнения и дискуссии

(Сообщения ниже добавляются читателями сайта, через форму, расположенную в конце страницы.)

Комментарии читателей блога: 3

  • 1. 8th April 2015, 00:39 // Читатель sarin написал:

    наверняка, можно было бы определить начало записи и в энергонезависимую память и отключить питание. например анализируя энергопотрбление.

  • 2. 8th April 2015, 00:44 // Читатель sarin написал:

    наверняка, можно было бы определить начало записи и в энергонезависимую память и отключить питание. например, анализируя энергопотрбление.

  • 3. 8th April 2015, 12:16 // Александр Венедюхин ответил:

    > можно было бы определить начало записи и в энергонезависимую память

    Вряд ли: это очень сложно проделать, так как процесс записи быстрый, а энергопотребление минимальное. Но дело даже не в этом – запись нового значения счётчика в память происходит в любом случае, вне зависимости от того, правильное значение введёно или нет, соответственно, нельзя определить, что автомат угадал код.