Современные стандарты идентификации: oauth 2.0, openid connect, webauthn

Введение

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

Однако ни то, ни другое не было правдой. Ранее я работал в компании Auth0,, которая управляет цифровой идентификацией. (Сейчас я являюсь участником программы Auth0 Ambassadors и являюсь экспертом Google Developer по SPPI: Security, Privacy, Payments, and Identity — безопасность, конфиденциальность, платежи и идентификация.)

Цифровая идентификация

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

Что это значит?

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

Это приводит нас к …

Аутентификация

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

Как только система сможет установить это, мы приходим к …

Стандарты

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

Есть много разных стандартов и организаций, которые управляют работой Интернета. Два органа, которые представляют для нас особый интерес в контексте аутентификации и авторизации, — это Инженерная рабочая группа по Интернету (Internet Engineering Task Force — IETF) и Фонд OpenID (OpenID Foundation — OIDF).

IETF (Internet Engineering Task Force)

IETF — это большое открытое международное сообщество сетевых инженеров, операторов, поставщиков и исследователей, которые занимаются развитием интернет-архитектуры и бесперебойной работой интернета.

OIDF (OpenID Foundation)

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

Теперь, когда нам известны спецификации и кто их пишет, давайте вернемся к авторизации и поговорим о:

OAuth 2.0

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

OAuth не является спецификацией аутентификации. OAuth имеет дело с делегированной авторизацией. Помните, что аутентификация — это проверка личности пользователя. Авторизация касается предоставления или отказа в доступе к ресурсам. OAuth 2.0 предоставляет доступ к приложениям от имени пользователей.

Как было до OAuth

Чтобы понять цель OAuth, нам нужно вернуться назад во времени. OAuth 1.0 был создан в декабре 2007 года. До этого, если нам требовался доступ к сторонним ресурсам, это выглядело так:

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

После того, как вы вошли в HireMe123, HireMe123 запросит у вас ваши учетные данные для входа в MyCalApp. Вы должны ввести свое имя пользователя и пароль на сайте HireMe123.

Затем HireMe123 используя ваш логин получить доступ к API MyCalApp, и затем сможет создавать события календаря с использованием ваших учетных данных.

Совместное использование учетных данных — это плохо!

Этот подход основывался на совместном использовании личных учетных данных пользователя из одного приложения с совершенно другим приложением, и это не очень хорошо.

Так как, HireMe123 поставил на карту защиты вашей учетной записи MyCalApp гораздо меньше. Если HireMe123 не защитит ваши учетные данные MyCalApp надлежащим образом, и они в конечном итоге будут украдены или взломаны, кто-то сможет написать несколько неприятных статей в блоге, но HireMe123 как бы останется в стороне.

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

OAuth 2.0

  • Resource Owner — пользователь, который заходит на MySite и дает ему разрешение использовать свои закрытые данные из Соцсети.
  • Client (он же MySite) — приложение или интернет сайт, которым пользуется пользователь и которое взаимодействует с Authorization Server и Resource Server для получения закрытых данных пользователя.
  • Authorization Server — сервер который проверяет логин/пароль пользователя, он же Соцсеть.
  • Resource Server — хранит закрытую пользовательскую информацию, которую можно получить с помощью API. Authorization Server и Resource Server могут быть совмещены в одну систему.

Authorization flow

  • Перед началом авторизации необходимо зарегистрировать MySite в Соцсети:
  • Разработчик MySite задает Name (имя приложения), Homepage (адрес домашней страницы MySite) и Callback (адрес, на который Соцсеть перенаправит пользователя после успешной авторизации)
  • Соцсеть выдает Client ID (иногда его называют AppID) и Client Secret.
  • Client ID и Client Secret разработчик должен прописать в своем Client.
  1. Resource Owner заходит на Client (MySite), выбирает опцию “войти с помощью Соцсети”, сайт перенаправляет пользователя в Cоцсеть на Authorization Server.
  2. Authorization Server проверяет есть ли у пользователя активная сессия и, если нет, то показывает форму для логина.
  3. Resource Owner вводит свои логин/пароль и подтверждает, что определенные закрытые данные могут быть использованы MySite, например имя пользователя или e-mail адрес.
  4. Authorization Server проверяет пользователя и перенаправляет на адрес Callback с результатом аутентификации и “Authorization Code”
  5. В ответ Client посылает “Authorization Code”, Client ID и Client Secret.
  6. Authorization Server проверяет присланные данные и формирует “access token” в формате JWT (JSON Web Token), подписанный своим приватным ключом. В этом же JWT может содержаться и “refresh token”, c помощью которого возможно восстановление сессии после ее окончания.
  7. После этого Client может запросить закрытую информацию пользователя с помощью вызова API, в который передается “access token”.
  8. Resource Server проверяет “access token” (например, используя открытый ключ Authorization Server) и предоставляет доступ к данным пользователя.

OAuth 2.0 Лабораторная работа (GitHub)

  • Client ID: ab8ec08a620c2
  • Client Secret: e6fdd52b0a99e8fbe76b05c1b7bb93c1e
  • адрес — это точка логина на GitHub
  • client_id — это Client ID, выданный при регистрации
  • адрес — это точка получения access token на GitHub
  • client_id — это Client ID, выданный при регистрации
  • client_secret это Client Secret, выданный при регистрации
  • code — это только что присланный code

Что такое Идентификация

Это еще одна из встроенных функций для входа на сервис либо в приложение.

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

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

В целом процедура идентификации и процедура аутентификации напрямую зависят друга от друга. Успешное завершение этих операций подразумевает доступ к запрашиваемой системе — авторизация.

Регистрируясь на каком-либо сайте либо в приложении вы получаете номер либо имя – логин – который и является идентификатором.

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

  • Серия и номер паспорта.
  • Номер мобильного телефона.
  • Адрес электронной почты.
  • Номер аккаунта в социальной сети.
  • Номер банковской карточки.
  • Номер машины.
  • IMEI телефона.
  • Другое.

Авторизация: что это такое и для чего

Владельцы пластиковых «кошельков» постоянно сталкиваются с авторизацией при проведении каких-либо операций: пополнение мобильного счета, оплата услуг, денежные переводы, покупки – все они требуют подтверждения. Другими словами, вы спрашиваете у банка: «Можно ли провести эту операцию?», а эмитент – банк, выдавший карту – разрешает проведение операции. Это и есть авторизация.

Операции проводятся через аппараты для безналичных расчетов – POS-терминалами. Их можно встретить в любом магазине, на автозаправке, в кафе и прочих коммерческих организациях. При чтении карты создается код для авторизации и отправляется банку за подтверждением, на это уходит лишь несколько секунд. То же происходит и в банкоматах.

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

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

Ошибки аутентификации: причины и пути решения

При подключении к сети Wi-Fi, одного устройства к другому или при входе в любую программу и на сайт могут возникнуть проблемы. Чаще всего они связаны с такими причинами:

Неправильный идентификатор, то есть вы просто забыли или перепутали логин, пароль, ПИН-код, банковскую карту. Тут не возникает особых вопросов, как исправить ошибку

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

Все это приводит к определенным затруднениям, и нужно искать способ убрать ошибку и получить доступ к данным или деньгам в каждом конкретном случае. Можно перевыпустить карту, а тем временем перевести деньги на другой счет и обналичить с него, заказать новую подпись или ключ, обратиться в офис, чтобы подтвердить действие без отпечатка пальцев, а, к примеру, при помощи кодового слова.
Разная система шифрования на телефоне и роутере приводит к их несовместимости. Чтобы подключиться к Wi-Fi в случае такой ошибки, потребуется изменить настройки роутера, применив шифрование, доступное в мобильном устройстве.
Иногда телефон не подключается к сети из-за программного сбоя ОС или ошибки в работе роутера. В таком случае попробуйте обновить программу в мобильном устройстве и перезапустите маршрутизатор.
Разная скорость передачи данных на устройствах, тут придется разбираться и снова лезть в настройки выставлять приемлемый объем данных, передаваемый за определенный промежуток времени.
В настройках роутера или другого прибора могут быть четко прописаны устройства, с которыми он может поддерживать связь. Если нужно добавить новый гаджет, то снова-таки придется поработать с настройками.

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

Плюсы и минусы авторизации, вопросы безопасности

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

Среди минусов:

  • Разработка лишней страницы;
  • Ввод персональных данных может настораживать людей;
  • Нужна оплата оборудования и услуг провайдеров, специалистов;
  • Отсутствие приватности.

Плюсы гораздо существеннее:

  • Владелец получает дополнительную площадку для рекламы;
  • Клиент узнает об акциях и скидках прямо при входе в интернет;
  • Возможный учет некоторого количества людей;
  • Увеличение количества подписчиков и последующий анализ целевой аудитории;
  • Увеличение контроля над беспроводной сетью.

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

Важно! Если при авторизации в сомнительном заведении требуют ввести дополнительные данные, то это повод задуматься и не входить в сеть

Авторизация возможна также и для домашнего использования. Предоставляют ее такие операторы, как Билайн, МТС, Мегафон и другие.

Виды аутентификации

Пользователи интернета в моем представлении подразделяются на оптимистов и параноиков. Оптимисты не заморачиваются кодами и сложными паролями. Фамилия, дата рождения или слово “qwerty” вполне могут стать их паролем от аккаунта в соцсети или электронной почты. Главное, чтобы было легко запомнить.

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

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

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

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

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

  • С помощью биометрических данных. Это может быть ваш голос, лицо, отпечаток пальцев, сетчатка глаза. Этот вариант считается наиболее надежным, но систем, которые его используют, не так уж много, и стоят они дорого.
  • Сквозная. В данном случае проверку нужно пройти в одной программе, а пользоваться можно несколькими сервисами и приложениями без необходимости каждый раз авторизовываться. Примером может служить вход в Google-аккаунт. Войдя в него, вы автоматически получаете доступ к облачному хранилищу, почте, своему YouTube-каналу и другим сервисам.

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

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

Простыми словами, это — проверка подлинности. Но вы ведь можете сказать, что существует такое понятие как авторизация. И это — то же самое. Хорошо, давайте объясню поподробнее.

Например, вы — клиент банка, и у вас есть банковская карта. Вы управляете ее балансом на планшете через мобильный банк.

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

Но что случится тогда, когда злоумышленник каким-либо образом узнает эти данные? Он сможет залогиниться сам и получить полный доступ к управлению вашими средствами — наберет кредитов или просто переведет на другие счета!

Поэтому придумали такую процедуру как двухфакторная авторизация:

● Первый фактор — это проверка логина и пароля;

● Второй фактор — проверка чего-то, что не подвластно взлому, например, сервис требует ввести SMS.

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

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

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

Смена пользователя в Яндекс.Браузере

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

Если вы не знаете, как сменить пользователя в Яндекс Браузере следуйте несложной пошаговой инструкции.

  1. Откройте главную Yandex.
  2. Нажмите на логин в правом верхнем углу экрана.
  3. В открывшемся меню выберите «Добавить пользователя».
  4. Введите логин и пароли или авторизуйтесь с помощью социальной сети.

Yandex позволяет добавить до 15 аккаунтов для быстрого переключения между ними.

Лишние аккаунты можно удалить, кликнув на иконку бегущего человечка. Тогда вы выйдете из этой учетной записи и она исчезнет из списка.

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

Способы авторизации

Известны два способа: голосовой и автоматический. Первый уже не слишком актуален.

Голосовая

Под голосовой авторизацией понимается звонок продавца банку-эквайеру. Он обслуживает POS-терминалы или банкоматы и проводит расчетные операции. Представьте, что на автозаправке собралась большая очередь, перед вами клиент решил расплатиться картой, и продавец звонит банку-эквайеру, чтобы провести оплату. Это займет какое-то время, а время, как говорится, – деньги. Скорее всего, бо́льшая часть очереди в следующий раз поедет заправляться на другую АЗС.

Автоматическая

Автоматическая вам уже должна быть знакома. Ведь это терминалы, работающие по «безналу» (безналичному расчету). Они в автоматическом режиме сами составляют запрос банковской организации. На экране после введения ПИН-кода появляется надпись «Авторизация…», после чего и происходит оплата.

Ни одно решение для аутентификации не является панацеей

Рисунок 2. Таблица вариантов аутентификации

Аутентификация Фактор Описание Ключевые уязвимости
Пароль или PIN Знание Фиксированное значение, которое может включать буквы, цифры и ряд прочих знаков Может быть перехвачен, подсмотрен, украден, подобран или взломан
Аутентификация основанная на знаниях Знание Вопросы, ответы на которые может знать только легальный пользователь Могут быть перехвачены, подобраны, получены с помощью методов социальной инженерии
Аппаратные OTP (пример) Обладание Специальное устройство, которое генерирует одноразовые пароли Код может быть перехвачен и повторен, либо устройство может быть украдено
Программные OTP Обладание Приложение (мобильное, доступное через браузер, либо отправляющее коды по e-mail), которое генерирует одноразовые пароли Код может быть перехвачен и повторен, либо устройство может быть украдено
SMS OTP Обладание Одноразовый пароль, доставляемый с помощью текстового сообщения SMS Код может быть перехвачен и повторен, либо смартфон или SIM-карта могут быть украдены, либо SIM-карта может быть дублирована
Смарт-карты (пример) Обладание Карта, которая содержит криптографический чип и защищенную память с ключами, использующая для аутентификации инфраструктуру открытых ключей Может быть физически украдено (но злоумышленник не сможет воспользоваться устройством без знания PIN-кода; в случае нескольких неверных попытках ввода устройство будет заблокировано)
Ключи безопасности — токены (пример, ещё пример) Обладание Устройство с интерфейсом USB, которое содержит криптографический чип и защищенную память с ключами, использующее для аутентификации инфраструктуру открытых ключей Может быть физически украдено (но злоумышленник не сможет воспользоваться устройством без знания PIN-кода; в случае нескольких неверных попыток ввода устройство будет заблокировано)
Привязка к устройству Обладание Процесс, создающий профиль, часто с использованием JavaScript, либо с помощью маркеров, таких как cookies и Flash Shared Objects для того чтобы гарантировать, что используется конкретное устройство Маркеры могут быть украдены (скопированы), также характеристики легального устройства могут быть имитированы злоумышленником на своем устройстве
Поведение Неотъемле-мость Анализируется как пользователь взаимодействует с устройством или программой Поведение может быть сымитировано
Отпечатки пальцев Неотъемле-мость Сохраненные отпечатки пальцев сравниваются со считанными оптическим или электронным способом Изображение может быть украдено и использовано для аутентификации
Сканирование глаз Неотъемле-мость Сравниваются характеристики глаза, такие как рисунок радужной оболочки зрачка, с новыми сканами, полученными оптическим способом Изображение может быть украдено и использовано для аутентификации
Распознавание лица Неотъемле-мость Сравниваются характеристики лица, с новыми сканами, полученными оптическим способом Изображение может быть украдено и использовано для аутентификации
Распознавание голоса Неотъемле-мость Сравниваются характеристики записанного образца голоса, с новыми образцами Запись может быть украдена и использована для аутентификации, либо эмулирована

Ключи безопасности, они же токены, указанные в отчете, созданы по стандартам FIDO (U2F или FIDO2). Токены изготовленные согласно этому стандарту действительно не имеют никакой защиты, как не имеют её и аппаратные ОТР – каждый, кто украдет или найдёт устройство, сможет действовать от имени законного владельца (если, конечно, узнает пароль).
Но классические криптографические токены и смарт-карты надежно защищены PIN-кодом. Перед началом работы, пользователь подключает свой токен к устройству по USB, Bluetooth, NFC или через SmartCard Reader. Далее, он вводит PIN-код, который разблокирует доступ к защищенной памяти токена и позволяет выполнить аутентификацию. PIN-код не передаётся на сервер, а значит не может быть перехвачен при передаче. В отличие от пароля он может быть простым и лёгким для запоминания. Этот PIN-код является фактором знания, что позволяет достаточно просто организовать двухфакторную аутентификацию с помощью криптографических токенов / смарт-карт.Таким образом, практически любой способ аутентификации имеет изъяны, за исключением криптографических токенов.
второй части публикации

Делегирование со Scopes

Как API узнает, какой уровень доступа он должен предоставить приложению, запрашивающему использование его API? Мы делаем это с помощью scopes.

Scopes (Области действия) «ограничивают возможности приложения от имени пользователя». Они не могут предоставлять привилегии, которых у пользователя еще нет. Например, если у пользователя MyCalApp нет разрешения на создание новых корпоративных учетных записей MyCalApp, scopes, предоставленные HireMe123, также никогда не позволят пользователю создавать новые корпоративные учетные записи.

Scopes делегируют управление доступом к API или ресурсу. Затем API отвечает за объединение входящих scopes с фактическими правами пользователя для принятия соответствующих решений по управлению доступом.

Давайте рассмотрим это на нашем примере.

Я использую приложение HireMe123, и HireMe123 хочет получить доступ к стороннему API MyCalApp для создания событий от моего имени. HireMe123 уже запросил токен доступа для MyCalApp с сервера авторизации MyCalApp. Этот токен содержит некоторую важную информацию, такую как:

  • : (пользовательский ID на MyCalApp )
  • :  (то есть этот токен предназначен только для API MyCalApp)
  • : write: events (scope — область действия, в которой говорится, что HireMe123 имеет право использовать API для записи событий в мой календарь)

HireMe123 отправляет запрос в API MyCalApp с токеном доступа в своем заголовке авторизации. Когда MyCalApp API получает этот запрос, он может увидеть, что токен содержит scope write: events.

Но MyCalApp размещает учетные записи календаря для сотен тысяч пользователей. В дополнение к рассмотрению scope в токене, промежуточному программному обеспечению (middleware) API MyCalApp необходимо проверить sub идентификатор пользователя, чтобы убедиться, что этот запрос от HireMe123 может только использовать мои привилегии для создания событий с моей учетной записью MyCalApp.

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

Предоставление согласия

Помните, когда сервер авторизации спрашивал пользователя HireMe123 о его согласии разрешить HireMe123 использовать привилегии пользователя для доступа к MyCalApp?

Этот диалог согласия может выглядеть примерно так:

HireMe123 может запросить множество различных областей, например:

  • …etc.

В общем, мы должны избегать увеличения количества областей с правами пользователя. Тем не менее, можно добавить разные области для отдельных пользователей, если ваш сервер авторизации обеспечивает управление доступом на основе ролей (Role-Based Access Control — RBAC).

Об изобретении велосипедов

Листинг 1: Велоформа импорта контактов
<form action="http://gmail.com/auth.php?retpath=http://oursocialnetwork.ru/import.php" method="get">
  <input type="submit" value="Загрузить адресную книгу" />
</form>
Листинг 2: Велоадрес возврата с велоключом
http://oursocialnetwork.ru/import.php?secret=Y49xdN0Zo2B5v0RR
Листинг 3: Запуск метода велоAPI
$contacts = $gmailApi->getContacts($_GET);

Грабли первые: подмена адреса возврата retpath

Листинг 4: Ссылка на сайте злоумышленника
http://gmail.com/auth.php?retpath=http://hackersite.ru/save.php
Листинг 5: Велосекрет в адресе возврата
http://hackersite.ru/save.php?secret=Y49xdN0Zo2B5v0RR

Грабли вторые: «подслушивание» секретного ключа

Листинг 6: Велоадрес возврата с велоключом
http://oursocialnetwork.ru/import.php?secret=Y49xdN0Zo2B5v0RR
    Нужно помнить, что секретный ключ передается не только в URL, но еще и при вызове API-методов. Там тоже возможен перехват. Конечно, использование SSL здесь помогает.

Заключение

  • OAuth 2.0 — используется для регистрации и входа пользователей на сайты с помощью соцсетей. А также для получения данных пользователей из соцсетей.
  • OpenID Connect — используется для аутентификации пользователей и позволят предоставить им доступ к своим закрытым данным на сайтах. Также OpenID Connect служит для реализации сложных сценариев взаимодействия в корпоративных SSO системах.
  • WebAuthn — используется для добавления на сайт возможности аутентификации с помощью внешнего физического ключа или отпечатка пальца.

Выводы

  • Очевидно, что современный сайт должен реализовать все возможные способы регистрации и авторизации, чтобы у пользователя был осознанный выбор.
  • Появилась возможность никогда не хранить пароль пользователя, чтобы не компрометировать свою репутацию, а хранить только логины и зашифрованные личные данные.
  • Имеет смысл отдать аутентификацию пользователей облачным платформам, таким как Facebook или Google, т.к. в них работают лучшие специалисты по безопасности, которые могут предусмотреть все нюансы безопасности.
  • Предлагаю с оптимизмом смотреть в будущее, т.к. протокол WebAuthn — реальный шанс избавится от парольного ада нашего времени!

It’s only the beginning!

Оцените статью
Рейтинг автора
5
Материал подготовил
Андрей Измаилов
Наш эксперт
Написано статей
116
Добавить комментарий