Что такое двухфакторная аутентификация на айфоне 6. Подтверждение по СМС. Отключение двухфакторной аутентификации

При мысли о том, как обезопасить свои аккаунты на сайтах и сервисах в Интернете, в первую очередь вспоминается двухфакторная аутентификация (2FA). С одной стороны, она уменьшает вероятность взлома наших аккаунтов, с другой — раздражает усложнением входа в них нами самими.

Ниже будут рассмотрены разные имеющиеся варианты двухфакторной аутентификации и развеяны некоторые мифы относительно неё.

Наиболее распространённые альтернативы 2FA

Подтверждение по СМС

Среди приложений и сервисов распространено предлагать добавить двухфакторную аутентификацию хотя бы посредством сообщений СМС, например, при входе в аккаунт. Можно использовать 2FA при каждом входе в аккаунт или только с нового устройства. Вторым этапом аутентификации при этом становится смартфон или сотовый телефон.

СМС-сообщение состоит из одноразового кода, который нужно ввести в сервис или на сайт. Хакеру, который захочет взломать аккаунт, потребуется доступ к телефону его обладателя, чтобы получить этот код. Проблемой может быть сотовая связь. Что, если вы оказались в месте без связи, или в путешествии без доступа к своему оператору? Тогда вы сами не сможете зайти в свой аккаунт, не получив код доступа.

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

Google Authenticator / генерируемые приложениями коды

Потенциально лучшая альтернатива СМС, поскольку не полагается на оператора связи. Есть вероятность, что вы уже пользовались хотя бы одним приложением генерации кодов. Google Authenticator для Android и iPhone является самым популярным в этой категории программ предложением.

После настройки определённого сервиса на использование Authenticator появится окно с предложением ввести код авторизации наряду с логином и паролем. Выдаст этот код приложение Google Authenticator на смартфоне. Срок жизни кода исчисляется минутами, так что нужно ввести его вовремя или придётся получать другой. Хотя в названии и есть слово Google, можно добавлять сюда многочисленные сервисы помимо Gmail, в том числе Dropbox, LastPass, Amazon Web Services, Evernote и прочие.

Если вы не доверяете Google, есть ряд альтернатив, из которых лучшей считается Authy. Authy предлагает зашифрованные резервные копии генерируемых кодов, поддержку множества платформ и работу в режиме офлайн. LastPass недавно также запустил собственный аутентификатор.

Эти приложения генерируют годы с доступом в Интернет и без него. Единственным минусом можно назвать сложный процесс установки приложений.

Физические средства аутентификации

Если использование кодов, приложений и текстовых сообщений звучит слишком сложно, есть другой вариант: физические ключи аутентификации. Это небольшое USB-устройство, которое можно носить вместе с ключами (вроде указанного на изображении FIDO U2F Security Key.) При входе в аккаунт на новом компьютере вставьте ключ USB и нажмите на кнопку.

Ряд компаний работают над созданием стандарта под названием U2F. Учётные записи Google, Dropbox и GitHub уже совместимы с метками U2F. В будущем ключи физической аутентификации будут работать со стандартами беспроводной связи NFC и Bluetooth для общения с устройствами без портов USB.

Аутентификация на основе приложений и электронной почты

Некоторые мобильные приложения не пользуются вышеописанными опциями и выполняют подтверждение внутри самого приложения. Например, активация «Подтверждения логина» в Твиттере при входе с нового устройства заставит подтверждать этот логин со смартфона. Это покажет, что входит владелец аккаунта, если только его смартфон не украли. Сходным образом Apple использует мобильную систему iOS для подтверждения входа в новые устройства. Одноразовый код присылается на уже имеющееся устройство.

Системы на основе электронной почты используют её адрес как второй этап входа в аккаунт. Одноразовый код отправляется на почту.

Вопросы и ответы о двухфакторной аутентификации

** Здесь двухфакторная аутентификация особенно важна, так как эти сервисы обычно служат вратами ко всей остальной активности пользователя в Интернете.

Чтобы узнать, поддерживает ли определённый сайт или сервис 2FA, воспользуйтесь сайтом twofactorauth.org.

Если сервис был взломан, активируйте двухфакторную аутентификацию как можно скорее.

Проблема заключается в том, что 2FA нельзя активировать одним переключателем. Запуск 2FA означает необходимость выпуска меток или криптографических ключей, встроенных в другие устройства. Поскольку 2FA полагается на участие пользователя, скорость в данном случае не будет быстрой.

Включать двухфакторную аутентификацию или нет?

Да, особенно на важных сервисах с персональной и финансовой информацией.

Двухфакторная аутентификация неуязвима?

Нет. 2FA зависит от технологий и от людей, и проблемы могут иметься с обеих сторон. 2FA с СМС полагается на надёжность оператора связи. Вредоносные программы на смартфоне могут перехватить и отправить СМС злоумышленникам. Пользователь также может не глядя одобрить запрос авторизации, который пришёл из-за попытки злоумышленника получить доступ к аккаунту.

Все двухфакторные решения по существу одинаковые?

Когда-то это могло быть правдой, но в последнее время в 2FA появляется немало инноваций. Есть решения с применением СМС и электронной почты. Есть решения с мобильными приложениями с криптографическими секретами или хранением информации в браузере пользователя.

Двухфакторная аутентификация затрудняет доступ в свои аккаунты и не несёт никакой пользы?

Такое отношение помогает хакерам добиваться своих целей. У некоторых организаций и сервисов использование 2FA является обязательным требованием. Для пользователя это может быть раздражающим решением, но если компания использует его, то может сократить вероятность мошенничества.

Конец современных методов 2FA близок?

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

Многие пользователи, деятельность которых связана с заработком в интернете или с хранением в сети важной информации, стараются обезопасить свои аккаунты от взлома и кражи конфиденциальных данных.

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

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

Что такое двухфакторная аутентификация?

Итак, о каком же способе защиты идет речь? На самом деле, вы уже встречались с двухэтапной аутентификацией. Например, когда вы собираетесь выполнить какую-либо операцию с деньгами на сайте WebMoney, то, кроме логина и пароля, вам понадобится указать код подтверждения, который придет на мобильный телефон.

Другими словами, двухфакторная аутентификация - это второй ключ к вашей учетной записи. Если вы активируете данную опцию, например, в Evernote (такая возможность есть), то злоумышленник, сумевший подобрать пароль к этому сервису заметок, столкнется с другой проблемой - требованием указать одноразовый код, который приходит на ваш номер телефона. Стоит отметить, что в случае попытки взлома аккаунта вам придет СМС, и вы моментально сможете сменить пароль.

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

Где лучше использовать?

Безусловно, некоторые пользователи могут возразить, утверждая, что двухэтапная аутентификация - это слишком много «лишних движений», и вообще, она предназначена для параноиков, которым все время кажется, что за ними кто-то следит.

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

Что же касается других сервисов, то, например, двухфакторная аутентификация "Яндекс" позволит в безопасности хранить ваши регистрационные данные от "Вэбмани" и другие) или письма, содержащие секретную информацию.

Защита аккаунта Google

Одним из наиболее популярных сервисов сегодня является "Гугл". Именно здесь вы можете зарегистрировать себе электронный почтовый ящик, хранить документы на Google-диске, бесплатно создать блог или канал на "Ютубе", которые впоследствии смогут принести вам прибыль.

Для того чтобы пользователи были уверены в сохранности документов, хранящихся на почте или диске, им предлагается двухфакторная аутентификация Google. Для ее активации необходимо войти в ваш аккаунт.

Теперь, открыв, например, почтовый ящик, обратите внимание на аватарку в правом верхнем углу. Кликните по ней и перейдите в «Мой аккаунт». Здесь вам нужен раздел «Безопасность и вход», а именно ссылка «Вход в аккаунт Google».

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

Двухфакторная аутентификация «Яндекс»

"Яндекс" также предлагает своим пользователям достаточно много полезных сервисов. Кроме облачного хранения информации на "Яндекс.Диске", вы можете завести себе электронный кошелек, куда будете выводить заработанные в интернете деньги.

Ну и, конечно, "Яндекс" не остался в стороне и также предлагает своим пользователям использовать двухфакторную аутентификацию для защиты документов, хранящихся в почтовом ящике.

Чтобы ее включить, от вас потребуется выполнить несколько простых действий. Войдите в ваш аккаунт и нажмите ЛКМ на фото профиля (справа в верхнем углу). В выпадающем меню выберите «Паспорт». Откроется окно, в котором вам нужно перейти по ссылке «Управление доступом». Установите «бегунок» в положение «ВКЛ». Вас перекинет на страницу, где необходимо кликнуть по кнопке «Начать настройку». Теперь пройдите 4 этапа активации двухфакторной защиты.

Социальная сеть «ВКонтакте»

Как было сказано выше, злоумышленники обычно пытаются получить доступ к аккаунтам «админов» популярных групп. Но это не всегда так, ведь заинтересовать может и просто личная переписка какого-нибудь известного на просторах интернета человека.

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

На самом деле, включается двухэтапная аутентификация очень просто. Выберите «Мои настройки», а затем перейдите на вкладку «Безопасность». В разделе «Подтверждение входа» кликните по кнопке «Подключить». Теперь последовательно выполняйте все требования.

Отключение двухфакторной аутентификации

Для того чтобы деактивировать двухэтапную защиту в "Яндексе", понадобится снова перейти в ваш «Паспорт», кликнув по аватарке. После этого откройте раздел «Управление доступом» и установите бегунок в положение «Выкл».

Заключение

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

Конечно, в некоторых случаях настоятельно рекомендуется включать двухэтапную аутентификацию. Например, при регистрации на "Вэбмани" вы указали почту от "Яндекса". Работая в интернете, вы можете стать жертвой хакеров, которые взломают ваш почтовый ящик и получат доступ к электронному кошельку. Чтобы этого не произошло, лучше установить и привязать e-mail к телефону. Таким образом вы сможете оперативно среагировать, если вас попытаются взломать.

Чтобы разобраться, что такое двухфакторная аутентификация и как она обычно реализуется, следует выяснить, что такое аутентификация вообще. Если не усложнять, то аутентификация - это процесс, когда пользователь доказывает, что он - это именно тот, кем он представился.

Например, при входе в систему вы вводите свое имя пользователя и свой пароль и тем самым доказываете, что вы знаете секретный ключ, а значит подтверждаете, что вы это именно вы, а не посторонний человек. В этом случае знание пароля - это так называемый “фактор аутентификации”.

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

Поэтому для того чтобы обезопасить систему от таких ситуаций, принято использовать одновременно два фактора аутентификации: например пароль и смарт-карту. В таком случае вторым фактором аутентификации будет именно факт обладания смарт-картой. Система проверит пароль и смарт-карту, и если все правильно, пустит вас в систему.

Двухфакторная аутентификация и электронная цифровая подпись

Достаточно часто двухфакторная аутентификация применяется для электронной подписи. Цифровая подпись под документом обычно бывает аналогичной собственноручной подписи на бумажном документе, поэтому очень важно, чтобы вашу электронную подпись не могли поставить злоумышленники вместо вас.

Чаще всего, для того чтобы обезопасить свою электронную подпись, ее записывают (точнее, сертификат электронной подписи) на токен. Токен - это специальное устройство, которое часто используют для хранения сертификатов электронной подписи. Ваша электронная подпись на токене защищена паролем, поэтому даже в случае кражи злоумышленники не смогут ею воспользоваться. В этом случае первым фактором аутентификации будет являться факт обладания токеном, а вторым - знание пароля для доступа к электронной подписи на токене.

Для хранения сертификатов электронной подписи мы рекомендуем следующие модели токенов:

Двухфакторная аутентификация для входа в систему

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

Для того чтобы защитить данные на компьютерах своих сотрудников, используется два подхода к аутентификации:

  • защитить процесс входа в систему

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

Этот способ хорошо использовать там, где помещение защищено и никто не сможет физически украсть компьютер или его жесткий диск.

  • защитить все данные на компьютере

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

Редкий пост в блоге Яндекса, а особенно касающийся безопасности, обходился без упоминания двухфакторной аутентификации. Мы долго думали, как правильно усилить защиту пользовательских аккаунтов, да еще так, чтобы этим мог пользоваться без всех тех неудобств, которые включают в себя самые распространённые ныне реализации. А они, увы, неудобны. По некоторым данным, на многих крупных сайтах доля пользователей, включивших дополнительные средства аутентификации, не превышает 0,1%.

Кажется, это потому, что распространенная схема двухфакторной аутентификации слишком сложна и неудобна. Мы постарались придумать способ, который был бы удобнее без потери уровня защиты, и сегодня представляем его бета-версию.

Надеемся, он получит более широкое распространение. Мы со своей стороны готовы работать над его улучшением и последующей стандартизацией.

После включения двухфакторной аутентификации в Паспорте вам надо будет установить приложение Яндекс.Ключ в App Store или Google Play . В форме авторизации на главной странице Яндекса, в Почте и Паспорте появились QR-коды. Для входа в учётную запись необходимо считать QR-код через приложение - и всё. Если считать QR-код не получается, например не работает камера смартфона или нет доступа к интернету, приложение создаст одноразовый пароль, который будет действовать всего 30 секунд.

Расскажу о том, почему мы решили не использовать такие «стандартные» механизмы, как RFC 6238 или RFC 4226 . Как работают распространенные схемы двухфакторной аутентификации? Они двухэтапные. Первый этап ─ обычная аутентификация логином и паролем. Если он прошел успешно, сайт проверяет, «нравится» ему эта пользовательская сессия или нет. И, если «не нравится», просит пользователя «доаутентифицироваться». Распространенных методов «доаутентификации» два: отсылка SMS на привязанный к аккаунту номер телефона и генерация второго пароля на смартфоне. В основном для генерации второго пароля используется TOTP по RFC 6238. Если пользователь ввел второй пароль верно, сессия считается полностью аутентифицированной, а если нет, то сессия теряет и «предварительную» аутентификацию.

Оба способа ─ отправка SMS и генерация пароля ─ доказательства обладания телефоном и потому являются фактором наличия. Пароль, вводимый на первом этапе, ─ фактор знания. Поэтому такая схема аутентификации ─ не только двухэтапная, но и двухфакторная.

Что показалось нам проблемным в этой схеме?

Начнем с того, что компьютер среднестатистического пользователя не всегда можно назвать образцом защищенности: тут и выключение обновлений Windows, и пиратская копия антивируса без современных сигнатур, и ПО сомнительного происхождения ─ все это не повышает уровень защиты. По нашей оценке, компрометация компьютера пользователя ─ самый массовый способ «угона» учетных записей (и недавно тому было еще одно подтверждение), от нее в первую очередь и хочется защититься. В случае двухэтапной аутентификации, если считать, что компьютер пользователя скомпрометирован, ввод пароля на нем компрометирует сам пароль, являющийся первым фактором. Значит, злоумышленнику необходимо лишь подобрать второй фактор. В случае распространенных реализаций RFC 6238 второй фактор ─ это 6 десятичных цифр (а максимум, предусмотренный спецификацией, ─ 8 цифр). Согласно калькулятору bruteforce для OTP , за три дня атакующий в состоянии подобрать второй фактор, если ему каким-либо образом стал известен первый. Нет ясности, что сервис может противопоставить этой атаке, не нарушая нормальную работу пользователя. Единственный возможный proof of work ─ капча, что, на наш взгляд, является последним средством.

Вторая проблема ─ непрозрачность суждения сервиса о качестве пользовательской сессии и принятия решения о необходимости «доаутентификации». Хуже того, сервис не заинтересован в том, что бы сделать этот процесс прозрачным, ─ ведь тут фактически работает security by obscurity. Если злоумышленник знает, на основании чего сервис принимает решение о легитимности сессии, он может попытаться подделать эти данные. Из общих соображений можно заключить, что суждение делается на основе истории аутентификаций пользователя с учетом IP-адреса (и производных от него номера автономной системы, идентифицирующей провайдера, и местоположения на основе геобазы) и данных браузера, например заголовка User Agent и набора cookies, flash lso и html local storage. Это означает, что если злоумышленник контролирует компьютер пользователя, то он имеет возможность не только украсть все необходимые данные, но и воспользоваться IP-адресом жертвы. Более того, если решение принимается на основе ASN, то любая аутентификация из публичного Wi-Fi в кофейне может привести к «отравлению» с точки зрения безопасности (и обелению с точки зрения сервиса) провайдера этой кофейни и, например, обелению всех кофеен в городе. Мы рассказывали о работе системы обнаружения аномалий , и ее можно было бы применить, но времени между первым и вторым этапом аутентификации может оказаться недостаточно для уверенного суждения об аномалии. Кроме того, этот же аргумент разрушает идею «доверенных» компьютеров: злоумышленник может украсть любую информацию, влияющую на суждение о доверенности.

Наконец, двухэтапная аутентификация попросту неудобна: наши usability-исследования показывают, что ничто так не раздражает пользователей, как промежуточный экран, дополнительные нажатия на кнопки и прочие «неважные», с его точки зрения, действия.
Исходя из этого, мы решили, что аутентификация должна быть одноэтапной и пространство паролей должно быть намного больше, чем возможно сделать в рамках «чистого» RFC 6238.
При этом нам хотелось по возможности сохранить двухфакторность аутентификации.

Многофакторность в аутентификации определяется отнесением элементов аутентификации (собственно, они и называются факторами) к одной из трех категорий:

  1. Факторы знания (это традиционные пароли, пин-коды и все, что на них похоже);
  2. Факторы владения (в используемых OTP-схемах, как правило, это смартфон, но может быть и аппаратный токен);
  3. Биометрические факторы (отпечаток пальца ─ самый распространенный сейчас, хотя кто-то вспомнит эпизод с героем Уэсли Снайпса в фильме Demolition Man).

Разработка нашей системы

Когда мы начали заниматься проблемой двухфакторной аутентификации (первые страницы корпоративной вики по этому вопросу относятся к 2012 году, но кулуарно он обсуждался и раньше), первой идеей было взять стандартные способы аутентификации и применить их у нас. Мы понимали, что нельзя рассчитывать на то, что миллионы наших пользователей купят аппаратный токен, поэтому этот вариант отложили на какие-то экзотичные случаи (хотя полностью мы от него не отказываемся, возможно, нам удастся придумать что-то интересное). Способ с SMS тоже не мог быть массовым: это очень ненадежный способ доставки (в самый ответственный момент SMS может задержаться или не дойти вовсе), а рассылка SMS стоит денег (и операторы начали увеличивать их цену). Мы решили, что использование SMS ─ удел банков и прочих нетехнологичных компаний, а нашим пользователям хочется предложить что-то более удобное. В общем, выбор был невелик: использовать смартфон и программу в нем в качестве второго фактора.

Широко распространена такая форма одноэтапной аутентификации: пользователь помнит пин-код (первый фактор), имеет на руках аппаратный или программный (в смартфоне) токен, генерирующий OTP (второй фактор). В поле ввода пароля он вводит пин-код и текущее значение OTP.

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

Мы решили пойти другим путем: пароль целиком генерируется из секрета, но в смартфоне сохраняется только часть секрета, а часть вводится пользователем при каждой генерации пароля. Таким образом смартфон сам по себе является фактором владения, а пароль остается в голове пользователя и является фактором знания.

В качестве Nonce может выступать либо счетчик, либо текущее время. Мы решили выбрать текущее время, это позволяет не бояться рассинхронизации в случае, если кто-то сгенерирует слишком много паролей и увеличит счетчик.

Итак, у нас есть программа для смартфона, куда пользователь вводит свою часть секрета, та смешивается с хранимой частью, результат используется в качестве ключа HMAC , которым подписывается текущее время, округленное до 30 секунд. Выход HMAC приводится к читаемому виду, и вуаля ─ вот и одноразовый пароль!

Как уже было сказано, RFC 4226 предполагает усечение результата работы HMAC до максимум 8 десятичных цифр. Мы решили, что пароль такого размера непригоден для одноэтапной аутентификации и должен быть увеличен. При этом нам хотелось сохранить простоту использования (ведь, напомним, хочется сделать такую систему, которой будут пользоваться обычные люди, а не только security-гики), так что в качестве компромисса в текущей версии системы мы выбрали усечение до 8 символов латинского алфавита. Кажется, что 26^8 паролей, действующих в течение 30 секунд, вполне приемлемо, но если security margin нас не будет устраивать (или на Хабре появятся ценные советы, как улучшить эту схему), расширим, например, до 10 символов.

Подробнее о стойкости таких паролей

В самом деле, для латинских букв без учета регистра число вариантов на один знак равно 26, для больших и малых латинских букв плюс цифры, число вариантов равно 26+26+10=62. Тогда log 62 (26 10) ≈ 7,9 то есть пароль из 10 случайных малых латинских букв почти такой же стойкий, как пароль из 8 случайных больших и малых латинских букв или цифр. Этого точно хватит на 30 секунд. Если говорить о 8-символьном пароле из латинских букв, то его стойкость log 62 (26 8) ≈ 6,3 , то есть немного больше 6-символьного пароля из больших, малых букв и цифр. Мы считаем, что это все еще приемлемо для окна в 30 секунд.

Магия, беспарольность, приложения и дальнейшие шаги

В общем-то, на этом можно было и остановиться, но нам захотелось сделать систему еще более удобной. Когда у человека есть смартфон в руке, так не хочется вводить пароль с клавиатуры!

Поэтому мы начали работы над «магическим логином». С таким способом аутентификации пользователь запускает приложение на смартфоне, вводит в него свой пин-код и сканирует QR-код на экране своего компьютера. Если пин-код введен правильно, страница в браузере перезагружается и пользователь оказывается аутентифицирован. Магия!

Как это устроено?

В QR-коде зашит номер сессии, и, когда приложение сканирует его, этот номер передается на сервер вместе с выработанным обычным способом паролем и именем пользователя. Это несложно, ведь смартфон почти всегда находится онлайн. В верстке странички, показывающей QR-код, работает JavaScript, ожидающий со стороны сервера ответа на проверку пароля с данной сессией. Если сервер отвечает, что пароль верен, вместе с ответом устанавливаются сессионные куки, и пользователь считается аутентифицированным.

Стало лучше, но и тут мы решили не останавливаться. Начиная с iPhone 5S в телефонах и планшетах Apple появился сканер отпечатков пальцев TouchID, а в iOS версии 8 работа с ним доступна и сторонним приложениям. На деле приложение не получает доступ к отпечатку пальца, но если отпечаток верен, то приложению становится доступен дополнительный раздел Keychain. Этим мы и воспользовались. В защищенную TouchID запись Keychain помещается вторая часть секрета, та, которую в предыдущем сценарии пользователь вводил с клавиатуры. При разблокировке Keychain две части секрета смешиваются, и дальше процесс работает так, как описано выше.

Зато пользователю стало невероятно удобно: он открывает приложение, прикладывает палец, сканирует QR-код на экране и оказывается аутентифицированным в браузере на компьютере! Так мы заменили фактор знания на биометрический и, с точки зрения пользователя, совсем отказались от паролей. Мы уверены, что обычным людям такая схема покажется куда более удобной, чем ручной ввод двух паролей.

Можно подискутировать, насколько формально двухфакторной является такая аутентификация, но на деле для успешного ее прохождения все еще необходимо иметь телефон и обладать правильным отпечатком пальца, так что мы считаем, что нам вполне удалось отказаться от фактора знания, заменив его биометрией. Мы понимаем, что полагаемся на безопасность ARM TrustZone , лежащей в основе iOS Secure Enclave , и считаем, что на настоящий момент эту подсистему можно считать доверенной в рамках нашей модели угроз. Разумеется, нам известны проблемы биометрической аутентификации: отпечаток пальца ─ не пароль и заменить его в случае компрометации нельзя. Но, с другой стороны, всем известно, что безопасность обратно пропорциональна удобству, и пользователь сам вправе выбрать приемлемое для него соотношение одного и другого.

Напомню, что пока это бета. Сейчас при включении двухфакторной аутентификации мы временно выключаем синхронизацию паролей в Яндекс.Браузере. Связано это с тем, как устроено шифрование базы паролей. Мы уже придумываем удобный способ аутентификации Браузера в случае 2FA. Вся остальная функциональность Яндекса работает в прежнем режиме.

Вот что у нас получилось. Кажется, вышло неплохо, но судить вам. Мы будем рады услышать отзывы и рекомендации, а сами продолжим работу над улучшением безопасности наших сервисов: теперь вместе с CSP , шифрованием транспорта почты и всего остального у нас появилась и двухфакторная аутентификация . Не забывайте, что сервисы аутентификации и приложения генерации OTP относятся к критичным и поэтому за обнаруженные в них ошибки в рамках программы Bug Bounty выплачивается двойная премия.

Теги: Добавить метки