Apple против полиции: как менялась защита данных в iOS 4 — 13.5

14 мая, 2020, Oleg Afonin
Рубрика: «Безопасность», «Новости индустрии», «Полезные советы»
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

Современный смартфон — бесценный кладезь информации с одной стороны и вполне реальная угроза приватности с другой. Смартфон знает о пользователе столько, сколько не знает ни один человек — начиная с подробной истории местоположения и общения в интернете и заканчивая кругом общения в реальной жизни, который определяется распознаванием лиц встроенными технологиями искусственного интеллекта. Чем больше и чем разнообразнее становится информация, собираемая о пользователе, тем в большей степени её требуется защищать. Задача же правоохранительных органов прямо противоположна: улики требуется из устройства извлечь. Возникает конфликт интересов.

“Мы глубоко уважаем правоохранительные органы и сотрудничаем с ними во многих областях, но по этому вопросу мы не согласны. Позвольте мне выразиться предельно ясно: ослабление шифрования или его устранение вредит в первую очередь честным людям, которые используют его в легитимных целях.” (интервью Тима Кука, 2015)

Оглянемся назад и посмотрим, как эволюционировали методы защиты данных, которые использовала Apple в своих устройствах.

iPhone OS 1 — 3: нулевой уровень

В первых версиях iOS (и, соответственно, в первых трёх моделях iPhone) защита данных была чисто символической: PIN-код защищал информацию от любопытных глаз, но и только. Никакого шифрования не было; данные можно было извлечь как из самого устройства, так и из микросхемы памяти. Впрочем, в первых поколениях iPhone и не было никакой особо ценной информации — разве что фотографии. Джон Здиарски был первым, кто обнаружил способ извлечь информацию из заблокированных iPhone, см. публикацию iOS Forensic Investigative Methods.

Модели устройств:

  • iPhone OS 1.0 – iPhone
  • iPhone OS 2.0 – iPhone 3G
  • iPhone OS 3.0 – iPhone 3GS

iOS 4: шифрование файловой системы

До версии iOS 4, данные в iPhone хранились в открытом виде. Их извлечение было вопросом несложных манипуляций. Сама компания Apple активно сотрудничала с правоохранительными органами, соглашаясь извлечь данные из присланного iPhone (забегая вперёд, так продолжалось вплоть до выхода iOS 8). В iOS 4 впервые появилось шифрование. Впрочем, использование аппаратного идентификатора в качестве ключа шифрования позволило довольно быстро найти способ извлечь и расшифровать зашифрованные данные, даже если код блокировки экрана был неизвестен. Кстати, именно наша компания была первой, кто сумел  взломать устройства с iOS 4.

Модели устройств:

  • iOS 4.0 – iPhone 4
  • iOS 5.0 – iPhone 4s
  • iOS 6.0 – iPhone 5

iOS 7: запрос при установлении соединения с компьютером

Можно ли сегодня представить себе, что когда-то iPhone можно было просто подключить к компьютеру, и он сразу устанавливал соединение? Тем не менее, до 7-й версии iOS было именно так. И только в iOS 7, наконец, появился привычный всплывающий запрос, требующий разблокировать экран устройства и подтвердить установление соединения с новым компьютером (последующие подключения обходились без этого благодаря файлам pairing/lockdown).

iOS 7 стала первой версией iOS, работавшей на первом 64-разрядном iPhone, оборудованном датчиком отпечатков пальцев и аппаратной подсистемой безопасности Secure Enclave.

Модели устройств:

  • iOS 7.0 – iPhone 5s, первый 64-разрядный iPhone с Secure Enclave

Здиарски обнаружил уязвимость в устройствах iOS, см. Apple Confirms “Backdoors”; Downplays Their Severity. Некоторые из обнаруженных Здиарски служб по сей день используются в Elcomsoft iOS Forensic Toolkit.

iOS 8: шифрование на основе кода блокировки; взлом паролей перестал работать

iOS 8 стала прорывом в области безопасности мобильных операционных систем. Именно в iOS 8 был заложен фундамент той модели безопасности, которая используется в iPhone по сегодняшний день.  С точки зрения безопасности изменилось буквально всё.

Модели устройств:

  • iOS 8.0 – iPhone 6 и 6 Plus

Начнём с простого — логического анализа.

До выхода iOS 8 Apple использовали следующую практику. При установлении соединения между iPhone и другим устройством (подразумевался компьютер пользователя) создавалась запись pairing record, которая сохранялась в виде файла. В старых версиях iOS эта запись была фиксированной; она не менялась никогда, даже после сброса устройства. Раз установив соединение с одним компьютером, пользователь мог спокойно подключать iPhone к любому другому устройству — если скопировал файл с pairing record. Именно такой файл и создавался в процессе настройки iPhone на заводе. Файл сохранялся на сервере компании, что позволяло Apple добиться сразу двух целей. Во-первых, сотрудники компании могли помочь пользователю, который забыл код блокировки, извлечь из телефона важные, уникальные данные (о существовании резервного копирования большинство пользователей не слышало ни тогда, ни сейчас). Второй, не декларируемой особенностью данной схемы было сотрудничество с полицией. Если в Apple присылали iPhone с сопроводительным ордером, то компания без проблем извлекала из него информацию. Это работало, даже если код блокировки был неизвестен. Кстати, разорвать раз установленное соединение было невозможно даже сбросом телефона к заводским настройкам.

Сотрудничеству с полицией был положен конец с выходом iOS 8. Начиная с этой версии системы, для установления с компьютером требуется не один фиксированный ключ, а пара уникальных ключей, которая генерируется при установлении соединения с новым устройством. Одна половинка ключа сохраняется в самом iPhone, а вторая — передаётся на компьютер пользователя, где и сохраняется в файл pairing record. Стоит удалить любую из половинок, и соединение не установится. Сброс телефона — уничтожаются все сохранённые в нём «половинки», соединение невозможно.

Комбинация шифрования файловой системы динамическим ключом на основе кода блокировки экрана и нового подхода к установлению соединения привела к тому, что ни сотрудники Apple Genius bar, ни полиция больше не могут извлечь данные из iPhone на основе заводских записей pairing. Об этом же написано в официальной инструкции Apple для правоохранительных органов, доступной только на английском языке:

For all devices running iOS 8.0 and later versions, Apple is unable to perform an iOS device data extraction as the data typically sought by law enforcement is encrypted, and Apple does not possess the encryption key. All iPhone 6 and later device models are manufactured running iOS 8.0 or a later version of iOS. Apple’s guidelines for law enforcement requests

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

Кроме того, в iOS 8 появилась новая подсистема Ограничения, позволяющая установить 4-значный цифровой PIN-код для защиты от некоторых действий с устройством (например, защита от сброса или изменения кода блокировки экрана, установки или удаления приложений).

iOS 9: длина кода блокировки увеличена до 6 цифр

В iOS 9 появилось единственное заметное новшество: длина кода блокировки экрана, которую предлагает система при настройке телефона по умолчанию, увеличена до 6 цифр. Пользователь по-прежнему может настроить 4-значный PIN, но от версии к версии сделать это становится всё сложнее.

В iOS 9 впервые появилось ограничение на время жизни записей о сопряжении (см. следующий раздел); в этой версии системы он составляет 6 месяцев с момента последнего использования.

Модели устройств:

  • iOS 9.0.1 – iPhone 6s и 6s Plus

iOS 10: ограничен срок действия записей о сопряжении

До iOS 10 записи lockdown (pairing records) действовали в течение длительного времени. В нашей лаборатории хранились записи, которым было несколько месяцев — и они продолжали работать. После того, как полиция начала активно пользоваться записями pairing record, извлекаемыми из компьютеров пользователей, в Apple решили ограничить срок действия этих записей. iOS 10 и более новые версии аннулируют записи о сопряжении через 30 дней с момента последнего использования.

iOS 10 стала и большим шагом назад в том, что касается защиты резервных копий. Начиная с iOS 5 (или iOS 4), Apple использовала один и тот же алгоритм для проверки паролей к резервным копиям iPhone. Для вычисления ключа шифрования вычислялось 20,000 итераций хеш-функции. Это было достаточно медленно и достаточно безопасно. В iOS 10 произошла неожиданность: в защите резервных копий обнаружилась забытая уязвимость, использующая единственную итерацию хеша. На основе этой уязвимости мы создали атаку со скоростью в десятки миллионов паролей в секунду.

Модели устройств:

  • iOS 10.0.1 – iPhone 7 и 7 Plus

iOS 10.1: исправлена проблема с защитой резервных копий

Описанная выше уязвимость в защите резервных копий была исправлена в iOS 10.1; наша компания удостоилась благодарности в сопроводительной документации.

iOS 10.2: защита резервных копий в параноидальном режиме

В очередной версии iOS в Apple решили закрыть вопрос с защитой резервных копий раз и навсегда, на несколько порядков увеличив количество итераций. С этого момента перебор пароля к резервной копии стал чрезвычайно неспешным: от нескольких паролей в минуту (!) с использованием ресурсов центрального процессора до нескольких сотен паролей в секунду при использовании мощного графического ускорителя.

iOS 10.3: переход на файловую систему APFS

В iOS 10.3 был осуществлён переход всех обновляемых устройств на новую файловую систему APFS. Сам по себе этот переход не сделал устройства более безопасными, но производителям ПО для анализа данных из iPhone пришлось в спешном порядке обновлять пакеты программ.

iOS 11: сопряжение с компьютером по паролю

В iOS 11 произошло два крупных изменения. Во-первых, установить сопряжение с новым компьютером теперь можно, если известен код блокировки: его потребуется ввести после разблокирования экрана (для самой разблокировки, кстати, можно по-прежнему использовать биометрику).

Вторым важным — и весьма сомнительным! — новшеством стала возможность сброса пароля к резервной копии. Сбросить пароль можно в настройках системы вместе с некоторыми другими настройками (в частности, при сбросе пароля на резервную копию удаляется и код блокировки экрана, что автоматически приводит к удалению таких данных, как список транзакций Apple Pay). Для сброса пароля к резервной копии потребуется ввести код блокировки экрана; таким образом, роль кода блокировки в модели безопасности iOS усилена ещё больше. С нашей точки зрения, эта возможность радикально снижает безопасность iOS. Мы написали об этом статью: iOS 11 Makes Logical Acquisition Trivial, Allows Resetting iTunes Backup Password.

Модели устройств:

  • iOS 11.0 – iPhone 8 и 8 Plus
  • iOS 11.0.1 – iPhone X

Срок действия записей о сопряжении ограничен ещё сильнее. Теперь существующие записи о сопряжении (pairing records) остаются действительными в течение 30 дней с момента последнего использования (источник: iOS Security Guide May 2019 edition, iOS 12.3).

В iOS 11 был представлен «аварийный» режим S.O.S., при активации которого отключается возможность разблокировки iPhone биометрическими датчиками. Наконец, в локальные резервные копии перестали сохраняться уведомления. Подробнее о новшествах в модели безопасности iOS 11 можно прочесть в статье New Security Measures in iOS 11 and Their Forensic Implications.

iOS 11.4.1: блокировка USB

В iOS 11.4.1 впервые появился режим ограничения (блокировки) USB, изначальным предназначением которого было противодействие инструментам для перебора кодов блокировки производства Cellerbrite и Grayshift. iOS 11.4.1 автоматически отключает передачу данных через USB (порт Lightning) через час после того, как экран устройства был заблокирован или отключен от компьютера или аксессуара USB. Кроме того, пользователь может активировать этот режим и вручную, просто запустив режим S.O.S.

iOS 12: расширен режим блокировки USB, Ограничения превратились в Экранное время

iOS 12 развивает и расширяет ограничения USB. Согласно новому руководству по безопасности iOS, опубликованному Apple после выпуска iOS 12, возможность передачи данных через порт USB блокируется сразу (а не через час, как это было раньше) после блокировки экрана устройства, если с момента последнего подключения через USB прошло более трех дней или если устройство находится в состоянии, когда для его разблокировки требуется пароль. Кроме того, порт USB блокируется, если пользователь активирует режим S.O.S. В оригинале этот момент описан так:

“In addition, on iOS 12 if it’s been more than three days since a USB connection has been established, the device will disallow new USB connections immediately after it locks. This is to increase protection for users that don’t often make use of such connections. USB connections are also disabled whenever the device is in a state where it requires a passcode to re-enable biometric authentication.”

Кроме того, в iOS 12 на смену Ограничениям пришёл новый сервис — Экранное время. Спустя время настройки и статистика Экранного времени стали доступны для синхронизации через iCloud.

Модели устройств:

  • iOS 12.0 – iPhone Xs и Xs Max
  • iOS 12.0 – iPhone Xr

iOS 13: смена пароля к резервной копии через код блокировки; режим блокировки USB снова расширен

В актуальной на сегодня ветке iOS 13, включающей в себя ответвление iPadOS, Apple отказалась от поддержки приложения iTunes на компьютерах Mac. Теперь резервные копии устройств с iOS/iPadOS создаются прямо из приложения Finder.

Модели устройств:

  • iOS 13.0 – iPhone 11 Pro и 11 Pro Max
  • iOS 13.0 – iPhone 11

При установке или изменении пароля, защищающего локальную резервную копию, пользователь должен ввести код блокировки экрана iPhone. Пароль необходимо ввести на самом iPhone. Таким образом, роль кода блокировки в iOS 13 окончательно возведена в абсолют; зная код блокировки экрана, с телефоном можно проделать практически всё, что угодно, от сброса пароля на резервную копию до смены пароля к Apple ID и отвязки устройства от iCloud.

Режим блокировки USB также был расширен. В iOS 13 появилось своеобразное «сопряжение» аксессуаров. Чтобы подсоединиться к компьютеру, пользователю нужно будет ввести PIN-код на iPhone, после чего устройства обменяются криптографическими ключами. «Сопряжение» аксессуара не использует криптографических ключей; это односторонний процесс, для которого не требуется PIN-код. Аксессуар «сопрягается» с iPhone, когда пользователь впервые подключает его к устройство в момент, когда экран телефона разблокирован (или же разблокирует iPhone уже после подключения аксессуара). iPhone сохранит информацию о «сопряжённом» аксессуаре и присвоит этому аксессуару доверенный статус.

Ограничения USB в iOS 13 различны для «доверенных» и «прочих» аксессуаров. В iOS 13 возможность коммуникации через порт USB блокируется через час после того, как телефон был заблокирован или пользователь отключил ранее использованный аксессуар. При этом подключение аксессуара, которого нет в списке доверенных устройств, вызывает мгновенное срабатывание блокировки порта USB.

Наконец, в незашифрованные резервные копии без пароля более не попадает журнал звонков и история браузера Safari.

Заключение

В заключение я хочу процитировать Дана Скалько из Digitalux. «Одна из самых больших проблем, с которыми сталкиваются компании, — это баланс конфиденциальности, безопасности и удобства потребителей. Большее удобство часто приводит к снижению уровня безопасности и, как следствие, конфиденциальности. Хорошо иллюстрирует тезис двухфакторная аутентификация в сравнении с простым паролем. Очевидно, что на прохождение двухфакторной аутентификации пользователю потребуется потратить больше времени и усилий, но с её помощью обеспечивается гораздо больший уровень безопасности и конфиденциальности, чем с одним лишь паролем. Конфиденциальность, безопасность и удобство должны быть приоритетными целями любой компании. Но в конце концов важнее всего — именно безопасность.»


  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
НАШИ НОВОСТИ