Авторы: Афанасьева А.А., Чернышова А.В.
Источник: Интеллектуальные системы и программирование (ИУСМКМ-2023): Сборник материалов XIV Международной научно-технической конференции, г. Донецк, 24-25 мая 2023 г. – Донецк: Донецкий национальный технический университет, 2022 – С. 62-66.
Афанасьева А.А., Чернышова А.В. Формирование требований к протоколу аутентификации. Рассмотрены современные тенденции в области аутентификации. Определены достоинства, недостатки, способы шифрования в протоколах аутентификации. Предложены рекомендации и требования к собственному протоколу аутентификации.
В современных условиях существует достаточно методов и подходов аутентификации субъектов различных систем. Но при наличии, казалось бы, отличных средств аутентификации, до сих пор актуальны вопросы несанкционированного доступа к программным системам.
Современные протоколы аутентификации всё ещё имеют уязвимости, которые могут быть использованы злоумышленниками. К примеру, существующие стандартизированные протоколы аутентификации, такие как OAuth и SAML, хорошо изучены, но они также могут быть подвержены определенным угрозам, таким как атаки типа "Man-in-the-Middle" или перехват сессий.
Таким образом, актуальной задачей является разработка собственного протокола аутентификации, который будет соответствовать особенностям конкретной среды выполнения или удовлетворять специфическим требованиям безопасности. Это может включать в себя учет физических параметров пользователя или наличие множества факторов аутентификации, таких как биометрические идентификаторы и одноразовые пароли.
Кроме того, разработка собственного протокола аутентификации может обеспечить более четкий контроль над безопасностью информации. А в случае ограниченности ресурсов – протокол аутентификации, который потребляет меньше ресурсов, чем существующие протоколы, позволит оптимизировать производительность системы и сократить затраты.
Чтобы создать безопасный и надежный протокол аутентификации необходимо учитывать последние тенденции в сфере криптографии и информационных технологий. Для формирования требований к собственному протоколу аутентификации рассмотрим современные тенденции в области аутентификации, а также актуальные на сегодня протоколы аутентификации, с точки зрения их безопасности.
Современные тенденции в области аутентификации направлены на улучшение безопасности и удобства для пользователей. Одной из подобных тенденций является многофакторная аутентификация (MFA) – комбинация двух или более методов аутентификации. MFA повышает уровень безопасности, так как злоумышленнику необходимо обойти несколько методов аутентификации, а не только один.
В последнее время набирает популярность биометрическая аутентификация – метод аутентификации, который использует уникальные физические характеристики пользователя, такие как отпечаток пальца или сканирование лица. Биометрическая аутентификация не требует запоминания паролей, но может быть менее безопасна, если злоумышленник получит доступ к устройству, на котором хранятся биометрические данные.
Имеет место быть и аутентификация с помощью электронных ключей (USB-ключи) – это физические устройства, которые можно использовать для аутентификации пользователя. Ключи могут содержать уникальные идентификаторы или сертификаты, которые подтверждают личность пользователя. Пользователи могут использовать USB-ключи на нескольких устройствах. Однако, существует опасность потери ил кражи такого ключа.
Аутентификация на основе открытых стандартов, таких как OAuth и OpenID Connect, предоставляет возможность использовать один и тот же логин и пароль для нескольких сервисов. Данный метод может быть менее безопасным, если злоумышленник получит доступ к учетной записи на одном из сервисов.
Все эти механизмы аутентификации служат для защиты данных пользователей, их целостности и конфиденциальности. Для передачи аутентификационных данных и контроля доступа клиентов к ресурсам системы используют протокол аутентификации.
Логин-пароль (Password-Based Authentication, PBA) – наиболее распространенный протокол аутентификации, который требует от пользователя ввода логина и пароля для проверки правильности введенных данных. К его достоинствам относятся:
При всем удобстве использования парольной аутентификации можно выделить некоторые её недостатки:
Протокол OAuth [1] используется для авторизации приложений для доступа к ресурсам и данным пользователя в других приложениях. Основные достоинства протокола:
Недостатки протокола:
Ещё один протокол с открытым исходным кодом – SAML (Security Assertion Markup Language). Пользователи могут использовать SAML для безопасной аутентификации на нескольких сайтах и приложениях. Достоинства данного протокола:
Среди недостатков протокола SAML можно выделить:
Широко распространён и протокол аутентификации Kerberos, который используется в сетях Windows для обеспечения безопасности приложений и сервисов. Он предоставляет электронные билеты, которые пользователи могут использовать для доступа к сервисам. Среди его достоинств можно выделить:
Недостатки протокола:
LDAP (Lightweight Directory Access Protocol) – протокол использования каталога для хранения пользовательских данных и аутентификации в клиент-серверных приложениях [2]. Среди его достоинств выделяют легкую масштабируемость, использование шифрования данных, а также обеспечение централизованного доступа к списку пользователей и управление их учетными записями. Однако, данный протокол может быть ограничен в работе с определенными системами, нуждается в настройке, а также не может предоставлять аутентификацию, если не работают один или несколько серверов.
Перечисленные протоколы являются популярными и широко используются при разработке, к примеру, клиент-серверных приложений. Однако, с учетом требований к безопасности, необходимо также учитывать возможности криптографической защиты данных при их использовании в протоколе аутентификации.
Шифрование – это процесс обеспечения конфиденциальности передаваемых данных, а также защита от несанкционированного доступа к ним. Шифрование данных, передаваемых в протоколах аутентификации, является одним из важнейших вопросов информационной безопасности. Рассмотрим, каким образом оно используется в каждом из протоколов.
В LDAP обычно используется протокол SSL/TLS для шифрования передаваемых данных. SSL (Secure Sockets Layer) и TLS (Transport Layer Security) – это протоколы, которые обеспечивают безопасное соединение с веб-сервером с защитой от прослушивания. SSL/TLS использует симметричное шифрование для защиты передаваемых данных. Ключ для шифрования генерируется на стороне сервера и передается клиенту в зашифрованном виде.
В протоколе OAuth используются токены, полученные от авторизационного сервера, для защиты передаваемых данных и для доступа к защищенным ресурсам. Шифрование коммуникации между сервером авторизации и клиентским приложением также обеспечивает SSL/TLS-подключение.
SAML использует протокол XML Signature для обеспечения контроля целостности данных и протокол XML Encryption для шифрования SAML-токенов и обеспечения конфиденциальности данных, передаваемых между поставщиком идентификации и сервисом, обращающимся к ресурсам.
Протокол Kerberos использует симметричное шифрование для защиты передаваемых данных и контроль целостности сообщений. Ключ для шифрования генерируется на стороне сервера и передается клиенту в зашифрованном виде.
В целом, все перечисленные методы шифрования обеспечивают защиту конфиденциальности данных пользователей и безопасность. При выборе метода шифрования для конкретного протокола аутентификации, важно учитывать возможности протокола. требования безопасности со стороны клиента и сервера, а также обеспечивать соответствие требованиям стандартам безопасности.
В целом при формировании требований к протоколу аутентификации необходимо учитывать различные факторы, такие как: безопасность, скорость, пользовательский опыт, совместимость, защита передаваемых данных.
Необходимо учитывать то, какие угрозы могут возникнуть в системе и какие меры безопасности должны быть приняты для защиты системы от этих угроз. Например, система может требовать двухфакторную аутентификацию для защиты от взлома паролей.
К тому же, стоит понимать, какие меры должны быть приняты для отслеживания действий пользователей в системе. Система может, например, требовать ведения журнала аутентификации для отслеживания неудачных попыток входа в систему.
Конечно, пользователи не должны испытывать неудобства при использовании протокола. Хороший протокол не должен требовать излишней сложности при аутентификации. Однако, протокол должен обеспечивать контроль доступа и быть достаточно сложным и устойчивым к взлому. Это гарантирует, что злоумышленники не смогут получить доступ к конфиденциальной информации пользователей.
Протокол аутентификации должен быть надежным и безопасным. Это гарантирует, что данные пользователей не будут изменены или уничтожены злоумышленниками. Необходимо определить меры для защиты данных, хранящихся на сервере: хранение паролей в зашифрованном виде, использование криптографических методов при передаче данных пользователя.
В то же время, протокол должен быть достаточно быстрым и эффективным, что позволит пользователям получать доступ к системе быстро и комфортно. Также, протокол должен быть расширяемым, что в перспективе и при необходимости позволит добавлять в него новые функции и опции.
В целом, наиболее простой и эффективный способ проверки подлинности пользователей – аутентификация посредством пароля. Однако, в данном случае, необходимо создавать сложные и уникальные пароли, ставить требования сложности для повышения уровня безопасности.
При разработке собственного протокола необходимо также использовать криптографические методы и механизмы шифрования для защиты и хранения паролей и другой конфиденциальной информации.
Современный протокол аутентификации может дополнительно включать в себя проверку идентификационных данных через использование различных верификационных технологий, таких как отпечатки пальцев, распознавание лица и т.д.
Стоит также рассматривать вариант использования двухфакторной аутентификации, которая включает два разных способа проверки подлинности пользователя. Например, пароль и SMS-код.
К тому же, возможно использование дополнительной аутентификации на серверной стороне, например, проверка IP-адреса и использование временных маркеров для подтверждения идентификации пользователя.
В дальнейшем требования к разработке собственного протокола аутентификации будут расширены. Для этого необходимо сначала сформировать требования к общей схеме работы протокола, типу сообщений, передаваемых при аутентификации между взаимодействующими сторонами, криптографическим алгоритмам, размеру ключей алгоритмов шифрования, которые будут использоваться протоколом аутентификации.
Наиболее важная задача после анализа требований к протоколу аутентификации - продумать механизм использования протокола аутентификации при разработке разных приложений, а не одного конкретного приложения. Конечно, при наличии большого количества известных решений, рассмотренных в этой статье и ранее, в работе [3], задача проектирования собственного протокола не является простой, но при надлежащем анализе существующих решений, можно будет предложить собственное решение для безопасной аутентификации на уровне приложений.
1. The OAuth 2.0 Authorization Framework [Electronic resourse] / Интернет-ресурс. – Режим доступа: [Ссылка]
2. Lightweight Directory Access Protocol [Electronic resourse] / Интернет-ресурс. – Режим доступа: [Ссылка]
3. Чернышова А.В., Афанасьева А.А. Методы безопасной аутентификации в клиент-серверных приложениях // Программная инженерия: методы и технологии разработки информационно вычислительных систем (ПИИВС2022): Сборник материалов IV Международной научно-практической конференции, г. Донецк, 29-30 ноября 2022 г. – Донецк: Донецкий национальный технический университет, 2022 – С. 74-80.