Добрый день!. В прошлый раз я вам подробно рассказал, каким образом вы можете защитить свою флешку от вирусов и вредоносных программ , сегодня еще раз поговорим, о защите ваших данных и сервисов. Речь пойдет, о двухфакторной аутентификации, или как ее еще называют двухфакторная защита . Которую вы можете встретить, абсолютно на любом нормальном сервисе или сайте. Уверен, что многим эта информация будет актуальной, так как процентов 80 пользователей на это просто забивают, за что потом и платятся.
Представим классическую ситуацию, на примере России. Есть популярная социальная сеть Вконтакте, которой пользуются огромное количество людей. Для доступа к ней, большинство людей использует логин и пароль, а так как человек существо ленивое и наивное, то он не особо напрягается безопасностью своего аккаунта, что в итоге влечет за собой его взлом, тем самым потерю аккаунта и доступа, и не факт, что он его потом восстановит, так как мог даже не привязывать номер телефона к нему. А вот если бы он заранее настроил двухфакторную защиту , то даже при компрометации пароля ему было бы по барабану, так как еще нужен был бы дополнительные этап проверки, который привязывается к телефону.
Двухфакторная аутентификация (Two-Factor Authentication) - это дополнительный, надежный процесс обеспечения безопасности, я бы назвал его расширенная аутентификация, которая требует от пользователя, получающего доступ к устройству или сервису. еще один из ключей безопасности, в качестве которого можете быть код безопасности из SMS, временный код сгенерированный с помощью специального приложения. которое обновляет их каждые 25 секунд.
В роли бастиона двухфакторной защиты, выступает ваш мобильный телефон, к номеру которого привязывается аккаунт или устройство, для которой он будет дополнительным средством подтверждения личности истинного хозяина.
Давайте я вам опишу алгоритм работы двухфакторной защиты, понимая принцип, вам будет легко его настроить, где угодно, на любом сервисе. И так у нас есть замечательный пользователь Таня, люблю я это имя. Таня решила завести себе аккаунт в Gmail.com. Она проходит процедуру регистрации, где указывает какой логин и пароль у нее будет при входе на почту. Gmail подтверждает ее регистрацию и активирует ее логин и пароль по которому она будет авторизовываться.
Таня логиниться на почте, указывая логин и пароль. Gmail предлагает ей настроить двухфакторную аутентификацию, через привязку к номеру телефона, где будет получать SMS коды или через установку приложения Authenticator, которое будет генерировать каждые 25 секунд коды безопасности, если его не успели ввести, то будет новый 6-ти значный код. Таня их устанавливает и включает двухфакторную защиту.
Теперь при следующей авторизации, Тане нужно будет ввести по мимо классических средств защиты (Логина и пароля), код из SMS или из утилиты Authenticator, так же установленной на ее смартфоне. Как только она это делает, то получает доступ к сервису.
Начну с плюсов, этой технологии:
Из минусов можно выделить вот что:
Давайте рассмотрим основные виды реализации двухфакторной защиты, которые вы легко можете повстречать на текущий момент, они со временем могут обновляться и расширяться, но пока есть такие:
Тут я долго расписывать не буду, выделю два, и оба они будут привязаны к вашему мобильному телефону. Это SMS и Push -уведомления и более надежный с использованием программ Authenticator . Плюсы, что все это бесплатно, телефон мобильный есть у всех, и главное, это надежно.
Давайте я вам опишу, какой аутентификатор я бы посоветовал выбрать
Для того, чтобы обойти двухфакторную аутентификацию, хакеры используют вот такие методы:
Если вы потеряли свой телефон и хотите восстановить свой доступ, то алгоритм такой:
Вообще я вам не советую отключить двухфакторный код, в виду уменьшения безопасности ваших данных, но если вы все же решились, то тут у каждого сервиса своя процедура, которая в 99% случаев, сводится к выставлению тумблера в настройках, отключающего двух этапную проверку, чтобы ее отключить. нужно так же будет указать проверочный код или же ответ на секретный вопрос. С вами был, Иван Семин, автор и создатель IT блога сайт,
Вы можете не осознавать этого, но вы регулярно используете двухфакторную аутентификацию. Когда вы переводите деньги онлайн со своей дебетовой карты, вас же просят ввести пароль или код подтверждения из SMS? Это тоже является формой двухфакторной аутентификации.
Двухфакторная проверка подлинности требует двух способов подтверждения вашей личности, она также может использоваться для защиты различных уётных записей в интернете. Это не обеспечивает идеальную безопасность и требует дополнительного шага при входе в ваши учётные записи, но это делает ваши данные более безопасными в интернете.
Существует три типа аутентификации:
Альтернативный вариант - вы можете использовать специальное приложение аутентификации для получения кодов вместо отправки их в текстовом режиме. Популярные аутентификационные приложения - Google Authenticator, Authy и DuoMobile.
Получение кодов с помощью SMS менее надёжно, чем использование приложения для аутентификации. Хакер может перехватить текстовое сообщение или перехватить ваш телефонный номер, убедив вашего оператора перевести его на другое устройство. Или, если вы синхронизируете текстовые сообщения с компьютером, хакер может получить доступ к кодам SMS, украв ваш компьютер.
Приложение аутентификации имеет то преимущество, что тут не нужно полагаться на своего оператора. Коды отправляются на ваш телефон на основе секретного алгоритма шифрации и текущего времени. Действие кодов быстро истекает, обычно через 30 или 60 секунд.
Поскольку приложение аутентификации не нуждается в операторе мобильной связи для передачи кодов, они останутся в приложении, даже если хакеру удастся перенести ваш номер на новый телефон. Приложение аутентификации также работает, когда у вас нет сотовой сети - это дополнительный бонус.
Использование приложения для аутентификации требует небольшой дополнительной настройки, но обеспечивает лучшую защиту, чем SMS. Чтобы настроить приложение аутентификации, вам необходимо установить приложение на свой телефон, а затем настроить общий секретный токен (длинная кодовая строка) между приложением и вашими учётными записями. Это обычно делается путем сканирования QR-кода камерой телефона. Однако после настройки приложение-аутентификатор избавляет вас от необходимости вводить код; вы просто нажимаете на уведомление от приложения, чтобы войти в одну из своих учётных записей.
Думайте об этом, как о защите своего дома. Если у вас есть домашняя система безопасности, вы снижаете вероятность кражи со взломом. Если у вас есть громкая большая собака, вы также понижаете вероятность кражи со взломом. Если вы объедините систему безопасности с большой собакой, тогда ваш дом становится ещё труднее взломать и он будет менее привлекательной целью. Большинство грабителей просто найдут более легкий вариант, без тревожной сигнализации и возможности укуса собаки.
Аналогичным образом, двухфакторная проверка подлинности отторгает большую часть хакеров от нацеливания на вашу учётную запись. Многие будут просто уходить дальше и находить более простые для взлома учётные записи. И если они нацелены на вас, им потребуется больше, чем просто ваш пароль. В дополнение к вашему паролю, хакеру также потребуется ваш телефон, или получить доступ к маркерам, установленным на вашем телефоне с помощью механизма аутентификации, с применением фишинговой атаки, вредоносных программ или активации восстановления учётной записи, где ваш пароль сбрасывается и 2FA затем отключается. Это дополнительная и сложная работа.
Я использую аутентификацию 2FA во многих моих учётных записях в интернете и считаю, что это менее хлопотно, чем использование надёжного пароля или кодовой фразы, которая сочетает в себе буквы верхнего и нижнего регистра, цифры и символы. И хотя я говорю о сильных паролях, позвольте мне заявить, что использование 2FA в качестве предлога для использования более слабых и удобных для ввода паролей - это плохая идея. Не ослабляйте свой первый фактор защиты только потому, что вы добавили второй.
В основе двухфакторной аутентификации лежит использование не только традиционной связки «логин-пароль», но и дополнительного уровня защиты - так называемого второго фактора, обладание которым нужно подтвердить для получения доступа к учётной записи или другим данным.
Простейший пример двухфакторной аутентификации, с которым постоянно сталкивается каждый из нас, - это снятие наличных через банкомат. Чтобы получить деньги, нужна карта, которая есть только у вас, и PIN-код, который знаете только вы. Заполучив вашу карту, злоумышленник не сможет снять наличность не зная PIN-кода и точно так же не сможет получить деньги зная его, но не имея карты.
По такому же принципу двухфакторной аутентификации осуществляется доступ к вашим аккаунтам в соцсетях, к почте и другим сервисам. Первым фактором является комбинация логина и пароля, а в роли второго могут выступать следующие 5 вещей.
Подтверждение с помощью SMS-кодов работает очень просто. Вы, как обычно, вводите свой логин и пароль, после чего на ваш номер телефона приходит SMS с кодом, который нужно ввести для входа в аккаунт. Это всё. При следующем входе отправляется уже другой SMS-код, действительный лишь для текущей сессии.
Преимущества
Недостатки
Этот вариант во многом похож на предыдущий, с тем лишь отличием, что, вместо получения кодов по SMS, они генерируются на устройстве с помощью специального приложения (Google Authenticator , Authy). Во время настройки вы получаете первичный ключ (чаще всего - в виде QR-кода), на основе которого с помощью криптографических алгоритмов генерируются одноразовые пароли со сроком действия от 30 до 60 секунд. Даже если предположить, что злоумышленники смогут перехватить 10, 100 или даже 1 000 паролей, предугадать с их помощью, каким будет следующий пароль, просто невозможно.
Преимущества
Недостатки
Данный тип аутентификации можно назвать сборной солянкой из всех предыдущих. В этом случае, вместо запроса кодов или одноразовых паролей, вы должны подтвердить вход с вашего мобильного устройства с установленным приложением сервиса. На устройстве хранится приватный ключ, который проверяется при каждом входе. Это работает в Twitter, Snapchat и различных онлайн-играх. Например, при входе в ваш Twitter-аккаунт в веб-версии вы вводите логин и пароль, потом на смартфон приходит уведомление с запросом о входе, после подтверждения которого в браузере открывается ваша лента.
Преимущества
Недостатки
Физические (или аппаратные) токены являются самым надёжным способом двухфакторной аутентификации. Будучи отдельными устройствами, аппаратные токены, в отличие от всех перечисленных выше способов, ни при каком раскладе не утратят своей двухфакторной составляющей. Чаще всего они представлены в виде USB-брелоков с собственным процессором, генерирующим криптографические ключи, которые автоматически вводятся при подключении к компьютеру. Выбор ключа зависит от конкретного сервиса. Google, например, рекомендует использовать токены стандарта FIDO U2F, цены на которые начинаются от 6 долларов без учёта доставки.
Преимущества
Недостатки
По сути, это не отдельный способ, а запасной вариант на случай утери или кражи смартфона, на который приходят одноразовые пароли или коды подтверждения. При настройке двухфакторной аутентификации в каждом сервисе вам дают несколько резервных ключей для использования в экстренных ситуациях. С их помощью можно войти в ваш аккаунт, отвязать настроенные устройства и добавить новые. Эти ключи стоит хранить в надёжном месте, а не в виде скриншота на смартфоне или текстового файла на компьютере.
Как видите, в использовании двухфакторной аутентификации есть некоторые нюансы, но сложными они кажутся лишь на первый взгляд. Каким должно быть идеальное соотношение защиты и удобства, каждый решает для себя сам. Но в любом случае все заморочки оправдываются с лихвой, когда дело заходит о безопасности платёжных данных или личной информации, не предназначенной для чужих глаз.
Где можно и нужно включить двухфакторную аутентификацию, а также о том, какие сервисы её поддерживают, можно прочесть .
Пароли не взламывает только ленивый. Недавняя массовая утечка учетных записей из Yahoo только подтверждает тот факт, что одного лишь пароля - и совершенно неважно, какой он будет длины и сложности, - уже недостаточно для надежной защиты. Двухфакторная аутентификация - это то, что обещает дать такую защиту, добавляя дополнительный уровень безопасности.
В теории все выглядит неплохо, да и на практике, в общем-то, работает. Двухфакторная аутентификация действительно усложняет взлом учетной записи. Теперь злоумышленнику недостаточно выманить, украсть или взломать основной пароль. Для входа в учетную запись необходимо ввести еще и одноразовый код, который… А вот каким именно образом получается этот одноразовый код - и есть самое интересное.
Ты неоднократно сталкивался с двухфакторной аутентификацией, даже если никогда не слышал о ней. Когда-нибудь вводил одноразовый код, который тебе присылали через СМС? Это оно, частный случай двухфакторной аутентификации. Помогает? Честно говоря, не очень: злоумышленники уже научились обходить и этот вид защиты.
Сегодня мы рассмотрим все виды двухфакторной аутентификации, применяемой для защиты учетных записей Google Account, Apple ID и Microsoft Account на платформах Android, iOS и Windows 10 Mobile.
Впервые двухфакторная аутентификация появилась в устройствах Apple в 2013 году. В те времена убедить пользователей в необходимости дополнительной защиты было непросто. В Apple не стали и стараться: двухфакторная аутентификация (получившая название двухэтапной проверки, или Two-Step Verification) использовалась только для защиты от прямого финансового ущерба. Например, одноразовый код требовался при совершении покупки с нового устройства, смене пароля и для общения со службой поддержки на темы, связанные с учетной записью Apple ID.
Добром это все не кончилось. В августе 2014 года произошла массовая утечка фотографий знаменитостей . Хакеры сумели получить доступ к учетным записям жертв и скачали фото из iCloud. Разразился скандал, в результате которого Apple в спешном порядке расширила поддержку двухэтапной проверки на доступ к резервным копиям и фотографиям в iCloud. В это же время в компании продолжались работы над методом двухфакторной аутентификации нового поколения.
Для доставки кодов двухэтапная проверка использует механизм Find My Phone, изначально предназначенный для доставки push-уведомлений и команд блокировки в случае потери или кражи телефона. Код выводится поверх экрана блокировки, соответственно, если злоумышленник добудет доверенное устройство, он сможет получить одноразовый код и воспользоваться им, даже не зная пароля устройства. Такой механизм доставки - откровенно слабое звено.
Также код можно получить в виде СМС или голосового звонка на зарегистрированный телефонный номер. Такой способ ничуть не более безопасен. SIM-карту можно извлечь из неплохо защищенного iPhone и вставить в любое другое устройство, после чего принять на нее код. Наконец, SIM-карту можно клонировать или взять у сотового оператора по поддельной доверенности - этот вид мошенничества сейчас приобрел просто эпидемический характер.
Если же у тебя нет доступа ни к доверенному iPhone, ни к доверенному телефонному номеру, то для доступа к учетной записи нужно использовать специальный 14-значный ключ (который, кстати, рекомендуется распечатать и хранить в безопасном месте, а в поездках - держать при себе). Если же ты потеряешь и его, то мало не покажется: доступ в учетную запись может быть закрыт навсегда.
Если честно, не очень. Двухэтапная проверка реализована из рук вон плохо и заслуженно получила репутацию худшей системы двухфакторной аутентификации из всех игроков «большой тройки». Если нет другого выбора, то двухэтапная проверка - это все же лучше, чем ничего. Но выбор есть: с выходом iOS 9 Apple представила совершенно новую систему защиты, которой дали бесхитростное название «двухфакторная аутентификация».
В чем именно слабость этой системы? Во-первых, одноразовые коды, доставленные через механизм Find My Phone, отображаются прямо на экране блокировки. Во-вторых, аутентификация на основе телефонных номеров небезопасна: СМС могут быть перехвачены как на уровне провайдера, так и заменой или клонированием SIM-карты. Если же есть физический доступ к SIM-карте, то ее можно просто установить в другое устройство и получить код на совершенно законных основаниях.
Также имей в виду, что преступники научились получать SIM-карты взамен «утерянных» по поддельным доверенностям. Если твой пароль украли, то уж узнать твой номер телефона - плевое дело. Подделывается доверенность, получается новая SIM-карта - собственно, для доступа к твоей учетной записи больше ничего и не требуется.
Взломать этот вариант двухфакторной аутентификации достаточно несложно. Есть несколько вариантов:
Защита с помощью двухэтапной проверки несерьезна. Не используй ее вообще. Вместо нее включи настоящую двухфакторную аутентификацию.
Вторая попытка Apple носит официальное название «двухфакторная аутентификация». Вместо того чтобы сменить предыдущую схему двухэтапной проверки, две системы существуют параллельно (впрочем, в рамках одной учетной записи может использоваться лишь одна из двух схем).
Двухфакторная аутентификация появилась как составная часть iOS 9 и вышедшей одновременно с ней версии macOS. Новый метод включает дополнительную проверку при любой попытке зайти в учетную запись Apple ID с нового устройства: на все доверенные устройства (iPhone, iPad, iPod Touch и компьютеры под управлением свежих версий macOS) моментально приходит интерактивное уведомление. Чтобы получить доступ к уведомлению, нужно разблокировать устройство (паролем или датчиком отпечатка пальцев), а для получения одноразового кода потребуется нажать на кнопку подтверждения в диалоговом окне.
Как и в предыдущем методе, в новой схеме возможно получение одноразового пароля в виде СМС или голосового звонка на доверенный телефонный номер. Однако, в отличие от двухэтапной проверки, пользователю в любом случае будут доставлены push-уведомления, и неавторизованную попытку зайти в учетную запись пользователь может заблокировать с любого из своих устройств.
Поддерживаются и пароли приложений. А вот от кода восстановления доступа в Apple отказались: если ты потеряешь свой единственный iPhone вместе с доверенной SIM-картой (которую по каким-то причинам не сможешь восстановить), для восстановления доступа к учетной записи тебе придется пройти настоящий квест с подтверждением личности (и нет, скан паспорта таким подтверждением не является… да и оригинал, что называется, «не канает»).
Зато в новой системе защиты нашлось место для удобной и привычной офлайновой схемы генерации одноразовых кодов. Для нее используется совершенно стандартный механизм TOTP (time-based one-time password), который каждые тридцать секунд генерирует одноразовые коды, состоящие из шести цифр. Эти коды привязаны к точному времени, а в роли генератора (аутентификатора) выступает само доверенное устройство. Коды добываются из недр системных настроек iPhone или iPad через Apple ID -> Password and Security.
Мы не станем подробно объяснять, что такое TOTP и с чем его едят, но об основных отличиях реализации этого метода в iOS от аналогичной схемы в Android и Windows рассказать все-таки придется.
В отличие от основных конкурентов, Apple позволяет использовать в качестве аутентификаторов исключительно устройства собственного производства. В их роли могут выступать доверенные iPhone, iPad или iPod Touch под управлением iOS 9 или 10. При этом каждое устройство инициализируется уникальным секретом, что позволяет в случае его утраты легко и безболезненно отозвать с него (и только с него) доверенный статус. Если же скомпрометирован окажется аутентификатор от Google, то отзывать (и заново инициализировать) придется статус всех инициализированных аутентификаторов, так как в Google решили использовать для инициализации единственный секрет.
В сравнении с предыдущей реализацией новая схема все же более безопасна. Благодаря поддержке со стороны операционной системы новая схема более последовательна, логична и удобна в использовании, что немаловажно с точки зрения привлечения пользователей. Система доставки одноразовых паролей также существенно переработана; единственное оставшееся слабое звено - доставка на доверенный телефонный номер, который пользователь по-прежнему должен верифицировать в обязательном порядке.
Теперь при попытке входа в учетную запись пользователь мгновенно получает push-уведомления на все доверенные устройства и имеет возможность отклонить попытку. Тем не менее при достаточно быстрых действиях злоумышленник может успеть получить доступ к учетной записи.
Так же как и в предыдущей схеме, двухфакторную аутентификацию можно взломать с помощью маркера аутентификации, скопированного с компьютера пользователя. Атака на SIM-карту тоже сработает, но попытка получить код через СМС все же вызовет уведомления на всех доверенных устройствах пользователя, и он может успеть отклонить вход. А вот подсмотреть код на экране заблокированного устройства уже не удастся: придется разблокировать девайс и дать подтверждение в диалоговом окне.
Уязвимостей в новой системе осталось не так много. Если бы Apple отказалась от обязательного добавления доверенного телефонного номера (а для активации двухфакторной аутентификации хотя бы один телефонный номер верифицировать придется в обязательном порядке), ее можно было бы назвать идеальной. Увы, необходимость верифицировать телефонный номер добавляет серьезную уязвимость. Попытаться защититься можно точно так же, как ты защищаешь номер, на который приходят одноразовые пароли от банка.
Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта. Мы принимаем оплату банковскими картами, электронными деньгами и переводами со счетов мобильных операторов.
Редкий пост в блоге Яндекса, а особенно касающийся безопасности, обходился без упоминания двухфакторной аутентификации. Мы долго думали, как правильно усилить защиту пользовательских аккаунтов, да еще так, чтобы этим мог пользоваться без всех тех неудобств, которые включают в себя самые распространённые ныне реализации. А они, увы, неудобны. По некоторым данным, на многих крупных сайтах доля пользователей, включивших дополнительные средства аутентификации, не превышает 0,1%.
Кажется, это потому, что распространенная схема двухфакторной аутентификации слишком сложна и неудобна. Мы постарались придумать способ, который был бы удобнее без потери уровня защиты, и сегодня представляем его бета-версию.
Надеемся, он получит более широкое распространение. Мы со своей стороны готовы работать над его улучшением и последующей стандартизацией.
После включения двухфакторной аутентификации в Паспорте вам надо будет установить приложение Яндекс.Ключ в App Store или Google Play . В форме авторизации на главной странице Яндекса, в Почте и Паспорте появились QR-коды. Для входа в учётную запись необходимо считать QR-код через приложение - и всё. Если считать QR-код не получается, например не работает камера смартфона или нет доступа к интернету, приложение создаст одноразовый пароль, который будет действовать всего 30 секунд.
Расскажу о том, почему мы решили не использовать такие «стандартные» механизмы, как RFC 6238 или RFC 4226 . Как работают распространенные схемы двухфакторной аутентификации? Они двухэтапные. Первый этап ─ обычная аутентификация логином и паролем. Если он прошел успешно, сайт проверяет, «нравится» ему эта пользовательская сессия или нет. И, если «не нравится», просит пользователя «доаутентифицироваться». Распространенных методов «доаутентификации» два: отсылка SMS на привязанный к аккаунту номер телефона и генерация второго пароля на смартфоне. В основном для генерации второго пароля используется TOTP по RFC 6238. Если пользователь ввел второй пароль верно, сессия считается полностью аутентифицированной, а если нет, то сессия теряет и «предварительную» аутентификацию.
Оба способа ─ отправка SMS и генерация пароля ─ доказательства обладания телефоном и потому являются фактором наличия. Пароль, вводимый на первом этапе, ─ фактор знания. Поэтому такая схема аутентификации ─ не только двухэтапная, но и двухфакторная.
Вторая проблема ─ непрозрачность суждения сервиса о качестве пользовательской сессии и принятия решения о необходимости «доаутентификации». Хуже того, сервис не заинтересован в том, что бы сделать этот процесс прозрачным, ─ ведь тут фактически работает security by obscurity. Если злоумышленник знает, на основании чего сервис принимает решение о легитимности сессии, он может попытаться подделать эти данные. Из общих соображений можно заключить, что суждение делается на основе истории аутентификаций пользователя с учетом IP-адреса (и производных от него номера автономной системы, идентифицирующей провайдера, и местоположения на основе геобазы) и данных браузера, например заголовка User Agent и набора cookies, flash lso и html local storage. Это означает, что если злоумышленник контролирует компьютер пользователя, то он имеет возможность не только украсть все необходимые данные, но и воспользоваться IP-адресом жертвы. Более того, если решение принимается на основе ASN, то любая аутентификация из публичного Wi-Fi в кофейне может привести к «отравлению» с точки зрения безопасности (и обелению с точки зрения сервиса) провайдера этой кофейни и, например, обелению всех кофеен в городе. Мы рассказывали о работе системы обнаружения аномалий , и ее можно было бы применить, но времени между первым и вторым этапом аутентификации может оказаться недостаточно для уверенного суждения об аномалии. Кроме того, этот же аргумент разрушает идею «доверенных» компьютеров: злоумышленник может украсть любую информацию, влияющую на суждение о доверенности.
Наконец, двухэтапная аутентификация попросту неудобна: наши usability-исследования показывают, что ничто так не раздражает пользователей, как промежуточный экран, дополнительные нажатия на кнопки и прочие «неважные», с его точки зрения, действия.
Исходя из этого, мы решили, что аутентификация должна быть одноэтапной и пространство паролей должно быть намного больше, чем возможно сделать в рамках «чистого» RFC 6238.
При этом нам хотелось по возможности сохранить двухфакторность аутентификации.
Многофакторность в аутентификации определяется отнесением элементов аутентификации (собственно, они и называются факторами) к одной из трех категорий:
Широко распространена такая форма одноэтапной аутентификации: пользователь помнит пин-код (первый фактор), имеет на руках аппаратный или программный (в смартфоне) токен, генерирующий OTP (второй фактор). В поле ввода пароля он вводит пин-код и текущее значение OTP.
На наш взгляд, главный недостаток этой схемы такой же, как и у двухэтапной аутентификации: если считать, что десктоп пользователя скомпрометирован, то однократный ввод пин-кода приводит к его раскрытию и злоумышленнику остается только подобрать второй фактор.
Мы решили пойти другим путем: пароль целиком генерируется из секрета, но в смартфоне сохраняется только часть секрета, а часть вводится пользователем при каждой генерации пароля. Таким образом смартфон сам по себе является фактором владения, а пароль остается в голове пользователя и является фактором знания.
В качестве Nonce может выступать либо счетчик, либо текущее время. Мы решили выбрать текущее время, это позволяет не бояться рассинхронизации в случае, если кто-то сгенерирует слишком много паролей и увеличит счетчик.
Итак, у нас есть программа для смартфона, куда пользователь вводит свою часть секрета, та смешивается с хранимой частью, результат используется в качестве ключа HMAC , которым подписывается текущее время, округленное до 30 секунд. Выход HMAC приводится к читаемому виду, и вуаля ─ вот и одноразовый пароль!
Как уже было сказано, RFC 4226 предполагает усечение результата работы HMAC до максимум 8 десятичных цифр. Мы решили, что пароль такого размера непригоден для одноэтапной аутентификации и должен быть увеличен. При этом нам хотелось сохранить простоту использования (ведь, напомним, хочется сделать такую систему, которой будут пользоваться обычные люди, а не только security-гики), так что в качестве компромисса в текущей версии системы мы выбрали усечение до 8 символов латинского алфавита. Кажется, что 26^8 паролей, действующих в течение 30 секунд, вполне приемлемо, но если security margin нас не будет устраивать (или на Хабре появятся ценные советы, как улучшить эту схему), расширим, например, до 10 символов.
Поэтому мы начали работы над «магическим логином». С таким способом аутентификации пользователь запускает приложение на смартфоне, вводит в него свой пин-код и сканирует QR-код на экране своего компьютера. Если пин-код введен правильно, страница в браузере перезагружается и пользователь оказывается аутентифицирован. Магия!
Стало лучше, но и тут мы решили не останавливаться. Начиная с iPhone 5S в телефонах и планшетах Apple появился сканер отпечатков пальцев TouchID, а в iOS версии 8 работа с ним доступна и сторонним приложениям. На деле приложение не получает доступ к отпечатку пальца, но если отпечаток верен, то приложению становится доступен дополнительный раздел Keychain. Этим мы и воспользовались. В защищенную TouchID запись Keychain помещается вторая часть секрета, та, которую в предыдущем сценарии пользователь вводил с клавиатуры. При разблокировке Keychain две части секрета смешиваются, и дальше процесс работает так, как описано выше.
Зато пользователю стало невероятно удобно: он открывает приложение, прикладывает палец, сканирует QR-код на экране и оказывается аутентифицированным в браузере на компьютере! Так мы заменили фактор знания на биометрический и, с точки зрения пользователя, совсем отказались от паролей. Мы уверены, что обычным людям такая схема покажется куда более удобной, чем ручной ввод двух паролей.
Можно подискутировать, насколько формально двухфакторной является такая аутентификация, но на деле для успешного ее прохождения все еще необходимо иметь телефон и обладать правильным отпечатком пальца, так что мы считаем, что нам вполне удалось отказаться от фактора знания, заменив его биометрией. Мы понимаем, что полагаемся на безопасность ARM TrustZone , лежащей в основе iOS Secure Enclave , и считаем, что на настоящий момент эту подсистему можно считать доверенной в рамках нашей модели угроз. Разумеется, нам известны проблемы биометрической аутентификации: отпечаток пальца ─ не пароль и заменить его в случае компрометации нельзя. Но, с другой стороны, всем известно, что безопасность обратно пропорциональна удобству, и пользователь сам вправе выбрать приемлемое для него соотношение одного и другого.
Напомню, что пока это бета. Сейчас при включении двухфакторной аутентификации мы временно выключаем синхронизацию паролей в Яндекс.Браузере. Связано это с тем, как устроено шифрование базы паролей. Мы уже придумываем удобный способ аутентификации Браузера в случае 2FA. Вся остальная функциональность Яндекса работает в прежнем режиме.
Вот что у нас получилось. Кажется, вышло неплохо, но судить вам. Мы будем рады услышать отзывы и рекомендации, а сами продолжим работу над улучшением безопасности наших сервисов: теперь вместе с CSP , шифрованием транспорта почты и всего остального у нас появилась и двухфакторная аутентификация . Не забывайте, что сервисы аутентификации и приложения генерации OTP относятся к критичным и поэтому за обнаруженные в них ошибки в рамках программы Bug Bounty выплачивается двойная премия.
Теги: Добавить метки