Інженерія

Захист чутливих медичних даних користувачів: офлайн-шифрування AES-256 у Flutter та Isar

ПР

Павло Рубановський

June 20, 2026 · 9 хв читання

Захист чутливих медичних даних користувачів: офлайн-шифрування AES-256 у Flutter та Isar

Мобільна архітектура з пріоритетом на приватність

У додатках для відстеження жіночого здоров'я приватність — це не просто додаткова функція, це ключова вимога. Проєктуючи Квіт (Kvit), наш трекер циклу та вагітності, ми обрали архітектуру local-first. Щоденники симптомів, показники ваги та прогрес вагітності зберігаються виключно локально на пристрої користувача, без доступу третіх сторін.

Ось як ми реалізували максимальний рівень безпеки за допомогою Flutter, апаратного сховища ключів та бази даних Isar.

Шифрування локальної бази даних

Isar — це надшвидка NoSQL база даних для Flutter. Вона має вбудовану підтримку шифрування за стандартом AES-256. Однак база даних захищена лише настільки, наскільки надійно захищений її ключ шифрування.

Наш алгоритм керування ключами: 1. При першому запуску додаток генерує криптографічно стійкий 256-бітний ключ за допомогою бібліотеки crypto. 2. Цей ключ зберігається в захищеному апаратному сховищі пристрою через flutter_secure_storage (Keychain в iOS, Keystore в Android). 3. При кожному наступному запуску додаток зчитує ключ і відкриває зашифрований екземпляр бази даних Isar.

`dart final secureKey = await secureStorage.read(key: 'isar_key'); final dir = await getApplicationDocumentsDirectory(); final isar = await Isar.open( [AppSettingsSchema, PeriodRecordSchema, DailyLogSchema], directory: dir.path, encryptionKey: secureKeyBytes, ); `

Біометрія та захист PIN-кодом

Для максимальної конфіденційності користувачі Квіт можуть увімкнути спеціальний режим захисту:

  • Встановлення 4-значного PIN-коду для входу.
  • PIN-код хешується за допомогою алгоритму SHA-256 з унікальною сіллю та 10 000 ітераціями для запобігання атакам брутфорсу.
  • Інтеграція біометрії через local_auth (FaceID/TouchID) дозволяє швидко розблокувати та розшифрувати дані одним дотиком чи поглядом.

Офлайн-first синхронізація

Оскільки Квіт є повністю автономним додатком, усі розрахунки циклу, прогнози фертильності та термінів вагітності відбуваються безпосередньо на пристрої. Якщо користувач вирішує скористатися соціальними функціями (наприклад, анонімною стрічкою спільноти), дані передаються через Supabase Edge Functions у зашифрованому вигляді за допомогою токенів без персональної ідентифікації. Це гарантує, що навіть під час передачі дані не можуть бути перехоплені чи пов'язані з реальною особою.

Розпочати проєкт

Сподобалося?
Давайте будувати разом.

Відповідь протягом 24 годин · NDA готові · Повна власність на код