УДК 004.056
Аннотация:
Афанасьева А.А., Чернышова А.В. Формирование требований к протоколу аутентификации. Рассмотрены современные тенденции в области аутентификации. Определены достоинства, недостатки, способы шифрования в протоколах аутентификации. Предложены рекомендации и требования к собственному протоколу аутентификации.
Annotation:
Afanaseva A.A., Chernyshova A.V. Formation of requirements for the authentication protocol. Modern tendencies in the field of authentication are considered. Advantages, disadvantages, encryption methods in authentication protocols are defined. Recommendations and requirements for a proprietary authentication protocol are proposed
В современных условиях существует достаточно методов и подходов аутентификации субъектов различных систем. Но при наличии, казалось бы, отличных средств аутентификации, до сих пор актуальны вопросы несанкционированного доступа к программным системам.
Современные протоколы аутентификации всё ещё имеют уязвимости, которые могут быть использованы злоумышленниками. К примеру, существующие стандартизированные протоколы аутентификации, такие как OAuth и SAML, хорошо изучены, но они также могут быть подвержены определенным угрозам, таким как атаки типа "Man-in-the-Middle" или перехват сессий.
Таким образом, актуальной задачей является разработка собственного протокола аутентификации, который будет соответствовать особенностям конкретной среды выполнения или удовлетворять специфическим требованиям безопасности. Это может включать в себя учет физических параметров пользователя или наличие множества факторов аутентификации, таких как биометрические идентификаторы и одноразовые пароли.
Кроме того, разработка собственного протокола аутентификации может обеспечить более четкий контроль над безопасностью информации. А в случае ограниченности ресурсов – протокол аутентификации, который потребляет меньше ресурсов, чем существующие протоколы, позволит оптимизировать производительность системы и сократить затраты.
Чтобы создать безопасный и надежный протокол аутентификации необходимо учитывать последние тенденции в сфере криптографии и информационных технологий. Для формирования требований к собственному протоколу аутентификации рассмотрим современные тенденции в области аутентификации, а также актуальные на сегодня протоколы аутентификации, с точки зрения их безопасности.
Современные тенденции в области аутентификации направлены на улучшение безопасности и удобства для пользователей. Одной из подобных тенденций является многофакторная аутентификация (MFA) – комбинация двух или более методов аутентификации. MFA повышает уровень безопасности, так как злоумышленнику необходимо обойти несколько методов аутентификации, а не только один.
В последнее время набирает популярность биометрическая аутентификация – метод аутентификации, который использует уникальные физические характеристики пользователя, такие как отпечаток пальца или сканирование лица. Биометрическая аутентификация не требует запоминания паролей, но может быть менее безопасна, если злоумышленник получит доступ к устройству, на котором хранятся биометрические данные.
Имеет место быть и аутентификация с помощью электронных ключей (USB-ключи) – это физические устройства, которые можно использовать для аутентификации пользователя. Ключи могут содержать уникальные идентификаторы или сертификаты, которые подтверждают личность пользователя. Пользователи могут использовать USB-ключи на нескольких устройствах. Однако, существует опасность потери ил кражи такого ключа.
Аутентификация на основе открытых стандартов, таких как OAuth и OpenID Connect, предоставляет возможность использовать один и тот же логин и пароль для нескольких сервисов. Данный метод может быть менее безопасным, если злоумышленник получит доступ к учетной записи на одном из сервисов.
Все эти механизмы аутентификации служат для защиты данных пользователей, их целостности и конфиденциальности. Для передачи аутентификационных данных и контроля доступа клиентов к ресурсам системы используют протокол аутентификации.
Важными аспектами в протоколах аутентификации являются их защита от атак различного уровня сложности, устойчивость к взлому и обновление для обеспечения безопасности в долгосрочной перспективе. На практике существует несколько популярных протоколов аутентификации. Проанализируем их достоинства и недостатки.
Логин-пароль (Password-Based Authentication, PBA) – наиболее распространенный протокол аутентификации, который требует от пользователя ввода логина и пароля для проверки правильности введенных данных. К его достоинствам относятся:
- гибкость и простота использования: пользователи могут выбирать сложность своих паролей, и система может настраиваться на различные требования сложности пароля;
- отсутствие необходимости использования дополнительного оборудования;
- распространённость и широкое использование во всех видах систем;
-контроль пользователей: в системе аутентификации на основе пароля пользователь может иметь более высокий уровень контроля над своими данными и доступом, чем в других методах аутентификации.
При всем удобстве использования парольной аутентификации можно выделить некоторые её недостатки:
- необходимость использования сложных и уникальных паролей: легко угадываемые пароли могут быть взломаны с помощью атаки "перебора паролей";
- потенциальная утечка незащищенных криптографическими методами паролей: если пароли перехватят злоумышленники, они могут быть использованы для несанкционированного доступа к данным;
- в некоторых системах, требующих высокого уровня безопасности, метод может быть недостаточно безопасным; легкость утери пароля и необходимость механизма его восстановления.
Протокол OAuth [1] используется для авторизации приложений для доступа к ресурсам и данным пользователя в других приложениях. Основные достоинства протокола:
- пользовательские данные защищены и не передаются третьим лицам;
- удобство использования: пользователям не нужно предоставлять свои учетные данные для доступа к своим данным в других приложениях;
- автоматическое продление токенов, что удлиняет жизнь сессии и не требует повторной аутентификации;
- гибкость и легкость настройки для использования на различных платформах и приложениях.
Недостатки протокола:
- протокол может быть уязвим к атакам межсайтового скриптинга и подделки запросов, а Man-in-the-Middle атакам (версии OAuth 1.0a и 2.0);
- пользователи не всегда могут контролировать доступ приложений к их данным;
- сложность внедрения, ограниченная поддержка и возможность проблем с совместимостью с некоторыми приложениями и платформами;
- потенциальная утечка данных и токенов доступа.
Ещё один протокол с открытым исходным кодом – SAML (Security Assertion Markup Language). Пользователи могут использовать SAML для безопасной аутентификации на нескольких сайтах и приложениях. Достоинства данного протокола:
- обеспечивает высокий уровень безопасности, используя шифрование данных;
- позволяет пользователям работать со множеством различных веб-сайтов и приложений, используя одну и ту же учетную запись;
- прост в использовании, для пользователя не требуется особых знаний и навыков;
- автоматический выход пользователя из всех приложений и систем после того, как он вышел из одного из них; различные типы аутентификации: пароль, биометрические данные, токены.
Среди недостатков протокола 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] / Интернет-ресурс. – Режим доступа: datatracker / URL: https://datatracker.ietf.org/doc/html/rfc6749. – Загл. с экрана.
2. Lightweight Directory Access Protocol [Electronic resourse] / Интернет-ресурс. – Режим доступа: datatracker / URL: https://datatracker.ietf.org/doc/html/rfc4513. – Загл. с экрана.
3. Чернышова, А.В., Афанасьева, А.А. Методы безопасной аутентификации в клиентсерверных приложениях // Программная инженерия: методы и технологии разработки информационно вычислительных систем (ПИИВС2022): Сборник материалов IV Международной научно-практической конференции, г. Донецк, 29-30 ноября 2022 г. – Донецк: Донецкий национальный технический университет, 2022. – С. 74-80.