Добавлены книги
This commit is contained in:
@@ -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.
|
*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
|
=== Клиентское шифрование и модель zero-knowledge
|
||||||
|
|
||||||
Данные шифруются до отправки во внешнее хранилище; провайдер не получает ключ расшифрования. Используется AES @nist-aes; проверка ключа выполняется через `Encryptor.checkKey` без расшифровки всего содержимого.
|
Данные шифруются до отправки во внешнее хранилище; провайдер не получает ключ расшифрования. Модель угроз мобильной платформы и практики защиты приложений рассмотрены в @zobnin-android-security. Используется AES @nist-aes @losev-crypto; проверка ключа выполняется через `Encryptor.checkKey` без расшифровки всего содержимого.
|
||||||
|
|
||||||
=== Авторизация и взаимодействие с внешними провайдерами без собственного сервера
|
=== Авторизация и взаимодействие с внешними провайдерами без собственного сервера
|
||||||
|
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ DFD уровня 0 (рис. @fig-16) отражает потоки между UI
|
|||||||
|
|
||||||
#pz-fig("fig_18_deployment.png", [Диаграмма развёртывания], "fig-18")
|
#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")
|
#pz-fig("fig_19_clean_architecture.png", [Слои Clean Architecture и модули проекта], "fig-19")
|
||||||
|
|
||||||
|
|||||||
@@ -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_05_local_vaults.jpg", [Список storage в локальном vault (экран «локальные vault»)], "fig-05")
|
||||||
#pz-fig("fig_06_encrypt_dialog.jpg", [Диалог включения шифрования], "fig-06")
|
#pz-fig("fig_06_encrypt_dialog.jpg", [Диалог включения шифрования], "fig-06")
|
||||||
|
|||||||
@@ -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")
|
#pz-fig("fig_24_domain_class_manual.png", [Диаграмма классов модуля domain (самостоятельное проектирование)], "fig-24")
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#heading(numbering: none, outlined: true)[Введение]
|
#heading(numbering: none, outlined: true)[Введение]
|
||||||
|
|
||||||
Современные пользователи хранят личные и рабочие данные в облачных сервисах и на съёмных носителях, однако инфраструктура провайдера не всегда может считаться доверенной. Утечки, компрометация учётных записей и юрисдикционные риски делают актуальным подход, при котором конфиденциальность обеспечивается на стороне клиента до размещения данных во внешнем хранилище @nist-aes @clean-arch.
|
Современные пользователи хранят личные и рабочие данные в облачных сервисах и на съёмных носителях, однако инфраструктура провайдера не всегда может считаться доверенной. Утечки, компрометация учётных записей и юрисдикционные риски делают актуальным подход, при котором конфиденциальность обеспечивается на стороне клиента до размещения данных во внешнем хранилище @nist-aes @martin-clean-architecture.
|
||||||
|
|
||||||
*Актуальность* темы обусловлена распространением мобильных приложений для хранения файлов и секретов, а также ограниченностью готовых решений: многие продукты привязаны к собственному backend, закрытой экосистеме или узкой предметной области @google-secure-folder @bitwarden-help @cryptomator-docs.
|
*Актуальность* темы обусловлена распространением мобильных приложений для хранения файлов и секретов, а также ограниченностью готовых решений: многие продукты привязаны к собственному backend, закрытой экосистеме или узкой предметной области @google-secure-folder @bitwarden-help @cryptomator-docs.
|
||||||
|
|
||||||
@@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
*Объект исследования* – методы и средства клиентской защиты данных в мобильных приложениях. *Предмет исследования* – проектные и программные решения приложения Wallenc.
|
*Объект исследования* – методы и средства клиентской защиты данных в мобильных приложениях. *Предмет исследования* – проектные и программные решения приложения Wallenc.
|
||||||
|
|
||||||
*Методы исследования*: анализ нормативной и технической документации, сравнительный анализ программных аналогов, объектно-ориентированное проектирование (UML, BPMN, DFD), прототипирование пользовательского интерфейса, программная реализация и тестирование @gost7322017 @kotlin-docs.
|
*Методы исследования*: анализ нормативной и технической документации, сравнительный анализ программных аналогов, объектно-ориентированное проектирование (UML, BPMN, DFD), прототипирование пользовательского интерфейса, программная реализация и тестирование @gost7322017 @martin-clean-code @kotlin-docs.
|
||||||
|
|
||||||
*Практическая база.* Работа выполнена в рамках производственной практики в ООО НМФ «Нейротех» (09.02.2026–06.05.2026) по направлению 09.03.04 «Программная инженерия» на кафедре математического обеспечения и применения ЭВМ (МОП ЭВМ). Научный руководитель – Беликов А. Н. (кафедра системного анализа и телекоммуникаций, САИТ); руководитель от организации – Алексеев Д. М.
|
*Практическая база.* Работа выполнена в рамках производственной практики в ООО НМФ «Нейротех» (09.02.2026–06.05.2026) по направлению 09.03.04 «Программная инженерия» на кафедре математического обеспечения и применения ЭВМ (МОП ЭВМ). Научный руководитель – Беликов А. Н. (кафедра системного анализа и телекоммуникаций, САИТ); руководитель от организации – Алексеев Д. М.
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
@misc{gost7322017,
|
@misc{gost7322017,
|
||||||
title = {ГОСТ 7.32—2017. Отчёт о научно-исследовательской работе. Структура и правила оформления},
|
title = {ГОСТ 7.32–2017. Отчёт о научно-исследовательской работе. Структура и правила оформления},
|
||||||
year = {2017},
|
year = {2017},
|
||||||
note = {Электронный ресурс: https://tsu.ru/upload/medialibrary/235/gost_7.32_2017.pdf},
|
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},
|
url = {https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.197.pdf},
|
||||||
}
|
}
|
||||||
|
|
||||||
@misc{clean-arch,
|
@book{martin-clean-architecture,
|
||||||
title = {The Clean Architecture},
|
author = {Мартин, Р. С.},
|
||||||
author = {Martin, R. C.},
|
title = {Чистая архитектура: искусство разработки программного обеспечения},
|
||||||
year = {2012},
|
publisher = {Питер},
|
||||||
url = {https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html},
|
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,
|
@misc{cryptomator-docs,
|
||||||
|
|||||||
Reference in New Issue
Block a user