Андрей Смирнов
Время чтения: ~17 мин.
Просмотров: 0

Что такое авторизация и аутентификация, разница между ними

Что же теперь делать

Мы провели
опрос в Twitter, и оказалось, что из всех перечисленных вариантов чаще всего используется старая добрая авторизация через логин и пароль (49%), а за ней следует социальный вход (28%).

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

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

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

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

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

Беспарольная аутентификация

Первой реакцией на термин «беспарольная аутентификация» может быть «Как аутентифицировать кого-то без пароля? Разве такое возможно?»

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

Беспарольная аутентификация — это способ конфигурирования процедуры входа и аутентификации пользователей без ввода паролей. Идея такая:

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

Есть похожий метод, при котором вместо одноразовой ссылки по SMS отправляется код или одноразовый пароль. Но тогда придётся объединить ваше приложение с SMS-сервисом вроде twilio (и сервис не бесплатен). Код или одноразовый пароль тоже можно отправлять по почте.

И ещё один, менее (пока) популярный (и доступный только на устройствах Apple) метод беспарольной аутентификации: использовать Touch ID для аутентификации по отпечаткам пальцев. Подробнее о технологии.

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

Medium предоставляет доступ к своему сайту только по почте. Я недавно обнаружил, что Auth0, или Facebook AccountKit, — это отличный вариант для реализации беспарольной системы для вашего приложения.

Что может пойти не так?

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

В чём преимущества?

Как часто вы пользуетесь ссылкой «забыли пароль» для сброса чёртового пароля, который так и не смогли вспомнить после нескольких неудачных попыток входа на сайт / в приложение? Все мы бываем в такой ситуации. Все пароли не упомнишь, особенно если вы заботитесь о безопасности и для каждого сайта делаете отдельный пароль (соблюдая все эти «должен состоять не менее чем из восьми символов, содержать хотя бы одну цифру, строчную букву и специальный символ»). От всего этого вас избавит беспарольная аутентификация. Знаю, вы думаете сейчас: «Я использую менеджер паролей, идиот». Уважаю. Но не забывайте, что подавляющее большинство пользователей не такие техногики, как вы. Это нужно учитывать.

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

Если вы думаете, что какие-то пользователи предпочтут старомодные логин/пароль, то предоставьте им оба варианта, чтобы они могли выбирать.

Сегодня беспарольная аутентификация быстро набирает популярность.

Авторизация с помощью подключенного устройства

Авторизация с помощью подключенного устройства — это идентификация через Bluetooth (или нечто подобное), то есть присоединение одного устройства к другому, которое уже идентифицировало пользователя.

Например, для Mac OS X есть приложение KeyTouch, позволяющее авторизоваться на компьютере со сканом отпечатков пальцев со своего iPhone. Есть еще и Knock, который позволяет кликнуть по телефону, чтобы разблокировать компьютер.

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

Приложение Tether для iPhone

В домашнем офисе я использую приложение Mac OS X и iOS под названием Tether («связка»). После однократной синхронизации компьютера и телефона компьютер блокируется и разблокируется — в зависимости от близости телефона к компьютеру.

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

История

С древних времён перед людьми стояла довольно сложная задача — убедиться в достоверности важных сообщений. Придумывались речевые пароли, сложные печати. Появление методов аутентификации с применением механических устройств сильно упрощало задачу, например, обычный замок и ключ были придуманы очень давно. Пример системы аутентификации можно увидеть в старинной сказке «Приключения Али́-Бабы́ и сорока разбойников» . В этой сказке говорится о сокровищах, спрятанных в пещере. Пещера была загорожена камнем. Отодвинуть его можно было только с помощью уникального речевого пароля: «Сезам, откройся!».

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

Элементы системы аутентификации

В любой системе аутентификации обычно можно выделить несколько элементов :

  • субъект
    , который будет проходить процедуру аутентификации
  • характеристика
    субъекта — отличительная черта
  • хозяин системы аутентификации
    , несущий ответственность и контролирующий её работу
  • сам механизм аутентификации
    , то есть принцип работы системы
  • механизм, предоставляющий или лишающий субъекта определенных прав доступа
Элемент аутентификации Пещера 40 разбойников Регистрация в системе Банкомат
Субъект Человек, знающий пароль Авторизованный пользователь Владелец банковской карты
Характеристика Пароль «Сезам, откройся!» Секретный пароль Банковская карта и персональный идентификатор
Хозяин системы 40 разбойников Предприятие, которому принадлежит система Банк
Механизм аутентификации Волшебное устройство, реагирующее на слова Программное обеспечение, проверяющее пароль Программное обеспечение, проверяющее карту и идентификатор
Механизм управления доступом Механизм, отодвигающий камень от входа в пещеру Процесс регистрации, управления доступом Разрешение на выполнение банковских операций

Факторы аутентификации

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

  • Что-то, что мы знаем — пароль
    . Это секретная информация, которой должен обладать только авторизованный субъект. Паролем может быть речевое слово, текстовое слово, комбинация для замка или персональный идентификационный номер (PIN). Парольный механизм может быть довольно легко реализован и имеет низкую стоимость. Но имеет существенные минусы: сохранить пароль в секрете зачастую бывает проблематично, злоумышленники постоянно придумывают новые методы кражи, взлома и подбора пароля (см. бандитский криптоанализ). Это делает парольный механизм слабозащищенным.
  • Что-то, что мы имеем — устройство аутентификации
    . Здесь важен факт обладания субъектом каким-то уникальным предметом. Это может быть личная печать, ключ от замка , для компьютера это файл данных, содержащих характеристику. Характеристика часто встраивается в специальное устройство аутентификации, например, пластиковая карта , смарт-карта . Для злоумышленника заполучить такое устройство становится более проблематично, чем взломать пароль, а субъект может сразу же сообщить в случае кражи устройства. Это делает данный метод более защищенным, чем парольный механизм, однако, стоимость такой системы более высокая.
  • Что-то, что является частью нас — биометрика
    . Характеристикой является физическая особенность субъекта. Это может быть портрет, отпечаток пальца или ладони , голос или особенность глаза . С точки зрения субъекта, данный метод является наиболее простым: не надо ни запоминать пароль, ни переносить с собой устройство аутентификации. Однако, биометрическая система должна обладать высокой чувствительностью, чтобы подтверждать авторизованного пользователя, но отвергать злоумышленника со схожими биометрическими параметрами. Также стоимость такой системы довольно велика. Но несмотря на свои минусы, биометрика остается довольно перспективным фактором.

Шаг 5

Теперь проверим то, что мы получили из формы с тем, что у нас есть в переменных с логином и паролем. Делать это мы будем по условию — только в том случае, если нажата кнопка формы. Как мы можем это проверить? У кнопки есть имя («submit»), а данные мы передаем методом post. Соответственно, мы можем просто проверить, существует ли элемент submit в массиве $_POST. Если есть — кнопка была нажата, и мы будем выполнять действия по проверке присланных данных, иначе — ничего делать не будем. После объявления логина и пароля пишем условие:

if($_POST){
if($admin == $_POST AND $pass == md5($_POST)){
$_SESSION = $admin;
header(«Location: admin.php»);
exit;
}else echo ‘<p>Логин или пароль неверны!</p>’;
}

1
2
3
4
5
6
7

if($_POST’submit’){

if($admin==$_POST’user’AND$pass==md5($_POST’pass’)){

$_SESSION’admin’=$admin;

header(«Location: admin.php»);

exit;

}elseecho'<p>Логин или пароль неверны!</p>’;

}

Условие по проверке логина и пароля мы сделали как бы двойным. Сделано это при помощи логического оператора AND (его также можно записать таким образом — «&&»). Условие можно прочитать так: «если(переменная $admin равна элементу user в массиве $_POST И переменная $pass равна хешу элемента pass в массиве $_POST) то {выполняем блок действий}else выводим на экран текст ‘Логин или пароль неверны!’

Если же пара логин-пароль совпадает, то мы регистрируем сессионную переменную $_SESSION и перенаправляем пользователя на страницу админки — admin.php. Попробуем теперь протестировать то, что мы уже создали. Если мы введем заведомо ложные логин и пароль, то получим предупреждающее сообщение, что «Логин или пароль неверны!». Попробуем теперь ввести правильные данные для входа. Если мы нигде не ошиблись, то после нажатия на кнопку «Войти» мы окажемся на странице админки.

Отлично!

Беспарольная авторизация

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

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

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

Авторизация в Slack

У Slack есть очень хороший пример беспарольной идентификации. На разных этапах входа в систему и процессов сброса пароля сервис использует «волшебную ссылку» (magic link) для идентификации пользователей. Уникальный URL отправляется на электронный адрес пользователя, и этот URL открывает приложение и позволяет ему войти.

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

Социальный вход

Социальный вход или вход через авторитетный проверенный сайт — популярный и удобный способ идентификации. Он предназначен не только для входа в систему. У American Express есть Amex Express Checkout, откуда вы входите на свой Amex-аккаунт, чтобы безопасно оплачивать товары на сторонних сайтах. Вы идентифицированы, и уже не нужно отправлять данные кредитной карты продавцу.

Однако чаще всего социальный вход означает возможность войти в сторонний сервис или в приложение с помощью Facebook, LinkedIn или Twitter.

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

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

Тем не менее
статья MailСhimp от 2012 года понятно объясняет, почему сайт был против социального входа (и, судя по всему, с тех пор не поменял позицию). Сервис аргументирует это тем, что социальный вход создает слишком много неудобств для пользователя. Даже при однократной регистрации в варианте социального входа и при запасном варианте входа пользователь должен запомнить, как именно он регистрировался в самом начале.

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

Альфа-Банк начал подключение 3D Secure к банковским картам

Подключение 3D Secure к иным картам находится на финальной стадии реализации и ожидается в ближайшие дни

при наличии подключенного к соответствующей карте sms-оповещения услуги «Альфа-Чек» — на этот же номер телефона; при наличии подключенного sms-оповещения услуги «Альфа-Чек» — достаточно в меню интернет-банка «Альфа-Клик» поменять номер телефона для получения sms-оповещений; Обращаем внимание на то, что одноразовые пароли для подтверждения операций в рамках 3D Secure с 29.06.2018 будут поступать:. при отсутствии подключенного sms-оповещения — на анкетный номер клиента, содержащийся в базе данных банка

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

Все инструкции

  • Как получить помощь в трудоустройстве безработным

    Как найти работу при помощи Центра занятости населения. Где проходят ярмарки вакансий. Оплачивается ли участие в общественных работах

  • Как получить пособие по безработице

    Каков размер пособия по безработице в Москве. Как оформить пособие по безработице. Какие еще денежные выплаты положены безработным в Москве

  • Как получить статус «Московский врач»

    Кто может получить статус «Московский врач». Как оценивается профессиональная квалификация врачей. Есть ли дополнительные выплаты для получивших статус «Московский врач»

  • Как встать на учет в качестве безработного

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

  • Как зафиксировать несчастный случай на производстве или профессиональное заболевание

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

  • Как получить налоговый вычет по расходам на оценку квалификации

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

  • Как получить помощь при потере работы

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

  • Все о правилах приема на работу

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

  • Все об увольнении

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

  • Как получить архивные документы

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

  • Куда пожаловаться на задержку зарплаты

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

  • Как заключить трудовой договор с ребенком

    Где может работать ребенок. Каким подросткам требуется согласие органов опеки на заключение трудового договора. Может ли несовершеннолетний самостоятельно получить разрешение органов опеки на работу

  • Как получить выплаты при несчастном случае на производстве

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

  • Какие дни в 2020 году нерабочие

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

  • Как стать тренером в спортивной школе

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

В каких случаях появляется этот статус?

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

  • Приобретение товаров или услуг:
  • Дистанционно, через интернет;
  • В торговых точках магазинов-партнеров.
  • Оплата в банкоматах сторонних организаций;
  • Внесение денежных средств на счет финансового инструмента.

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

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

Он означает процесс выполнения той или иной операции и является неким центром между началом и концом совершения транзакции.

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

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

Аутентификация на основе токенов

Аутентификация на основе токенов в последние годы стала очень популярна из-за распространения одностраничных приложений, веб-API и интернета вещей. Чаще всего в качестве токенов используются Json Web Tokens (JWT). Хотя реализации бывают разные, но токены JWT превратились в стандарт де-факто.

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

Процедура аутентификации на основе токенов:

  1. Пользователь вводит имя и пароль.
  2. Сервер проверяет их и возвращает токен (JWT), который может содержать метаданные вроде user_id, разрешений и т. д.
  3. Токен хранится на клиентской стороне, чаще всего в локальном хранилище, но может лежать и в хранилище сессий или кук.
  4. Последующие запросы к серверу обычно содержат этот токен в качестве дополнительного заголовка авторизации в виде Bearer {JWT}. Ещё токен может пересылаться в теле POST-запроса и даже как параметр запроса.
  5. Сервер расшифровывает JWT, если токен верный, сервер обрабатывает запрос.
  6. Когда пользователь выходит из системы, токен на клиентской стороне уничтожается, с сервером взаимодействовать не нужно.

У метода есть ряд преимуществ:

  • Главное преимущество: поскольку метод никак не оперирует состояниями, серверу не нужно хранить записи с пользовательскими токенами или сессиями. Каждый токен самодостаточен, содержит все необходимые для проверки данные, а также передаёт затребованную пользовательскую информацию. Поэтому токены не усложняют масштабирование.
  • В куках вы просто храните ID пользовательских сессий, а JWT позволяет хранить метаданные любого типа, если это корректный JSON.
  • При использовании кук бэкенд должен выполнять поиск по традиционной SQL-базе или NoSQL-альтернативе, и обмен данными наверняка длится дольше, чем расшифровка токена. Кроме того, раз вы можете хранить внутри JWT дополнительные данные вроде пользовательских разрешений, то можете сэкономить и дополнительные обращения поисковые запросы на получение и обработку данных.
    Допустим, у вас есть API-ресурс /api/orders, который возвращает последние созданные приложением заказы, но просматривать их могут только пользователи категории админов. Если вы используете куки, то, сделав запрос, вы генерируете одно обращение к базе данных для проверки сессии, ещё одно обращение — для получения пользовательских данных и проверки, относится ли пользователь к админам, и третье обращение — для получения данных.
    А если вы применяете JWT, то можете хранить пользовательскую категорию уже в токене. Когда сервер запросит его и расшифрует, вы можете сделать одно обращение к базе данных, чтобы получить нужные заказы.
  • У использования кук на мобильных платформах есть много ограничений и особенностей. А токены сильно проще реализовать на iOS и Android. К тому же токены проще реализовать для приложений и сервисов интернета вещей, в которых не предусмотрено хранение кук.

Благодаря всему этому аутентификация на основе токенов сегодня набирает популярность.

Рейтинг автора
5
Материал подготовил
Максим Иванов
Наш эксперт
Написано статей
129
Ссылка на основную публикацию
Похожие публикации