Вход по отпечатку пальца в устройства Apple и приложения сегодня фактически является стандартом. Это существенно удобнее, чем набирать коды, а также выглядит безопасным.
Оказывается, получить доступ почти к любому приложению с Touch ID легко, для этого достаточно знать только пароль от блокировки (passcode) самого устройства от Apple, сообщает лаборатория «Кадмус».
Зная passcode становится возможным добавить отпечаток пальца в систему, а затем использовать его для входа в приложения, проигнорировав их собственные коды для входа. А если пароль на устройство не установлен, то и приложения получаются абсолютно не защищены. Вообще.
При таких обстоятельствах получается, что при использовании Touch ID интерфейсы авторизации в приложениях просто не играют никакой роли.
Как это произошло?
Дело в том, что с момента появления iOS 7 функциональностью Touch ID могла пользоваться только сама Apple. В iOS 8 компания открыла доступ разработчикам к довольно ограниченному API, которое позволяло получить информацию лишь о том, известный отпечаток был использован или нет. Эта функциональность была предназначена скорее для подтверждения операций, а не для авторизации в приложениях, но все решили иначе.
Большинство разработчиков, оценив удобства новинки, довольно быстро реализовали функцию входа по отпечатку в приложения. Хотя технология еще не обеспечивала достаточный уровень безопасности.
В iOS 9 были открыты новые возможности в API для работы с Touch ID и появился метод контроля изменения состава отпечатков, но т.к. в сети уже были распространены примеры кода, эти возможности продолжают игнорировать почти все разработчики. Некоторые из них при обсуждении уязвимости до сих пор с уверенностью сообщают, что это приемлемый риск. Хотя логично, что если passcode достаточно чтобы попасть в приложение, зачем тогда вообще нужен экран авторизации.
Что делать разработчикам?
Исправление этой уязвимости стало возможным начиная еще с iOS 9.
Следуйте рекомендациям Apple, которые доступы в описании технологии и приведены в документации для разработчиков. Примером приложения с таким типом защиты является «Сбербанк Онлайн».
Если вы используете для авторизации KeyChain (а это более органично в рамках модели безопасности Apple), то, как правило, достаточно изменить всего одну строку кода, или дописать сценарий, использующий возможность определения изменения состава отпечатков.
Контроль авторизации по отпечатку в iOS 8
CFErrorRef error = NULL; SecAccessControlRef sacObject = SecAccessControlCreateWithFlags(kCFAllocatorDefault, kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly, kSecAccessControlUserPresence, &error);
Контроль авторизации по отпечатку в iOS 9
CFErrorRef error = NULL; SecAccessControlRef sacObject = SecAccessControlCreateWithFlags(kCFAllocatorDefault, kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly, kSecAccessControlTouchIDCurrentSet | kSecAccessControlDevicePasscode, &error);
Особенность заключается в использовании атрибута kSecAccessControlTouchIDCurrentSet, который защищает от использования новых отпечатков в iOS.
Эпилог
Удивительно, что компания Apple не проверяет критичные приложения при их размещении в AppStore.
Также удивительно, что она не информирует разработчиков о новых моделях безопасности. Актуальный Security Guide не содержит информации об этой особенности и методе защиты.
Тем не менее, этот тип защиты авторизации возможен начиная с iOS 9.
ссылка на оригинал статьи https://geektimes.ru/post/282946/
Добавить комментарий