Реферат по теме выпускной работы
При написании данного реферата магистерская работа еще не завершена. Окончательное завершение: июнь 2024 года. Полный текст работы и материалы по теме могут быть получены у автора или его руководителя после указанной даты.
Содержание
- Введение
- 1. Актуальность темы
- 2. Цель и задачи исследования, планируемые результаты
- 3. Обзор исследований и разработок
- 3.1 Обзор международных источников
- 3.2 Обзор национальных источников
- 3.3 Обзор локальных источников
- 4. Подходы к аутентификации
- 4.1 Аутентификация по паролю
- 4.2 Аутентификация на основе
запроса-ответа
- 4.3 Аутентификация по ключам доступа
- 5. Анализ особенностей современных протоколов аутентификации
- 5.1 Используемые криптографические алгоритмы
- 5.1.1 Протокол Kerberos
- 5.1.2 Протокол SAML
- 5.1.3 Протокол OpenID Connect
- 5.2 Технология единого входа SSO
- 5.3 Взаимная аутентификация клиента и сервера
- 6. Альтернативные способы аутентификации
- 6.1 Протокол SRP
- 6.2 Протокол OPAQUE
- Выводы
- Список источников
Введение
Одной из самых важных задач для любой компьютерной системы является достоверная и безопасная аутентификация её пользователей. Для решения данной задачи в протоколах аутентификации применяют особые правила передачи информации и различные криптографические алгоритмы.
Каждый пользователь современных компьютерных систем сталкивается с процедурами аутентификации неоднократно, работая в системе каждый день [1]. Не являются исключением и клиент-серверные приложения. Тем более, что сегодня клиент-серверная архитектура широко применима в различных системах и является основой интернет-сервисов и веб-приложений, социальных сетей, а также других приложений, распространяющих информацию по сети интернет
Сегодня сложно представить, что программисты при разработке клиент-серверного приложения не используют безопасные средства аутентификации пользователей на основе криптографических алгоритмов. Любое современное приложение использует средства защиты для передачи конфиденциальной информации. Для этого используются защищенные протоколы аутентификации, либо свои предложения безопасной аутентификации на базе существующих стандартов и решений.
1. Актуальность темы
В современных условиях существует достаточно методов и подходов аутентификации субъектов различных систем, в том числе клиент-серверных приложений. Но при наличии, казалось бы, отличных средств аутентификации, до сих пор актуальны вопросы несанкционированного доступа к программным системам.
Современные протоколы аутентификации всё ещё имеют уязвимости, которые могут быть использованы злоумышленниками. К примеру, существующие стандартизированные протоколы аутентификации, такие как OAuth и SAML, хорошо изучены, но они также могут быть подвержены определенным угрозам, таким как атаки типа Man-in-the-Middle
или перехват сессий [2].
Таким образом, актуальной задачей является разработка собственного протокола аутентификации, который будет соответствовать особенностям клиент-серверных систем и удовлетворять специфическим требованиям безопасности.
Кроме того, разработка собственного протокола аутентификации может обеспечить более четкий контроль над безопасностью информации. А в случае ограниченности ресурсов – протокол аутентификации, который потребляет меньше ресурсов, чем существующие протоколы, позволит оптимизировать производительность системы и сократить затраты.
2. Цель и задачи исследования, планируемые результаты
Объект исследования – протоколы аутентификации в клиент-серверных приложениях.
Предмет исследования – методы и тенденции в сфере безопасной аутентификации пользователей в клиент-серверных приложениях.
Целью исследования является изучение современных протоколов и подходов к аутентификации, их достоинств и недостатков, а также формирование требований к собственному протоколу аутентификации в клиент-серверных приложениях с учетом особенностей клиент-серверной архитектуры.
Основные задачи исследования:
- Обзор методов и подходов к аутентификации в клиент-серверных приложениях.
- Исследование угроз и уязвимостей в протоколах аутентификации.
- Выдвижение своих предложений по улучшению протокола аутентификации.
- Формирование требований и определение общей схемы работы авторского протокола.
- Реализация тестового клиент-серверного приложения с усовершенствованным протоколом аутентификации.
В результате планируется продемонстрировать работу авторского протокола аутентификации, спроектированного с учетом достоинств и недостатков существующих протоколов, в тестовом клиент серверном приложении. Усовершенствованный протокол будет отвечать требованиям безопасной аутентификации, а также сможет применяться при разработке разных клиент-серверных приложений, а не одного конкретного приложения.
3. Обзор исследований и разработок
Рассмотрим международные, национальные и локальные источники по исследуемой тематике.
3.1 Обзор международных источников
Пользователи обычно аутентифицируются по своим паролям. В статье Taekyoung Kwon и Joo-Seok Song Efficient and secure password-based authentication protocols against guessing attacks
рассмотрены протоколы аутентификации и обмена ключами, эффективные от атак с подбором пароля [3].
В статье Li Gong Efficient network authentication protocols: Lower bounds and optimal implementations
представлены минимальные требования к протоколам сетевой аутентификации по паролю [4].
В статье Roger M. Needham и Michael D. Schroeder Using encryption for authentication in large networks of computers
авторы рассматривают использование шифрования для аутентификации в больших компьютерных сетях [5]. В качестве основы протоколов исследуются как симметричные алгоритмы шифрования, так и алгоритмы шифрования с открытым ключом.
3.2 Обзор национальных источников
В статье Шапиро Л. Аутентификация и одноразовые пароли
описаны OTP-технологии, позволяющие уменьшить риски, с которыми сталкиваются компании при использовании долговременных запоминаемых паролей [6].
В статье Титова В.С. Идентификация и аутентификация. Способы и методы аутентификации
описаны достоинства и недостатки основных методов аутентификации [7].
3.3 Обзор локальных источников
В работах магистров прошлых лет не было найдено точно такой же задачи, однако были найдена работа со смежной тематикой. В реферате Грищенко О. С. Усовершенствование алгоритмов аутентификации и исследование его эффективности при использовании в распределенных системах
были проанализированы подходы к аутентификации в распределенных программных системах, где наиболее актуальным направлением были выделены системы многофакторной и биометрической аутентификации [8].
4. Подходы к аутентификации
Аутентификация (и другие услуги защиты) могут быть предложены только в контексте определенной стратегии защиты. Допустимые способы и подходы к аутентификации зависят от каждой конкретной программной системы и играют важную роль в проектировании её подсистемы безопасности. В криптографических протоколах чаще реализован именно подход, основанный на опознании пользователя по паролю.
4.1 Аутентификация по паролю
Один из самых распространённых методов аутентификации пользователей – аутентификация по паролю. При использовании парольной информации для аутентификации пользователя существуют угрозы разглашения, прослушивания и подбора пароля. Для их предотвращения используют средства, затрудняющие или замедляющие возможности перебора или угадывания пароля.
В рамках парольной аутентификации существуют варианты с фиксированным и одноразовым паролями. Аутентификация по одноразовому паролю часто применима в совокупности с фиксированным паролем для дополнительного подтверждения личности субъекта. При этом используется так называемая двухфакторная аутентификация, значительно повышающая безопасность системы.
4.2 Аутентификация на основе запроса-ответа
Помимо протоколов аутентификации на основе пароля существуют также протоколы на основе запроса-ответа
. В подобных протоколах субъект может быть аутентифицирован посредством проверки знания им некоторой секретной информации без предъявления самого секрета (см. рис. 1). Часть таких протоколов подразумевают знание секрета сервером, в то время как для некоторых протоколов в принципе нет такой необходимости. Такой подход основан на ответе пользователя на изменяемые с каждым сеансом запросы сервера.

Рисунок 1 – Схема строгой аутентификации
(анимация: 11 кадров, 7 циклов повторения, 16 килобайт)
4.3 Аутентификация по ключам доступа
Существует также возможность аутентификации пользователя по сгенерированным заранее ключам доступа. Ключи доступа генерируются сервером, как уникальный и достаточно длинный набор символов, и сохраняются в клиентских приложениях, выполняющих аутентификацию посредством полученных ключей. Данный метод весьма популярен в различных веб-сервисах.
5 Анализ особенностей современных протоколов аутентификации
На сегодняшний день аутентификация на основе пароля остается в клиент-серверных приложениях одним из самых популярных способом проверки подлинности пользователя. Однако, этот метод не является достаточно безопасным, особенно в рамках простой аутентификации пользователей.
В ходе прошлых исследований была описана необходимость использования строгой аутентификации для обеспечения безопасности при передаче пароля через незащищенные сети [9].
Протоколы строгой аутентификации можно разделить на несколько групп, в зависимости от криптографических алгоритмов, которые лежат в их основе. К этим алгоритмам относятся:
- симметричные алгоритмы шифрования;
- ассиметричные алгоритмы шифрования;
- однонаправленные ключевые хэш-функции;
- алгоритмы электронной цифровой подписи.
Ранее в работе уже был приведён обзор наиболее распространенных методов и протоколов аутентификации в клиент-серверных приложениях [10]. Среди приведенных протоколов аутентификации чаще всего можно встретить упоминание о таких протоколах строгой аутентификации, как: Kerberos, SALM и OpenID Connect (построенный поверх протокола OAuth 2.0).
5.1 Используемые криптографические алгоритмы
Рассмотрим основные криптографические алгоритмы, применяемые в протоколах аутентификации Kerberos, SAML и OpenId Connect, и проанализируем эффективность используемых протоколами технологий и способов обеспечения безопасности при обмене данными.
5.1.1 Протокол Kerberos
Kerberos версии 6 (2019 год) является последней версией протокола. Он также поддерживает разные алгоритмы шифрования и размеры ключей, в том числе те, что используются в версии 5, а также новые, такие как ChaCha20-Poly1305, Ed25519, Curve25519. Размеры ключей могут варьироваться от 128 до 512 бит.
Кроме того, Kerberos использует алгоритмы шифрования с открытым ключом: RSA для создания и проверки электронных подписей, а также для шифрования и дешифрования сессионных ключей. Кроме RSA поддерживаются различные алгоритмы цифровой подписи, такие как DSA, ECDSA и HMAC.
В Kerberos также можно использовать разные хэш-функции для разных целей. Например, с помощью алгоритмов MD4, MD5 и SHA-1 могут генерироваться ключи из паролей пользователей. Хэш-функция SHA-2 может использоваться для подписи и шифрования билетов и сообщений.
5.1.2 Протокол SAML
Протокол SAML позволяет аутентифицировать пользователей и передавать информацию о них между разными системами и приложениями с помощью одного набора учетных данных [11]. Для этого SAML использует технологию единого входа (SSO).
SAML использует XML-формат для передачи утверждений о безопасности, таких как идентификаторы, роли, атрибуты и права доступа пользователей. Для шифрования данных в SAML используются алгоритм шифрования с открытым ключом XML Encryption, который поддерживает различные ассиметричные алгоритмы, такие как RSA, ElGamal, ECDH.
В SAML также используются симметричные алгоритмы шифрования 3DES и AES для защиты двух типов данных: утверждений и сообщений.
Для создания и проверки электронных подписей SAML использует алгоритм шифрования с открытым ключом XML Signature, который поддерживает различные ассимтеричные алгоритмы, такие как RSA, DSA, ECDSA. Для подписи могут быть использованы алгоритмы SHA-1 и SHA-2, а также SHA-3.
5.1.3 Протокол OpenID Connect
В протоколе OpenID Connect можно использовать симметричные алгоритмы шифрования для защиты токенов идентификации (JSON Web Token), которые передаются между поставщиком удостоверений и клиентом. Для этих целей также используется алгоритм AES с режимом Galois/Counter Mode (GCM).
Протокол OpenID Connect использует хэш-функции SHA-256 и SHA-512 для генерации ассиметричных ключей, а также для подписи токенов идентификации с помощью таких алгоритмов, как RSA или ECDSA (Elliptic Curve Digital Signature Algorithm).
С помощью алгоритма ECDH может быть также выполнено согласование ключа шифрования содержимого, который будет использоваться для шифрования подписанного JWT.
5.2 Технология единого входа SSO
Технология единого входа SSO протоколов SAML и OpenID Connect позволяет пользователю входить в разные системы и приложения с помощью одного набора учетных данных (см. рис. 2).

Рисунок 2 – Технология единого входа SSO
В протоколе Kerberos используется первичное удостоверение пользователя для последующего получения доступа к конкретным сетевым ресурсам.
Это может быть удобно для пользователя, однако, если злоумышленник получит доступ к учетным данным пользователя или токену SSO, он сможет войти во все системы и приложения, которые поддерживают SSO, и получить доступ к конфиденциальной информации или ресурсам. К тому же, если провайдер SSO выходит из строя, пользователи не могут войти в системы.
Таким образом, в рамках разрабатываемого протокола аутентификации, использование технологии единого входа может быть нецелесообразным. Преимущества и удобства SSO могут выигрывать в отдельных случаях, однако, для большинства клиент-серверных приложений не превышают возможные риски и сложности.
5.3 Взаимная аутентификация клиента и сервера
Протокол Kerberos предлагает механизм взаимной аутентификации клиента и сервера перед установлением связи между ними. Взаимная аутентификация в Kerberos происходит с использованием доверенной третьей стороны.
Протоколы аутентификации SAML и OpenId Connect не предоставляют непосредственную взаимную аутентификации между клиентом и сервером. Однако, для этих целей протоколы SAML и OpenID Connect могут использоваться в сочетании с другими протоколами, такими как TLS.
В данном случае, для реализации взаимной аутентификации клиента и сервера обычно используются криптографические сертификаты, которые выдаются доверенными центрами сертификации (CA).
Однако, для использования этого способа необходимо иметь сложную инфраструктуру и синхронизацию ключей, а также учитывать риски, связанные с потерей, кражей или компрометацией сертификатов.
В целом, взаимная аутентификация клиента и сервера необходима в рамках разрабатываемого протокола аутентификации. В то же время, использование доверительного центра или сертификатов может быть нецелесообразным.
6 Альтернативные способы аутентификации
Если говорить о возможности аутентификации клиента и сервера без использования сертификатов или третьей доверенной стороны, то, в первую очередь, стоит сказать о протоколах обмена ключами PAKE.
Схемы соглашения о ключах с проверкой пароля PAKE (Password-Authenticated Key Exchange) позволяют участникам аутентифицировать друг друга и получить общие криптографические ключи, используя общий пароль (более слабый). Принцип работы заключается в генерации общего симметричного ключа на основе открытых данных. Популярный пример такого протокола – обмен ключами Diffie-Hellman.
На рисунке 2 представлено идеализированное представление протокола PAKE, не включающее некоторые случайные составляющие (например, соль) [12].

Рисунок 3 – Идеализированное представление протокола PAKE
В 2019 году исследовательской группой CFRG были рекомендованы к использованию в IETF такой дополнительный
вариант реализации PAKE, как OPAQUE. Кроме того, среди дополнительных
реализаций PAKE также выделяют протокол SRP.
6.1 Протокол SRP
Протокол SPR является усовершенствованием протокола Диффи-Хеллмана и самой распространенной реализацией PAKE. В этом протоколе клиент и сервер используют пароли для аутентификации друг друга и для защиты от атаки человек посередине
и атаки по словарю.
Существует несколько вариантов протокола SRP, но самым популярным, стандартизированным и, к тому же, ещё не взломанным является SRP-6 [13]. Он обеспечивает безопасную аутентификацию через небезопасный канал. Протокол использует обмен случайными числами и хэширование для проверки подлинности клиента и сервера. SRP-6 позволяет избежать передачи пароля по сети, что делает его устойчивым к перехвату.
Протокол SRP эффективно реализует доказательство с нулевым разглашением между пользователем и сервером, хранящим информацию о его пароле. Он также используется для аутентификации в SSL/TLS.
6.2 Протокол OPAQUE
Протокол OPAQUE (Oblivious PAKE) — это протокол аутентификации с паролем, который обеспечивает безопасное взаимодействие между клиентом и сервером, при этом сервер не имеет возможности узнать пароль пользователя.
Основное преимущество OPAQUE заключается в том, что сервер не хранит и не видит исходного пароля пользователя [14]. Вместо этого он работает с обфусцированными версиями пароля, что повышает безопасность. Также, как и в случае с протоколом SRP, даже если злоумышленник получит доступ к базе данных сервера, он не сможет восстановить исходные пароли.
В отличие от протокола SRP, в OPAQUE отсутствует необходимость передачи соли от сервера клиенту. На стороне клиента храниться хэш пароля, но не соль. Согласно OPAQUE, сервер хранит исходную соль, а клиент – другую соль, вычисленную на основе исходной соли и пароля. Для вычисления ещё одной соли используется так называемый забывчивый PRF (семейство псевдослучайных функций).
Выводы
В целом, наиболее простой и эффективный способ проверки подлинности пользователей – аутентификация посредством пароля. Однако, в данном случае, необходимо создавать сложные и уникальные пароли, ставить требования сложности для повышения уровня безопасности.
При разработке собственного протокола аутентификации необходимо использовать криптографические методы и механизмы шифрования. К тому же, современный протокол аутентификации может дополнительно включать в себя проверку идентификационных данных через использование различных верификационных технологий.
В дальнейшем необходимо определить общую схему работы собственного протокола аутентификации в клиент-серверных приложениях, которая, в свою очередь, может быть основана на схеме соглашения о ключах с проверкой пароля.
Список источников
- Афанасьев, А. А. Аутентификация. Теория и практика обеспечения безопасного доступа к информационным ресурсам. Учебное пособие / А. А. Афанасьев, Л. Т. Веденьев, А. А. Воронцов. – Москва: Горячая линия - Телеком, 2012. – 550 с. – Режим доступа: [Ссылка]
- Что такое атака Man-in-the-Middle [Электронный ресурс] – Режим доступа: [Ссылка]
- Taekyoung Kwon, Jooseok Song. Efficient and secure password-based authentication protocols against guessing attacks. Computer Communications, Volume 21, Issue 9, 1998, pp 853-861 – Режим доступа: [Ссылка]
- Gong, L. Efficient network authentication protocols: Lower bounds and optimal implementations. Distrib Comput 9, pp 131–145 (1995) – Режим доступа: [Ссылка]
- Roger M. Needha, Michael D. Schroeder. Using encryption for authentication in large networks of computers. Communications of the ACM, Volume 21, Issue 12, Dec. 1978, pp 993–999 – Режим доступа: [Ссылка]
- Шапиро, Л. Аутентификация и одноразовые пароли. Теоретические основы. Часть 1 / Л. Шапиро // Системный администратор. – 2012. – № 9(118). – С. 88-91 – Режим доступа: [Ссылка]
- Титов, В. С. Идентификация и аутентификация. Способы и методы аутентификации / В. С. Титов // Международная научно-техническая конференция молодых ученых БГТУ им. В.Г. Шухова, Белгород, 01–20 мая 2017 года. – Белгород: Белгородский государственный технологический университет им. В.Г. Шухова, 2017. – С. 4514-4519. – Режим доступа: [Ссылка]
- Грищенко О. С., Усовершенствование алгоритмов аутентификации и исследование его эффективности при использовании в распределенных системах, Донецкий национальный технический университет, 2018 – Режим доступа: [Ссылка]
- Чернышова А.В., Афанасьева А.А. Методы безопасной аутентификации в клиент-серверных приложениях // Программная инженерия: методы и технологии разработки информационно вычислительных систем (ПИИВС2022): Сборник материалов IV Международной научно-практической конференции, г. Донецк, 29-30 ноября 2022 г. – Донецк: Донецкий национальный технический университет, 2022 – С. 74-80. – Режим доступа: [Ссылка]
- Афанасьева А.А., Чернышова А.В. Формирование требований к протоколу аутентификации // Интеллектуальные системы и программирование (ИУСМКМ-2023): Сборник материалов XIV Международной научно-технической конференции, г. Донецк, 24-25 мая 2023 г. – Донецк: Донецкий национальный технический университет, 2022 – С. 62-66.– Режим доступа: [Ссылка]
- Security Assertion Markup Language (SAML) [Электронный ресурс] – Режим доступа: [Ссылка]
- PAKE [Электронный ресурс] – Режим доступа: [Ссылка]
- The SRP Authentication and Key Exchange System [Электронный ресурс] – Режим доступа: [Ссылка]
- OPAQUE: An Asymmetric PAKE Protocol Secure Against Pre-Computation Attacks [Электронный ресурс] – Режим доступа: [Ссылка]