Тип работы:
Предмет:
Язык работы:


МОДИФИКАЦИЯ СЕРВИСА ДЛЯ РАБОТЫ С ОДНОРАЗОВЫМИ ПАРОЛЯМИ С ЦЕЛЬЮ РЕАЛИЗАЦИИ МЕХАНИЗМОВ ЗАЩИТЫ ОТ МОШЕННИЧЕСТВА

Работа №184649

Тип работы

Бакалаврская работа

Предмет

программирование

Объем работы57
Год сдачи2023
Стоимость4600 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
21
Не подходит работа?

Узнай цену на написание


АННОТАЦИЯ 3Перечень условных обозначений, символов, сокращений, терминов 4
Введение 5
1 Анализ первой итерации разработки 7
1.1 Модель предметной области 8
1.2 Основные функции 9
1.2.1 Проверка одноразового пароля 9
1.2.2 Генерация и отправка одноразового пароля пользователю 10
1.2.3 Генерация OTP nonce 11
2 Анализ требований ко второй итерации разработки 13
2.1 Анализ введения черного списка номеров телефонов 15
2.2 Анализ белого списка стран 17
2.3 Анализ правил, по которым принимается решение о блокировки запроса на
отправку OTP 17
2.4 Geolocation-service 18
2.5 Модель предметной области 20
2.6 Механизмы защиты в сценарии по отправке OTP 22
3 Используемые технологии для разработки 24
3.1 Язык программирования 24
3.2 Spring Framework 24
3.3 Система автоматической сборки Gradle 25
3.4 Project Lombok 26
3.5 SLF4J 28
3.6 PostgreSQL 28
3.7 Helm-chart 29
4 Проектирование и разработка 30
4.1 Используемые паттерны 32
4.1.1 Паттерн «Circuit Breaker» (Автоматический выключатель) 32
4.1.2 Паттерн «Реестр» 33
4.1.3 Паттерн «Builder» (Строитель) 33
4.2 Структура сервиса 34
4.3 Диаграмма классов 36
4.4 Отправка OTP 37
4.4.1 Сценарий отправки OTP до его генерации 37
4.4.1.1 Проверка подлинности запроса 39
4.4.1.2 Проверка на принадлежность к черному списку номеров 39
4.4.1.3 Проверка на превышение лимитов 40
4.4.1.4 Проверка запроса на удовлетворения правилам предотвращения
мошенничества 41
4.4.2 Отправка OTP после его генерации 42
4.5 Написание тестов 43
4.5.1 Модульное тестирование 43
4.5.1.1 Т есты для слоя «api» 44
4.5.1.2 Тесты для классов-сервисов слоя «core» 45
4.5.1.3 Тесты для пакета «repository» 46
4.5.2 Интеграционное тестирование 47
4.6 Доработка helm-chart 48
5 Результаты за две итерации 49
6 Заключение 52
Литература 54


В отрасли предоставляющей финансовые технологии важно иметь представления о личности пользователя, для проведения разного рода операций. К примеру, отправка денежного перевода, создание денежного счета, вход в свой аккаунт, где хранится информация о картах, история переводов и другие чувствительные данные. Один из механизмов подтверждения своей личности и действий является отправка одноразового пароля пользователю, который должен подтвердить, что действия совершаются им самим по средством ввода отправленного ему кода в приложении. Для решения данной задачи использовался компонент, отвечающий за работу с одноразовыми паролями, интегрированный в сервис по работе с данными пользователя. Его функция заключалась в отправке одноразового пароля пользователю и проверке самого пароля. Со временем стало понятно, что данный компонент требуется вынести в отдельный сервис по причине того, что основная семантика компонента не соответствует задачам сервиса, в котором он располагается. Также модификация и разработка новых решений связанных с OTP стала тратить слишком много времени и увеличивала нагрузку на сервис из-за большого количества запросов на отправку и проверку одноразового пароля. По этим причинам в конце 2021 года было решено вынести компонент в отдельный сервис и назвать его «OTP сервис». С этого момента начался первый этап разработки сервиса. При переносе было решено видоизменить используемый стек технологий, а также обновить зависимости и провести рефакторинг кода. Такой подход помог увеличить отказоустойчивость системы, так как снизил нагрузку на сервис по работе с данными пользователя, а также появилась возможность независимо развертывать несколько копий «OTP сервиса». Копии можно было более гибко конфигурировать, повышая отказоустойчивость, ведь без этого сервиса невозможно было бы проводить большинство операций, где требуется подтверждение личности пользователя. По этой причине важно, чтобы сервис всегда был устойчив и находился в работе.
С февраля 2022 года кратно увеличилась нагрузка на сервис из -за сторонних атак и активизации мошеннических действий. Используемых технологий для противодействия мошенничеству стало не хватать. По этим причинам было решено начать вторую итерацию по работе с OTP сервисом и на его стороне реализовать механизмы противодействия мошенничества с использованием одноразовых паролей. Поэтому одной из главных целей работы и является внедрение механизмов противодействия мошенничеству. Для реализации защиты от мошенничества требовалось использование некоторых компонентов, разработанных внутри компании, которые отвечали бы за получение вспомогательной информации. Но также было важно сделать работу сервиса более устойчивой и безопасной.
Исходя из этих целей был сформулирован перечень задач:
1. Провести анализ требований
2. Провести анализ сервиса и внешних компонентов, которые понадобятся для реализации механизмов защиты от мошенничества
3. Реализовать механизмы защиты от мошенничества
4. Доработать и реализовать новые модульные и интеграционные тесты с
учетом реализованных механизмов защиты
5. Поддержать изменения для развертывания сервиса
Решению поставленных задач посвящена данная выпускная квалификационная работа.


Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


В результате проделанной работы в рамках выпускной квалификационной работы все поставленные цели и задачи были достигнуты, а именно:
• Проведен анализ требований, выполняемых в рамках второй итерации по разработке механизмов защиты от мошенничества
• Проведен анализ сервиса и внешних компонентов, которые понадобятся для реализации механизмов защиты от мошенничества
• Реализованы механизмы защиты от мошенничества
• Доработаны и реализованы новые модульные и интеграционные тесты с учетом реализованных механизмов защиты
• Поддержаны изменения для развертывания сервиса в разных окружающих средах
Сервис развернут на тестовом окружении и на production. В результате нагрузка на сервис была снижена, снизилось количество отправок пустых OTP.
Рисунок 30 показывает нагрузку на сервис на тестовом окружении. Рисунок 31 показывает общее количество написанных и доработанных модульных тестов. Рисунок 32 показывает общее количество написанных и доработанных интеграционных тестов.



~ System
Load Average
Л 1
1
к .A f ЛА д
J | 1



1. What is an API (application programming interface)? // IBM - [Б.м.]., 2021. - URL: https://www.ibm.com/topics/api (дата обращения: 20.12.2022)
2. Annotations - [Б.м.]., 2013. - URL:
https://docs.oracle.com/javase/tutorial/java/annotations/index.html (дата
обращения: 16.01.2023)
3. Официальный сайт HAProxy - [Б.м.]., 2009. - URL: http://www.haproxy.org/ (дата обращения: 19.02.2023)
4. Introduction to the Spring Framework // Spring Framework Reference
Documentation - [Б. м.]., 2016. - URL:
https://docs.spring.io/springframework/docs/4.3.x/spring-framework- reference/html/overview.html (дата обращения: 24.10.2022)
5. The art of long-term support and what LTS means for the Java ecosystem - [Б.м.].,2021. - URL: https://blogs.oracle.com/javamagazine/post/java-long-term- support-lts (дата обращения: 16.01.2023)
6. Официальный сайт Simple Logging Facade for Java (SLF4J) - [Б.м.]., 2005. - URL: https://www.slf4j.org/ (дата обращения: 24.10.2022)
7. JSON Web Token (JWT) Profile for OAuth 2.0 Client Authentication and
Authorization Grants - [Б.м.]., 2015. - URL:
https://datatracker.ietf.org/doc/html/rfc7523 (дата обращения: 17.01.2023)
8. Country Codes: список международных телефонных кодов - [Б.м.]., 1999. - URL: https://countrycode.org/ (дата обращения: 26.03.2023)



Работу высылаем на протяжении 30 минут после оплаты.




©2025 Cервис помощи студентам в выполнении работ