Аутентификация — что это такое и почему сейчас повсеместно используется двухфакторная аутентификация. Двухфакторная аутентификация ("Яндекс"). Как отключить двухфакторную аутентификацию

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Интересно? Тогда продолжим, а я постараюсь вас не разочаровать.

Что такое аутентификация?

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

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

Разложим в этом примере все по полочкам:

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

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

Еще один пример. Печать на документе (в паспорте, сургучная печать на старинных письмах).

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

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

Как я уже говорил выше, существует несколько типов аутентифаторов :

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

Двухфакторная (2FA — двухэтапная) аутентификация

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


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

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

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

В большинстве случаев хватает совмещения двух факторов и при этом не доставляет очень уж больших неудобств при частом использовании.

Ошибки аутентификации

При использовании любого из упомянутых выше типов аутентификаторов (паролей, устройств и биометрии) возможны ошибки. Откуда они берутся и как их можно избегать и разрешать? Давайте посмотрим на примере.

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

Но иногда вам при этом может выдаваться сообщении об ошибке аутентификации . Что в этом случае вам сделать?

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

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

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

Удачи вам! До скорых встреч на страницах блога сайт

посмотреть еще ролики можно перейдя на
");">

Вам может быть интересно

Аутентичный - это какой, что означает аутентичность Яндекс Аккаунт - регистрация и как пользоваться сервисом Как удалить свою страницу на Одноклассниках
Как восстановить страницу в Контакте (при утере доступа, удалении или блокировке)
Как поставить пароль на папку (заархивировать или другим способом запаролить ее в Windows) Почему не загружается ВК и браузер не заходит во Вконтакте Идентификация - что это такое и как подтверждается идентичность

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

Что собой являет двухфакторная защита?

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

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

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

Где и в каких случая следует включить двухэтапную защиту?

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

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

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

Какие виды двухэтапной защиты существуют?

Как говорилось раньше, уважающие себя интернет-ресурсы и VPN-сети используют такие методы усиленной защиты, как код с помощью смс/звонок на мобильный, письма на почту, USB-ключи, смарт-карты, звонок. Но кроме них существуют еще и такие методы, как генератор кодов (брелок с кнопками и маленьким экраном), технология SecurID и другие специфические методы, которые используют преимущественно корпоративные секторы. Актуальны и более старые методы защиты, такие как TAN-пароли (Transaction Authentication Number — аутентификационный номер транзакции). Скорее всего вы имели дело с таким методом, когда пользуясь интернет-банкингом Вам выдали бумажку с заранее сформированными паролями (одноразовыми). К слову говоря, даже не самые прогрессивные банки используют двухфакторную защиту . Ведь для входа в сервис вы пользуетесь карточкой (первый ключ), и паролем, который у вас в голове (второй ключ).

Разберем еще более непривычные для нас способы аутентификации. Сканирование отпечатков пальцев, радужной оболочки глаз, есть даже такие, что ориентируются по "рисунку" сердцебиения. Хотя в обыденной жизни мы не сталкиваемся с такими методами, но все же они актуальны и необходимы в весьма серьезных учреждениях. Испытываются даже электромагнитные татуировки, которые по примеру радиочипов могут служить элементом двухфакторной защиты . Надеемся, что от идеи к воплощению пройдет не большой промежуток времени. Лично я бы не отказался от такого.

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

Использование этой технологии обеспечивает доступ к учётке исключительно с доверенных девайсов – айфона, планшета или макбука. При первичном заходе на новом гаджете понадобится указать два вида данных – символы пароля и код проверки в 6 – значном формате. Кодовые символы на автомате обновляются на этих девайсах. После его вбивания новый гаджет причислят к доверенным. Допустим, если в наличии iPhone, при первичном входе в учетку на только что купленном MacBook понадобится вбить символы пароля и проверочный код, который на автомате всплывет на дисплее айфона.

Поскольку для доступа к учетке символов пароля недостаточно, применяются и иные типы проверки, показатель безопасности ID – номера значительно повышается.

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

Проверенные гаджеты: что это?

Таковым может быть не любой «яблочный» девайс – только айфоны, айпады тач с операционкой версии 9 или более новой, а также макбуки с операционкой Capitan либо более «свежими». В системы этих гаджетов должны быть осуществлены входы с применением 2-факторной проверки.

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

Проверенные телефонные номера

Это те, которые можно применять, чтобы поступали подтверждающие коды через текстовые послания либо вызовы. Требуется подтвердить хотя бы один номер для доступак 2-х факторному определению личности.

Еще можно выполнить подтверждение иных номеров – домашнего, или друга/родственника. Когда временно нет доступа к основному, можно будет использовать их.

Правила настройки

Если на девайсе стоит операционка версии 10.3 и старше, алгоритм действий будет таков:

  • Переход в раздел настроек, к пункту пароля и безопасности.
  • Нажатие на раздел включения 2-х факторной идентификации.
  • Щелчок по пункту продолжения.

Если на гаджете операционка 10.2 или более ранняя, шаги будут следующими:

  • Переход к настройкам iCloud.
  • Выбор своего ID – номера и переход к разделу пароля безопасности.
  • Щелчок по пункту включения 2-х факторной аутентификации.
  • Нажатие по элементу продолжения.



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

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

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

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

Редкий пост в блоге Яндекса, а особенно касающийся безопасности, обходился без упоминания двухфакторной аутентификации. Мы долго думали, как правильно усилить защиту пользовательских аккаунтов, да еще так, чтобы этим мог пользоваться без всех тех неудобств, которые включают в себя самые распространённые ныне реализации. А они, увы, неудобны. По некоторым данным, на многих крупных сайтах доля пользователей, включивших дополнительные средства аутентификации, не превышает 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 выплачивается двойная премия.

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