на сколько это стоит как зарегистрироваться в системе

Авторизация в личном кабинете

Авторизация банковской карты

Gosuslugi.ru — вход в личный кабинет для физических лиц

Типы учетных записей на сайте Госуслуги

Возможности для зарегистрированных пользователей

Преимущества подтвержденного аккаунта


НА СКОЛЬКО ЭТО СТОИТ КАК ЗАРЕГИСТРИРОВАТЬСЯ В СИСТЕМЕ

За время работы архитектором в проектах внедрения IdM я проанализировал десятки реализаций механизмов авторизации как во внутренних решениях компаний, так и в коммерческих продуктах, и могу утверждать, что практически везде при наличии относительно сложных требований они сделаны не правильно или, как минимум, не оптимально. Причиной, на мой взгляд, является низкое внимание и заказчика и разработчиков к данному аспекту на начальных этапах и недостаточная оценка влияния требований. Это косвенно подтверждает повсеместное неправильное использование термина: когда я вижу словосочетание «двухфакторная авторизация», у меня начинаются боли чуть ниже спины. Ради интереса мы проанализировали первые 100 статей на Хабре в выдаче по запросу «авторизация», результат получился неутешительный, боли было много:


НА СКОЛЬКО ЭТО СТОИТ КАК ЗАРЕГИСТРИРОВАТЬСЯ В СИСТЕМЕ

В более чем 80% случаев термин употребляется неверно, вместо него следовало бы использовать слово «аутентификация». Далее я попытаюсь объяснить что это такое, и почему крайне важно уделить особое внимание этой теме.

Проблематика

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

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

От безопасности мы могли бы получить следующие требования:

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

Итак, обозначим, почему эти требования проблемные:

Регистрация в кабинете


НА СКОЛЬКО ЭТО СТОИТ КАК ЗАРЕГИСТРИРОВАТЬСЯ В СИСТЕМЕ

Правила безопасности и конфиденциальности

В системе портала используется полный набор механизмов безопасности. Программное обеспечение портала регулярно проходит сертификацию. Персональные данные пользователей хранятся в единой базе ЕСИА. Данная система аттестована на обработку конфиденциальной информации.

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

Личный кабинет ЕСИА

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

Функционал личного кабинета ЕСИА

Авторизация в личном кабинете ЕСИА

Мобильное приложение личного кабинета ЕСИА

Клиентская поддержка через кабинет

Правила безопасности и конфиденциальности

Мобильное приложение личного кабинета ЕСИА

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


НА СКОЛЬКО ЭТО СТОИТ КАК ЗАРЕГИСТРИРОВАТЬСЯ В СИСТЕМЕ

С помощью приложения возможно:

Пути решения

Решить данную задачу нам помогают разработанные модели управления доступом:

MAC — мандатная модель управления доступом. Доступ субъекта к объекту определяется его уровнем доступа: уровень доступа субъекта должен быть не ниже уровня секретности объекта.

DAC — прямое управление доступом. Доступ субъекта к объекту определяется наличием субъекта в списке доступа (ACL) объекта.

RBAC — ролевая модель управления доступом. Доступ субъекта к объекту определяется наличием у субъекта роли, содержащей полномочия, соответствующие запрашиваемому доступу.

АВАС — атрибутивная модель управления доступом. Доступ субъекта к объекту определяется динамически на основании анализа политик учитывающих значения атрибутов субъекта, объекта и окружения. Сюда же относятся PBAC, RAdAC, CBAC, с некоторыми нюансами (шикарный обзор от CUSTIS).

Их крайне рекомендуется использовать в первозданном виде, не изобретая велосипед. Достаточно часто в сложных информационных системах используется комбинация моделей. Например, популярна комбинация ACL + RBAC, когда роль включается в список доступа. Однако, правильное применение готовых моделей — тоже не простая задача. Не всем удается правильно выбрать модель, отделить ее от бизнес-логики и достичь приемлемой производительности механизма авторизации.

Для реализации озвученных выше в разделе «Проблематика» требований, на первый взгляд, я бы выбрал комбинацию PBAC + ACL. Требования могли бы быть реализованы следующим образом:

Перечисленные требования ИБ без всяких проблем реализуются с использованием ACL, однако бизнес-требования 5 и 7 мы реализуем с помощью PBAC. Так что для реализации требований ИБ 1 и 2 придется добавить к ним журнал или аналогичный механизм, поскольку при всей своей красоте динамические правила плохо аудируются:

Функционал личного кабинета ЕСИА

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

Что же это такое?

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

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

Использование в бизнесе

Авторизация банковских карт

Gosuslugi. ru — вход в личный кабинет для физических лиц

Работа с кабинетом на сайте Госуслуг будет одинаково полезной как для физических, так и юридических лиц. В зависимости от пользователя, в нашем случае физическое лицо, вход на сайт возможен сразу несколькими способами. Для авторизации необходимо зайти на основной сайт Госуслуг и перейти в раздел «Личный кабинет», где указать закрепленный за учетной записью номер мобильного, СНИЛС или специально выпущенную ЭЦП. Стоит учесть, что после регистрации кабинета на портале Госуслуг, гражданин может воспользоваться этой же учетной записью для посещения других важных сайтов организаций: налоговой, пенсионного фонда, ГИС ЖКХ, личного сайта мэра столицы и многих других. Поэтому нужно быть крайне осторожным и внимательным при вводе данных и выборе пароля. Ведь от этого зависит безопасность ваших персональных данных.

Войти по номеру телефона


НА СКОЛЬКО ЭТО СТОИТ КАК ЗАРЕГИСТРИРОВАТЬСЯ В СИСТЕМЕ

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

Вход в личный кабинет Госуслуг через СНИЛС


НА СКОЛЬКО ЭТО СТОИТ КАК ЗАРЕГИСТРИРОВАТЬСЯ В СИСТЕМЕ

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

Вход с ЭЦП

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

Для входа нужно воспользоваться компьютером и осуществить следующие действия:


НА СКОЛЬКО ЭТО СТОИТ КАК ЗАРЕГИСТРИРОВАТЬСЯ В СИСТЕМЕ

НА СКОЛЬКО ЭТО СТОИТ КАК ЗАРЕГИСТРИРОВАТЬСЯ В СИСТЕМЕ

Как зарегистрироваться в личном кабинете Госуслуги?

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

Использование в общедоступных сетях Wi-fi

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


НА СКОЛЬКО ЭТО СТОИТ КАК ЗАРЕГИСТРИРОВАТЬСЯ В СИСТЕМЕ

Преимущества подтвержденного аккаунта

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

Использование при переводе

Время на прочтение

В данной статье мы разберем 4 способа как зарегистрировать нового пользователя:

Статья даст вам конкретный алгоритм реализации каждого способа. Необходимые библиотеки, а также примеры кода. Я постараюсь приводить в пример реализацию на чистейшем JavaScript, для того чтобы вы смогли внедрить функционал в свое проект, не зависимо от используемого фреймворка, однако также будут примеры для тандема Angular + Asp . Net Core. Мы обсудим как защитить ваш сайт от взлома. На сколько это сложно и возможно ли в принципе гарантировать 100% защиту. Итак, давайте приступим.

Регистрация. Аутентификация. Авторизация.

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

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

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

По большому счету – это разные этапы одного процесса (предоставление доступа пользователю).


НА СКОЛЬКО ЭТО СТОИТ КАК ЗАРЕГИСТРИРОВАТЬСЯ В СИСТЕМЕ

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

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

Далее под словом “авторизация” (для простоты) будет подразумеваться весь процесс получение доступа.

Что представляет из себя база данных.

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

Но используют для этих целей определенные программы “Базы данных”. База данных – это программа, которая работает в фоновом режиме, функциями которой вы можете пользоваться из других программ (написанных вами). Что это за функции? – если коротко, то это операции сохранения и получения данных, но в отличии от обычного текстового файла, база данных выполняет операции сохранения и получение намного быстрее (Особенно когда этих данных становится очень много).


НА СКОЛЬКО ЭТО СТОИТ КАК ЗАРЕГИСТРИРОВАТЬСЯ В СИСТЕМЕ

Таким образом работу backend приложения можно представить, как работу 2-х независимых программ:

Почему современные приложения не используют логин + пароль для авторизации.

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

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

В чем проблема авторизации при помощи логина + пароль

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

Использование токенов в процессе авторизации

Токен представляет из себя простую строку из символов, на примере этой:

Давайте кратко опишем этапы авторизации с помощью токена:

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

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

Авторизация на самом сайте

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


НА СКОЛЬКО ЭТО СТОИТ КАК ЗАРЕГИСТРИРОВАТЬСЯ В СИСТЕМЕ

Этапы такой авторизации описываются в стандартах – OAuth и OAuth 2.0. Обе версии описывают один и тот же алгоритм, но 2 версия – более защищенная.

Алгоритм авторизации – подробно.

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

JWT(JSON Web Token)

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

Что представляет из себя этот стандарт ? Как можно догадаться из названия, этот стандарт основан на JSON и позволяет передавать вместе с токеном любой JSON объект (а поскольку мы можем любые данные представить в качестве объекта, который в последствии будет превращен в JSON, то внутри JWT можно передавать всё что угодно). J WT состоит из 3-х частей:


НА СКОЛЬКО ЭТО СТОИТ КАК ЗАРЕГИСТРИРОВАТЬСЯ В СИСТЕМЕ

НА СКОЛЬКО ЭТО СТОИТ КАК ЗАРЕГИСТРИРОВАТЬСЯ В СИСТЕМЕ

3) Уникальный ключ, для шифрования

Получается у нас есть объект, состоящий из 3-х полей. В хедере мы указываем, что за тип токена мы используем и как будут кодироваться данные. В секции payload – данные, которые мы хотим передавать с сервера на клиент и обратно. А уникальный ключ – это пароль, с помощью которого мы кодируем 2 предыдущих части и превращаем их в строку.

Ключ, всегда хранится только на сервере. И клиентское приложение не имеет к нему доступа. Таким образом гарантируется, что изменить токен может только приложение у которого есть этот ключ (то есть только сервер). Здесь важно, что именно ИЗМЕНИТЬ, т.к декодировать токен и получить из него header и payload может любой, кто получил этот токен. Эти данные публичные.


НА СКОЛЬКО ЭТО СТОИТ КАК ЗАРЕГИСТРИРОВАТЬСЯ В СИСТЕМЕ

Алгоритм генерации JWT токена на Java Script

Сначала мы превращаем header и payload в base64. Далее используем алгоритм шифрования из библиотеки Crypto Js, для того чтобы закодировать две полученные base64 строки и получить сигнатуру(которая тоже является строкой). После чего просто объединяем 3 полученные строки в одну, разделяя точками.

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

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

Для решения этой проблемы существуют Access и Refresh токены. Здесь мы не начинаем использовать какой-то новый способ авторизации. Используется все тот же JWT, но теперь единственный токен, который у нас был мы называем Access Token, при этом в дополнении к нему появляется второй Refresh токен, который также представляет из себя строку, имеет одинаковую структуру с Access Token, поэтому может хранить внутри какие-то данные (хоть и не обязательно и обычно это не требуется).

Важно то, что у Access и Refresh токенов появляются обязательные поля внутри их payload (iat, exp). Об их существовании я уже упоминал, но когда у нас есть только 1 токен, то эти поля по большому счету не используются и содержат дополнительную информацию.


НА СКОЛЬКО ЭТО СТОИТ КАК ЗАРЕГИСТРИРОВАТЬСЯ В СИСТЕМЕ

Iat (issued at time) – время, когда токен сгенерирован.

Exp (expiration time) – время, до которого токен будет считаться валидным.

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

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

Таким образом, Access и Refresh токены не защищают полностью от взлома, но сильно усложняют жизнь взломщикам (т.к похищенный токен нельзя долго использовать).

Где хранить токены

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

Авторизация через внешние сервисы

Общий алгоритм добавления авторизации через сторонние сервисы следующий:

А теперь на примере Gmail авторизации давайте взглянем на детали:

В Gmail, ровно как и в других похожих сервисах первое что вам нужно будет сделать – это создать “Приложение” для вашего сайта на специальном сервисе для разработчиков. У каждого сервиса авторизации он свой. Для Google – это Developer Console.

Как вы могли догадаться целью создания профиля является получение этого самого ключа. У гугл он называется Client Id. Client Id будет использоваться в нашем frontend приложении. Вот как это может выглядеть на TypeScript:


НА СКОЛЬКО ЭТО СТОИТ КАК ЗАРЕГИСТРИРОВАТЬСЯ В СИСТЕМЕ

НА СКОЛЬКО ЭТО СТОИТ КАК ЗАРЕГИСТРИРОВАТЬСЯ В СИСТЕМЕ

DIALOG_PARAMS – настройки окна, где пользователь будет вводить авторизационные данные.

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

Авторизация по номеру телефона

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

Сервисы для отправки Email и СМС сообщений.

Начнем с отправки email. Чтобы отправить сообщение на почту вам необходим SMTP сервер (и без него обойтись не получится). Здесь есть 2 варианта:

Вариант 1 – сложный. Вы создаете отдельный свой сервер и настраиваете его, чтобы он понимал SMTP протокол. В большинстве случаев это слишком сложно и излишне.

Вариант 2 – рациональный. Вы используете сторонние сервисы, которые берут на себя работу по обслуживанию SMTP сервера, а вам предоставляют, либо готовый API для отправки сообщений, либо сам адрес SMTP сервера, который вы можете использовать.

Как вы могли догадаться, в обоих случаях удовольствие это не бесплатное. Или почти не бесплатное. В случае с SMTP сервисами, многие провайдеры предоставляют триал или бесплатное использование на время разработки (то есть у вас все будет работать, но только на маленьких нагрузках). Одним из таких сервисов является SMTP.bz.


НА СКОЛЬКО ЭТО СТОИТ КАК ЗАРЕГИСТРИРОВАТЬСЯ В СИСТЕМЕ

Теперь разберемся с сервисами для отправки СМС сообщений. В этом случае у нас также есть готовые API для отправки смс. Например — smsc.ru. Использование довольно простое – отправка http запроса с номером телефона и сообщением.

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

А нужна ли вам вообще авторизация на сайте ?

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

Заканчиваем

Всем привет, дорогие друзья!

Приходилось ли Вам когда-нибудь тестировать формы авторизации?

Но ведь задача тестировщика постараться максимально точно и грамотно обозначить проблему!

Возможно ли это? Конечно!

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


НА СКОЛЬКО ЭТО СТОИТ КАК ЗАРЕГИСТРИРОВАТЬСЯ В СИСТЕМЕ

·        первый экран (Screen 1) как наглядный пример процесса «Идентификации»;

·        второй экран (Screen 2) как наглядный пример процесса «Аутентификации»;

·        третий экран (Screen 3) как наглядный пример процесса «Авторизации».

Итак, Screen 1 — на первом экране идет распознавание пользователя по его уникальному идентификатору.

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

Существует 3 фактора, которые напрямую задействуются в процессе аутентификации:

Главное, что эта информация известна конкретному пользователю.

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

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

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

Но если система говорит пользователю: «Окей, тебе известен пароль, но возможно ты его украл. Какими-то биометрическими данными ты еще обладаешь? Давай-ка ты, дружочек-пирожочек, покажи свое лицо и докажи системе повторно — что ты есть ты!”, в таком случае система проведет повторную аутентификацию и вот это уже будет наша многофакторная, а конкретнее двухфакторная аутентификация (ДФА, 2FA).

Screen 3 — это завершающий этап, когда:

·         система проверила наш идентификатор;

·         успешно прошел процесс аутентификации.

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

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

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

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

Таким образом, мы разобрали понятия идентификации, аутентификации и авторизации. Надеемся, если раньше у вас возникали какие-то трудности с этим, то теперь все стало более понятно.

Спасибо за внимание!

Авторизация в информационных технологиях и управление доступом

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

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

Мандатный доступ (MAC) заключается в разделении информации по степени секретности, а пользователей по уровням допуска к этой информации. Главное преимущество мандатного доступа заключается в ограничении прав владельца объекта. Права субъектов на создаваемые ими объекты будут зависеть от их уровня допуска, соответственно они не смогут случайно или преднамеренно делегировать их неавторизированным пользователям. Согласно требованиям ФСТЭК мандатное управление доступом является ключевым отличием систем защиты Государственной Тайны РФ старших классов 1В и 1Б от младших классов защитных систем, основанных на дискреционной модели. Поддержка мандатного управления доступом присутствует в некоторых операционных системах, таких как Ubuntu, SUSE Linux, FreeBSD. Также используется в системах управления базами данных. Иногда применяется вместе с дискреционным контролем доступа.

Пример дискреционного управление доступом к файловой системе в дополнение к мандатному

Управление доступом на основе ролей

Развитием политики избирательного доступа является управление доступом на основе ролей (RBAC), где доступ к объектам системы формируется с учётом специфики их применения на основе роли субъектов в каждый момент времени. Роли позволяют определить понятные для пользователей правила разграничения доступа. Роль сочетает свойства избирательного управления доступом, ставя в соответствие субъектам объекты, и мандатного, при изменении ролей изменится и доступ к группе файлов, но этот тип доступа более гибкий, по сравнению с предыдущими, и может их моделировать. Сейчас RBAC широко используется для управления пользовательскими привилегиями в пределах единой системы или приложения. Список таких систем включает в себя Microsoft Active Directory, SELinux, FreeBSD, Solaris, СУБД Oracle, PostgreSQL 8.1, SAP R/3, Lotus Notes и множество других.

Другие типы управления доступом

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

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

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

Актуальна ли тема?

Тема интересна, пишите еще!

Тема уныла, потому никто о ней и не говорит.

Проголосовали 326 пользователей.

Воздержались 34 пользователя.

Авторизация в системе

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

Авторизация в личном кабинете

Авторизация в личном кабинете позволяет пользователю получить доступ к изменению настроек своей учетной записи, интерфейса взаимодействия с системой, паролей, типовых операций, на управление счетом, внесение изменений в систему. До выполнения авторизации, посетитель сайта или банковского учреждения может использовать ограниченный набор функций: просматривать общедоступную информацию, проводить транзакции, не требующие подтверждения прав доступа. Часто при авторизации в личном кабинете используют дополнительные средства безопасности – ввод капчи, подтверждение по SMS или e-mail.

Виды режимов авторизации

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

Плюсы авторизации

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

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

Ошибка авторизации


НА СКОЛЬКО ЭТО СТОИТ КАК ЗАРЕГИСТРИРОВАТЬСЯ В СИСТЕМЕ

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *