Ответ 1
Исследование Fraunhofer по безопасности брелка iOS:
- http://sit.sit.fraunhofer.de/studies/en/sc-iphone-passwords.pdf
- http://sit.sit.fraunhofer.de/studies/en/sc-iphone-passwords-faq.pdf
Из того, что я могу сказать, существуют два уровня шифрования, которые использует keychain iOS. На первом уровне в качестве ключа шифрования используется код блокировки экрана блокировки. Второй уровень использует ключ, сгенерированный и сохраненный на устройстве.
Исследователи Фраунгофера выяснили, как обойти второй уровень. Это "более простой" уровень, чтобы обойти, так как ключ шифрования хранится на устройстве. Итак, на iOS4 их метод работает только с записями keychain, которые НЕ используют kSecAttrAccessibleWhenUnlocked или kSecAttrAccessibleWhenUnlockedThisDeviceOnly, потому что эти записи хранятся в памяти с дешифровкой первого уровня - даже когда телефон заблокирован.
- Начиная с iOS 4, ключи с kSecAttrAccessibleWhenUnlocked и kSecAttrAccessibleWhenUnlockedThisDeviceOnly защищены дополнительным уровнем шифрования
- В iOS 3.x и ранее все ключи могут быть дешифрованы с использованием метода Fraunhofer, независимо от используемого атрибута доступности.
- Устройства без каких-либо паролей будут по-прежнему уязвимы
- Устройства со слабыми паролями (менее шести цифр) будут по-прежнему уязвимы
≈50 мс за пароль попробуйте; → ≈20 попыток в секунду; → ≈1,7 года для 50% изменение угадывания правильного кода доступа для 6-значного буквенно-цифрового код с базой 36. Стандартный простой код из 4 цифровых цифр быть грубым-принужденным менее чем за 9 минут. Исходя из предположения, что счетчик для неправильных попыток в iOS можно обойти, так как это не аппаратный
Apple Inc. WWDC 2010, Core OS, сессия 209 "Защита данных приложения", слайд 24
Нижняя линия: Если вы должны хранить конфиденциальные данные, лучше используйте собственное шифрование. И не храните ключ на устройстве.
Изменить: Существует множество статей , в которых приводятся исследования Fraunhofer и заверяются в том, что их читатели не беспокоятся, если их устройства не украдены, потому что эта атака может быть выполнена только с физический доступ к устройству.
Я как-то сомневаюсь. Тот факт, что исследователи сделали свои тесты с физическим доступом к телефону, похоже, просто способ упростить проблему, а не ограничивать ее. Это их описание того, что они сделали, чтобы расшифровать записи keychain:
После использования инструмента jailbreaking, чтобы получить доступ к командной оболочке, мы запустите небольшой script, чтобы получить доступ и расшифровать пароли, найденные в Брелок. Дешифрование выполняется с помощью предоставляемых функций самой операционной системой.
Как и любой, кто использовал jailbreak.me, jailbreaking не требует доступа к устройству физического. Теоретически это должно быть тривиально изменить код jailbreak.me и автоматизировать его следующее:
- Выполните джейлбрейк как обычно (все это требует, чтобы пользователь открыл вредоносный PDF файл).
- Запустить скрипты Fraunhofer после завершения джейлбрейка
- Отправлять пароли по сети в местоположение, которое злоумышленник может прочитать из
Итак, будьте осторожны с тем, что вы положили в брелок.