что необходимо для авторизации пользователя в системе
Авторизация: что это такое и для чего нужно?
Несмотря на то, что интернетом пользуется огромное количество людей по всему миру, ежедневно многие пользователи только начинают познавать этот виртуальный мир. Пользователи часто сталкиваются с определениями, которые они прежде не слышали. Вот, к примеру, авторизация — что это такое?
Авторизация (от английского слова authorization, что можно перевести как «разрешение») — это предоставление прав пользователю или группе лиц на выполнение тех или иных действий. Не поняли? Допустим, вы прошли регистрацию в Яндекс.Почте. Для того, чтобы попасть в свой электронный почтовый ящик, вам необходимо пройти авторизацию, то есть в данном случае ввести логин и пароль, который вы указали при регистрации.
Вот как выглядит поле для ввода данных Яндекс.Почты:
Соответственно, как только вы введете логин и пароль, система распознает пользователя и предоставит доступ к почте, а кроме того, доступ к другим сервисам компании Яндекса.
Разумеется, с авторизацией вы можете встретиться и на многих других сайтах. Взять тот же Сбербанк Онлайн: чтобы попасть в личный кабинет, нужно ввести логин и пароль.
При этом в случае со Сбербанком Онлайн используется так называется двухфакторная авторизация: помимо ввода логина и пароля пользователю необходимо ввести дополнительный код, который приходит к нему на телефон в виде СМС-сообщения. Это сделано для дополнительной безопасности. Только после ввода кода можно войти в личный кабинет.
Авторизацию в социальных сетях вы наверняка прекрасно знаете. Вот пример на основе ВКонтакте:
Есть другой вид авторизации, тоже, кстати, в банковской сфере. Допустим, вы оплачиваете покупку в интернете. Лимит на покупку товаров без авторизации — 2000 рублей. Вы же покупаете товар за 3000 рублей. Без авторизации в этом случае вы не сможете оплатить товар: для этого обычно необходим либо пароль, который вы сами же создаете, либо код, который придет в сообщении на телефон.
Важно также отметить, что не во всех случаях пользователь сам может зарегистрироваться на сервисе и получить данные для авторизации. Есть такие сервисы, где регистрация возможна только в определенном учреждении, в котором пользователь получает данные для доступа (авторизации).
Что такое данные авторизации?
Обычно данными авторизации являются логин и пароль, но не всегда. Зачастую это может быть фамилия или имя пользователя, а также пароль. Бывает так, что пользователь знает только логин для входа в систему, а пароль приходит ему в СМС-сообщении.
Чаще всего пользователь сам вправе менять свои данные авторизации, однако логин в некоторых случаях изменить невозможно. Например, если говорить о почтовых сервисах, логин изменить не получится, а вот пароль — пожалуйста.
Какие плюсы у авторизации?
Это зависит от сервиса. Если брать те же банковские услуги, то большинство услуг пользователю доступны только после регистрации в сервисе и получении данных для авторизации.
Если говорить про обычные сайты, зачастую авторизация предлагает возможность получения большего количества функций. Кроме того, на тех же форумах нельзя общаться без авторизации. Кстати, сейчас можно использовать аккаунты социальных сетей для регистрации и последующей авторизации во многих сервисах. Это удобно, поскольку не требует дополнительных действий.
Уважаемые пользователи! Если наш сайт вам помог или что-то в нем не понравилось, будем рады, если вы оставите комментарий. Заранее большое спасибо.
Что такое авторизация?
При входе посетителей на сайт, в систему банковских платежей, требуется авторизоваться. Что такое авторизация? Это процесс подтверждения прав на совершение определенных операций – управления счетом, снятия средств, изменения данных. Он необходим для обеспечения безопасности при совершении действий, для разграничения прав пользователей, для защиты от злоумышленников. Используется на сайтах, в банкоматах, пропускниках, Интернет-магазинах. Обычно пользователь должен ввести свой логин (имя) в системе и пароль (кодовое слово, набор символов). Если коды введены правильно, разрешается вход в систему и выполнение разрешенных манипуляций. Если допущена ошибка, вход в систему не производится.
Ошибка авторизации
Ошибка авторизации – неверное введение логина, пароля и других данных. При наборе кодовых слов, пользователь должен обращать внимание на правильный порядок символов, регистр, установленную раскладку клавиатуры. При ошибке авторизации система блокирует посетителя доступ к системе и может производить такие действия:
Код авторизации
Код авторизации представляет собой набор символов, которые хранятся в памяти системы и позволяют идентифицировать права пользователя. В качестве кода обычно выступают комбинации 3-12 букв, цифр, знаков, набранных в определенной последовательности. Код авторизации генерируется в процессе регистрации пользователя и впоследствии может изменяться по желанию владельца учетной записи или по требованию службы безопасности. Часто устанавливается определенное ограничение на количество изменений комбинаций в период времени. Для безопасного пользования сервисом, пользователь должен хранить набор символов в тайне.
Авторизация в личном кабинете
Авторизация в личном кабинете позволяет пользователю получить доступ к изменению настроек своей учетной записи, интерфейса взаимодействия с системой, паролей, типовых операций, на управление счетом, внесение изменений в систему. До выполнения авторизации, посетитель сайта или банковского учреждения может использовать ограниченный набор функций: просматривать общедоступную информацию, проводить транзакции, не требующие подтверждения прав доступа. Часто при авторизации в личном кабинете используют дополнительные средства безопасности – ввод капчи, подтверждение по SMS или e-mail.
Онлайн авторизация
Онлайн авторизация позволяет пользователям использовать сервисы без личного посещения финансовых учреждений, магазинов, учебных заведений. Для этого нужно войти на сайт, перейти по соответствующей ссылке или нажать на определенную кнопку, ввести данные в форму. Онлайн авторизация помогает посетителям ресурса экономить время, а организациям – делать услуги доступными широким массам, привлекать большее количество клиентов, улучшать качество обслуживания, повышать степень безопасности выполнения операций, проводить статистические исследования, ранжировать права доступа пользователей.
Авторизация недоступна
При входе в систему, пользователю может быть выдано сообщение о том, что авторизация недоступна. В этом случае посетителю следует попробовать повторно авторизоваться, выполнив все требования безопасности, выполнить восстановление забытого пароля или логина или обратиться в службу технической поддержки по телефону или e-mail. Сообщение «Авторизация недоступна», выдается посетителю сайта или пользователю сервиса в следующих случаях:
Данные авторизации
Авторизация банковской карты
Авторизация банковской дебетовой карты – это получение права на совершение транзакций с помощью «пластика», доступа к управлению счетом. Выполняется в режиме онлайн – на сайте финансового учреждения или офлайн – с помощью POS-терминала. Для авторизации необходимо ввести определенные данные: пароль, логин, PIN-код, проверочные слова, коды из SMS. При попытке получения несанкционированного доступа, подбора пароля, система безопасности может временно блокировать аккаунт пользователя. Для восстановления прав пользования сервисом, нужно обратиться в учреждение, выдавшее «пластик», лично или по телефону.
Виды режимов авторизации
Для удобства пользователей, для использования имеющейся в наличии аппаратуры и для обеспечения выполнения требований безопасности, созданы различные виды режимов авторизации. Часто используется комбинация нескольких таких режимов. Различают такие их типы:
Плюсы авторизации
Плюсы авторизации для пользователей: возможность получить доступ к большему количеству функций сервиса, управлять личными данными, повысить степень защиты своих средств, конфиденциальной информации.
Неавторизованным пользователям обычно открыт доступ к базовым сервисам, ограниченному количеству функций и к публичной информации. Плюсы авторизации для компании: идентификация клиентов и сотрудников, простое разграничение прав доступа, повышение степени безопасности и защиты конфиденциальной информации, учет и регулирование количества посетителей сервиса.
Никто (почти) не знает, что такое авторизация
За время работы архитектором в проектах внедрения IdM я проанализировал десятки реализаций механизмов авторизации как во внутренних решениях компаний, так и в коммерческих продуктах, и могу утверждать, что практически везде при наличии относительно сложных требований они сделаны не правильно или, как минимум, не оптимально. Причиной, на мой взгляд, является низкое внимание и заказчика и разработчиков к данному аспекту на начальных этапах и недостаточная оценка влияния требований. Это косвенно подтверждает повсеместное неправильное использование термина: когда я вижу словосочетание «двухфакторная авторизация», у меня начинаются боли чуть ниже спины. Ради интереса мы проанализировали первые 100 статей на Хабре в выдаче по запросу «авторизация», результат получился неутешительный, боли было много:
В более чем 80% случаев термин употребляется неверно, вместо него следовало бы использовать слово «аутентификация». Далее я попытаюсь объяснить что это такое, и почему крайне важно уделить особое внимание этой теме.
Что же это такое?
Авториза́ция (англ. authorization «разрешение; уполномочивание») — предоставление определенному лицу или группе лиц прав на выполнение определённых действий; а также процесс проверки (подтверждения) данных прав при попытке выполнения этих действий.
С точки зрения любой информационной системы это процесс принятия решения о предоставлении доступа субъекту на выполнение операции на основании каких-либо знаний о субъекте. К этому моменту субъект, как правило, уже должен быть идентифицирован (мы должны знать, кто он) и аутентифицирован (подтверждена его идентичность).
Реализация авторизации при разработке корпоративной информационной системы или продукта, ориентированного на корпоративный сектор — очень сложная и ответственная задача, которой часто уделяется недостаточное внимание на этапе проектирования и первичном этапе разработки, что в будущем ведет к «костыльной» реализации.
Проблематика
Давайте разберемся, какие требования к авторизации встречаются, и почему их крайне важно учитывать изначально при проектировании системы, а не откладывать на будущее. Источников требований к авторизации в корпоративной информационной системе, как правило, два — это бизнес и информационная безопасность. В общем случае бизнес хочет хранить секреты в тайне и предоставлять полномочия пользователям в соответствии с их функцией в бизнес-процессе, а безопасность хочет обеспечить минимальную достаточность полномочий каждому пользователю и аудировать доступ.
Возьмем для примера гипотетическую систему согласования договоров крупной компании, типовой кровавый энтерпрайз. Практически наверняка возникнут следующие требования к авторизации от бизнеса:
Итак, обозначим, почему эти требования проблемные:
Пути решения
Решить данную задачу нам помогают разработанные модели управления доступом:
MAC — мандатная модель управления доступом. Доступ субъекта к объекту определяется его уровнем доступа: уровень доступа субъекта должен быть не ниже уровня секретности объекта.
DAC — прямое управление доступом. Доступ субъекта к объекту определяется наличием субъекта в списке доступа (ACL) объекта.
RBAC — ролевая модель управления доступом. Доступ субъекта к объекту определяется наличием у субъекта роли, содержащей полномочия, соответствующие запрашиваемому доступу.
АВАС — атрибутивная модель управления доступом. Доступ субъекта к объекту определяется динамически на основании анализа политик учитывающих значения атрибутов субъекта, объекта и окружения. Сюда же относятся PBAC, RAdAC, CBAC, с некоторыми нюансами (шикарный обзор от CUSTIS).
Их крайне рекомендуется использовать в первозданном виде, не изобретая велосипед. Достаточно часто в сложных информационных системах используется комбинация моделей. Например, популярна комбинация ACL + RBAC, когда роль включается в список доступа. Однако, правильное применение готовых моделей — тоже не простая задача. Не всем удается правильно выбрать модель, отделить ее от бизнес-логики и достичь приемлемой производительности механизма авторизации.
Для реализации озвученных выше в разделе «Проблематика» требований, на первый взгляд, я бы выбрал комбинацию PBAC + ACL. Требования могли бы быть реализованы следующим образом:
| Требование от бизнеса | Решение | |
|---|---|---|
| 1 | Пользователь, не имеющий отношения к конкретному договору, не должен его видеть в системе | Тут напрашивается ACL, поскольку определить отношение пользователя к бизнес-процессу достаточно сложно, не записывая его в какой-то список в момент вовлечения. Это будет оптимальным решением с точки зрения производительности чтения относительно реализации с помощью политик. |
| 2 | Автор договора должен видеть его на всех этапах | Требование может быть реализовано обоими механизмами, но оптимальным я считаю ACL, поскольку в этом случае будет проще реализовать требование №3 от ИБ. |
| 3 | Создавать договор имеет право пользователь с грейдом не ниже 10 | Это политика (PBAC), без вариантов |
| 4 | Визирующий должен видеть договор начиная с поступления к нему на этап и далее | ACL будет оптимален |
| 5 | Руководители подразделений должны видеть договоры своих подразделений вниз по иерархии | Замечательная задача для PBAC, но его применение может снизить производительность чтения, а требования 1 и 2 от ИБ потребуют дополнительных усилий, поэтому стоит подумать над реализацией. |
| 6 | Автор договора и руководитель подразделения имеют право отозвать договор на любом этапе согласования | PBAC справится отлично |
| 7 | Руководство и секретариат головного офиса должны видеть документы всех филиалов | PBAC, с теми же ограничениями что и в п. 5 |
| 8 | Пользователь, создавший договор, не должен иметь права его завизировать | Это требование можно было бы закрыть с помощью PBAC, однако так делать не стоит. Это то самое место, где авторизация вступает в конфликт с бизнес-логикой, и если происходит такая ситуация, ответственность стоит отдать бизнес-логике. |
| Требование от ИБ | Решение | |
|---|---|---|
| 1 | Знать, кто имеет доступ к конкретному договору | Общий журнал для ACL и PBAC |
| 2 | Знать, кто имел доступ к конкретному договору в заданный момент времени | Общий журнал для ACL и PBAC |
| 3 | Лишать пользователя доступа к ранее доступным документам при изменении его должностных обязанностей | ACL |
Итого
Авторизация — незаслуженно обойденная вниманием тема, как в публикациях, так и непосредственно в процессе разработки. Двухфакторную аутентификацию по СМС к сайту прикрутит и ребенок. Правильно реализовать авторизацию в корпоративной системе, не наделав костылей — сложнейшая задача, о которую ломают копья сеньоры и архитекторы, а множество популярных коммерческих продуктов (к примеру, Atlassian Jira) стоят на костылях благодаря сложности требований.
Мы планируем серию статей, посвященных моделям авторизации и предмету в целом. Будем рады вопросам и предложениям по темам для рассмотрения.
Статьи по теме: «Информационная безопасность»
Идентификация, аутентификация и авторизация
На самом деле никакого обмена не происходило. Произошли поочередно три процесса: идентификация, аутентификация и авторизация. Данная статья поможет понять, как происходят эти процессы, когда они происходят, в какой последовательности и как с их помощью защитить свои персональные данные и денежные средства.
Содержание статьи:
Определения
Понимание процессов придет быстрее, если дать им определения.
Для начала этих теоретических знаний будет достаточно. Вернемся к примеру с доступом в онлайн-банкинг. Каждое действие пользователя и системы рассмотрим подробно.
Механизмы идентификации, аутентификации и авторизации
Находясь на сайте банка, пользователь решает зайти в личный кабинет, чтобы сделать денежный перевод. На странице личного кабинета система вначале просит ввести идентификатор. Это может быть логин, имя и фамилия, адрес электронной почты или номер мобильного телефона.
Какой конкретно вид данных необходимо ввести – зависит от ресурса. Данные, которые указывались при регистрации, необходимо ввести для получения доступа. Если при регистрации указывалось несколько типов данных – и логин, и адрес электронной почты, и номер мобильного, то система сама подскажет что ей конкретно нужно.
Ввод этих данных необходим для идентификации человека за монитором как пользователя конкретно этого банка.
Если пользователь в качестве идентификатора ввел «Александр Петров», и система нашла в своей базе запись о пользователе с таким именем, то идентификация завершилась.
После идентификации следует процесс аутентификации, в котором пользователю нужно доказать, что он является человеком, который регистрировался под именем Александр Петров.
Для доказательства необходимо наличие одного из типов аутентификационных данных:
Самый распространенный тип аутентификационных данных – это пароль. Именно поэтому так важно создавать и правильно хранить свои пароли. Подробнее об этом можно прочитать в статьях «Создание надежных паролей» и «Как правильно выбирать и хранить пароли».
После ввода пользователем пароля система проверяет: соответствует ли условный пароль «Q45fp02@13» пользователю с именем Александр Петров. Таким образом происходит аутентификация.
Если все верно, и пара логин-пароль верны, то система предоставит пользователю доступ к его ресурсам и совершение банковских операций, то есть произойдет авторизация.
Описанные процессы всегда происходят только в таком порядке: идентификация, аутентификация, авторизация. Вся цепочка потеряет смысл, если, например, сайт сначала предоставит доступ к денежным средствам пользователя, а потом будет уточнять, он ли это на самом деле.
Процессы идентификации, аутентификации и авторизации характерны не только для онлайн-банкинга, но и для электронной почты, социальных сетей и других ресурсов.
Процессы идентификации, аутентификации и авторизации есть во многих сферах. Даже в простейших детских сказках. Сказка «Волк и семеро козлят» является идеальным примером для демонстрации.
Здесь козлята выступают в роли системы безопасности, идентифицируя каждого, кто подходит к двери. В качестве данных для аутентификации выступает биометрия – тонкий голосок мамы-козы. И если в первый раз волк не смог пройти аутентификацию (его выдал грубый голос), то со второй попытки (после того как ему перековали горло, и он запел тонким голоском) он аутентифицировался как мама-коза и козлята «авторизовали» его в свою избу.
Несмотря на то, что сказка закончилась благополучно, доступ к козлятам был получен неправомерно. Волку удалось обмануть процессы идентификации и аутентификации и тем самым пройти авторизацию.
Если в старой детской сказке это оказалось возможным, то что говорить о современных злоумышленниках. Чтобы защитить свои денежные средства и персональные данные и козлят от волка от злоумышленника необходимо использовать более сложные способы аутентификации.
Многофакторная аутентификация
Многофакторная аутентификация представляет собой метод, при котором пользователю для доступа к учетной записи или подтверждения операции с денежными средствами необходимо двумя различными факторами доказать, что именно он владелец учетной записи или что именно он осуществляет вход.
Среди видов многофакторной аутентификации наиболее распространена двухфакторная аутентификация (2FA — 2-factor authentication) – метод, при котором пользователю для получения доступа необходимо предоставить два разных типа аутентификационных данных, например, что-то известное только пользователю (пароль) и что-то присущее только пользователю (отпечаток пальца).
Доступ к ресурсам через ввод логина и пароля, является однофакторной аутентификацией, поскольку для входа используется только один тип аутентификационных данных — известный пользователю пароль.
Однофакторная двухэтапная аутентификация
Даже если злоумышленник получит логин и пароль для учетной записи (с помощью вредоносной программы, кражи записной книжки с паролями или методами социальной инженерии и фишинга), то после ввода этих данных система отправит на привязанный мобильный телефон пользователя одноразовый код с ограниченным временем действия. Без одноразового кода мошенник не сможет похитить денежные средства.
Рекомендации
Механизмы аутентификации в пользовательских интерфейсах
Для кого эта статья
Начало
Процессы аутентификации
Варианты фиксирования уникального имени пользователя (логин)
Есть несколько возможных способов проверки подлинности при предоставлении доступа к данным учётной записи в какой-либо системе. Логином могут выступать следующие пункты:
Номер телефона (+996 777 777 777)
Уникальное имя (username)
Учётная запись в стороннем сервисе (Google, Facebook, Apple… и так далее)
Варианты подтверждения логина (пароль)
SMS код (9379992SMS)
Код в электронном сообщении (9379992MAIL)
Ключи доступа / Токены (как пример ssh key)
Сканеры внешности (лицо, отпечаток пальца)
Необходимость интернет соединения при различных видах аутентификации
Не все виды аутентификации пользователя требуют интернет соединения для проверки соответствия логина и пароля пользователя. На пример: вы можете без подключения к интернету разблокировать свой телефон, компьютер, сейф с кодовым замком или открыть дверь в подъезд.
Соединение нужно для тех типов аутентификации, в которых личные данные пользователей хранятся на удалённом сервере. Это как доступ к банковской ячейке, открыть которую вы можете только придя в банк, подтвердив свою личность и в присутствии охраны.
Комбинации ввода логина и пароля
Описанные выше варианты логинов и паролей могут комбинироваться между собой для проверки подлинности пользователя. На пример:
Номер телефона
Уникальное имя
Код в Email сообщении
Механизм проверки соответствия логина и пароля
Процесс проверки соответствия логина и пароля проходит в несколько этапов.
Отправляем данные на проверку
Система получает данные, которые ввёл пользователь, ищет в своей базе данных пользователя, проверяет соответствие логина и пароля.
Система отправляет результат проверки пользователю.
Получаем результат проверки
Для всех способов аутентификации процесс проверки соответствия одинаковый.
Двухфакторная аутентификация
Упрощённая схема двух факторной аутентификации
Ошибки аутентификации
Во время проверки логина и пароля могут возникнуть ситуации, когда аутентификация не пройдена и пользователь не получил доступ к своим личным данным.
Логин введён неверно
Пароль введён неверно
Нет соединения с сервером
Ошибка проверки данных сервером
Превышен лимит ошибочных попыток аутентификации
Пользователь ввёл верно свои денные, но он не зарегистрирован
Учётная запись пользователя заблокирована администратором
Лимиты ошибочных попыток аутентификации вводятся для усиления безопасности личных данных пользователей. После превышения лимита обычно предлагается восстановить пароль, либо повторить аутентификацию позже. В системах с повышенным уровнем контроля за безопасностью данных пользователя принимаются меры блокировки учётной записи до момента подтверждения личности пользователя (на пример в банковских картах).
Процесс восстановления пароля
Подтвердить свою личность (на пример пройти по ссылке в электронном письме от сервиса восстановления пароля или ввести код из СМС)
Ввести новый пароль
Повторить ввод нового пароля
Сохранить новый пароль
После прохождения данных этапов пользователь для входа в систему может использовать свой логин и новый пароль.
В системах с повышенным контролем за безопасностью данных пользователей используется более сложный механизм подтверждения личности пользователя для смены пароля. Примером может служить приход пользователя в банк, чтобы восстановить пин-код к своей карте или личному кабинету в системе банка.
Упрощённое объяснение термина «сессия»
Cookies
Вы можете проектировать свои интерфейсы как с сохранением сессий пользователей, так и без сохранения.
Заключение
Надеюсь вам было полезно, и хоть немного интересно.







