Добавлены книги

This commit is contained in:
2026-05-30 18:17:04 +03:00
parent 229c0629f8
commit 7bb62d0152
6 changed files with 69 additions and 13 deletions

View File

@@ -104,7 +104,7 @@ Google Files Secure Folder локально прячет и защищает ф
== Стек технологий
Для реализации выбраны Kotlin, Android SDK, Jetpack Compose, Coroutines/Flow, Hilt, Room, AES на клиенте; модульная структура: `:app`, `:domain`, `:usecases`, `:ui`, `:domain-vault`, `:infrastructure-android`, `:vault-contracts`, `:task-runtime` @kotlin-docs @compose-docs @room-docs @hilt-docs @android-arch.
Для реализации выбраны Kotlin, Android SDK, Jetpack Compose, Coroutines/Flow, Hilt, Room, AES на клиенте; модульная структура: `:app`, `:domain`, `:usecases`, `:ui`, `:domain-vault`, `:infrastructure-android`, `:vault-contracts`, `:task-runtime` @kotlin-docs @smith-jetpack-compose @room-docs @hilt-docs @android-arch.
*Kotlin* обеспечивает выразительную доменную модель и безопасность типов. *Jetpack Compose* декларативно описывает UI и состояние экранов vault. *Coroutines/Flow* используются для асинхронного шифрования, обращения к DAO и отображения прогресса без блокировки главного потока. *Hilt* связывает реализации интерфейсов domain с Android-инфраструктурой. *Room* персистентно хранит метаданные. Криптографические операции выполняются в доменном слое с опорой на стандартные API Java/Android и рекомендации NIST по AES @nist-aes.
@@ -114,7 +114,7 @@ Google Files Secure Folder локально прячет и защищает ф
=== Клиентское шифрование и модель zero-knowledge
Данные шифруются до отправки во внешнее хранилище; провайдер не получает ключ расшифрования. Используется AES @nist-aes; проверка ключа выполняется через `Encryptor.checkKey` без расшифровки всего содержимого.
Данные шифруются до отправки во внешнее хранилище; провайдер не получает ключ расшифрования. Модель угроз мобильной платформы и практики защиты приложений рассмотрены в @zobnin-android-security. Используется AES @nist-aes @losev-crypto; проверка ключа выполняется через `Encryptor.checkKey` без расшифровки всего содержимого.
=== Авторизация и взаимодействие с внешними провайдерами без собственного сервера

View File

@@ -62,7 +62,7 @@ DFD уровня 0 (рис. @fig-16) отражает потоки между UI
#pz-fig("fig_18_deployment.png", [Диаграмма развёртывания], "fig-18")
Архитектурные слои MVVM + Clean Architecture и соответствие модулям Gradle на рисунке @fig-19.
Архитектурные слои MVVM + Clean Architecture @martin-clean-architecture и соответствие модулям Gradle на рисунке @fig-19.
#pz-fig("fig_19_clean_architecture.png", [Слои Clean Architecture и модули проекта], "fig-19")

View File

@@ -54,7 +54,7 @@ CJM сценария «защитить и открыть storage» предст
== Проработка прототипа и особенности дизайна
Интерфейс реализован на Jetpack Compose @compose-docs. Экраны локальных и удалённых vault, диалоги шифрования, OAuth, а также разделы текстовых секретов и 2FA внутри storage показаны на рис. @fig-05@fig-10 и @fig-33@fig-34 (подробно приложение В и руководство пользователя в приложении Б).
Интерфейс реализован на Jetpack Compose @smith-jetpack-compose @compose-docs. Экраны локальных и удалённых vault, диалоги шифрования, OAuth, а также разделы текстовых секретов и 2FA внутри storage показаны на рис. @fig-05@fig-10 и @fig-33@fig-34 (подробно приложение В и руководство пользователя в приложении Б).
#pz-fig("fig_05_local_vaults.jpg", [Список storage в локальном vault (экран «локальные vault»)], "fig-05")
#pz-fig("fig_06_encrypt_dialog.jpg", [Диалог включения шифрования], "fig-06")

View File

@@ -92,7 +92,7 @@ private fun findSourceStorage(..., winnerEntry: StorageSyncJournalEntry): IStora
=== Использование средств ИИ при разработке
Разработка Wallenc велась в два этапа. На первом этапе исполнитель самостоятельно спроектировал доменную модель (иерархия vault storage файлы, единый `VaultsManager`), навигацию между экранами, визуальный стиль UI на Jetpack Compose, границы Gradle-модулей и каркас use case-слоя. Криптографический контур (`Encryptor`, привязка ключей к storage), журнал синхронизации и сценарии OAuth проектировались и проверялись вручную. При проектировании модуля `:domain` была составлена диаграмма классов (рис. @fig-24), фиксирующая первоначальные интерфейсы и связи сущностей до этапа разработки с ИИ-ассистентом.
Разработка Wallenc велась в два этапа. На первом этапе исполнитель самостоятельно спроектировал доменную модель (иерархия vault storage файлы, единый `VaultsManager`), навигацию между экранами, визуальный стиль UI на Jetpack Compose @smith-jetpack-compose, границы Gradle-модулей и принципы сопровождаемого кода @martin-clean-code и каркас use case-слоя. Криптографический контур (`Encryptor`, привязка ключей к storage), журнал синхронизации и сценарии OAuth проектировались и проверялись вручную. При проектировании модуля `:domain` была составлена диаграмма классов (рис. @fig-24), фиксирующая первоначальные интерфейсы и связи сущностей до этапа разработки с ИИ-ассистентом.
#pz-fig("fig_24_domain_class_manual.png", [Диаграмма классов модуля domain (самостоятельное проектирование)], "fig-24")

View File

@@ -1,6 +1,6 @@
#heading(numbering: none, outlined: true)[Введение]
Современные пользователи хранят личные и рабочие данные в облачных сервисах и на съёмных носителях, однако инфраструктура провайдера не всегда может считаться доверенной. Утечки, компрометация учётных записей и юрисдикционные риски делают актуальным подход, при котором конфиденциальность обеспечивается на стороне клиента до размещения данных во внешнем хранилище @nist-aes @clean-arch.
Современные пользователи хранят личные и рабочие данные в облачных сервисах и на съёмных носителях, однако инфраструктура провайдера не всегда может считаться доверенной. Утечки, компрометация учётных записей и юрисдикционные риски делают актуальным подход, при котором конфиденциальность обеспечивается на стороне клиента до размещения данных во внешнем хранилище @nist-aes @martin-clean-architecture.
*Актуальность* темы обусловлена распространением мобильных приложений для хранения файлов и секретов, а также ограниченностью готовых решений: многие продукты привязаны к собственному backend, закрытой экосистеме или узкой предметной области @google-secure-folder @bitwarden-help @cryptomator-docs.
@@ -14,7 +14,7 @@
*Объект исследования* методы и средства клиентской защиты данных в мобильных приложениях. *Предмет исследования* проектные и программные решения приложения Wallenc.
*Методы исследования*: анализ нормативной и технической документации, сравнительный анализ программных аналогов, объектно-ориентированное проектирование (UML, BPMN, DFD), прототипирование пользовательского интерфейса, программная реализация и тестирование @gost7322017 @kotlin-docs.
*Методы исследования*: анализ нормативной и технической документации, сравнительный анализ программных аналогов, объектно-ориентированное проектирование (UML, BPMN, DFD), прототипирование пользовательского интерфейса, программная реализация и тестирование @gost7322017 @martin-clean-code @kotlin-docs.
*Практическая база.* Работа выполнена в рамках производственной практики в ООО НМФ «Нейротех» (09.02.202606.05.2026) по направлению 09.03.04 «Программная инженерия» на кафедре математического обеспечения и применения ЭВМ (МОП ЭВМ). Научный руководитель Беликов А. Н. (кафедра системного анализа и телекоммуникаций, САИТ); руководитель от организации Алексеев Д. М.

View File

@@ -1,5 +1,5 @@
@misc{gost7322017,
title = {ГОСТ 7.322017. Отчёт о научно-исследовательской работе. Структура и правила оформления},
title = {ГОСТ 7.322017. Отчёт о научно-исследовательской работе. Структура и правила оформления},
year = {2017},
note = {Электронный ресурс: https://tsu.ru/upload/medialibrary/235/gost_7.32_2017.pdf},
}
@@ -60,11 +60,67 @@
url = {https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.197.pdf},
}
@misc{clean-arch,
title = {The Clean Architecture},
author = {Martin, R. C.},
year = {2012},
url = {https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html},
@book{martin-clean-architecture,
author = {Мартин, Р. С.},
title = {Чистая архитектура: искусство разработки программного обеспечения},
publisher = {Питер},
location = {Санкт-Петербург},
year = {2018},
isbn = {978-5-4461-0772-8},
series = {Библиотека программиста},
pagetotal = {352},
langid = {russian},
note = {Пер. с англ.: Clean Architecture: A Craftsman's Guide to Software Structure and Design},
}
@book{martin-clean-code,
author = {Мартин, Р. С.},
title = {Чистый код: создание, анализ и рефакторинг},
publisher = {Питер},
location = {Санкт-Петербург},
year = {2018},
isbn = {978-5-4461-0960-9},
series = {Библиотека программиста},
pagetotal = {464},
langid = {russian},
note = {Пер. с англ.: Clean Code: A Handbook of Agile Software Craftsmanship},
}
@book{smith-jetpack-compose,
author = {Смит, Н.},
title = {Основы {JetPack} {Compose}: разработка приложений для {Android} с помощью {Jetpack} {Compose}, {Android} {Studio} и {Kotlin}},
publisher = {БХВ},
location = {Санкт-Петербург},
year = {2025},
isbn = {978-601-12-3345-3},
pagetotal = {688},
langid = {russian},
note = {Пер. с англ.: Jetpack Compose 1.6 Essentials},
}
@book{losev-crypto,
author = {Лось, А. Б. and Нестеренко, А. Ю. and Рожков, М. И.},
title = {Криптографические методы защиты информации для изучающих компьютерную безопасность},
publisher = {Юрайт},
location = {Москва},
year = {2026},
isbn = {978-5-534-12474-3},
edition = {2},
pagetotal = {424},
langid = {russian},
}
@book{zobnin-android-security,
author = {Зобнин, Е. Е.},
title = {{Android} глазами хакера},
publisher = {БХВ},
location = {Санкт-Петербург},
year = {2024},
isbn = {978-5-9775-1797-3},
edition = {2},
pagetotal = {272},
series = {Глазами хакера},
langid = {russian},
}
@misc{cryptomator-docs,