Дізнайтеся, як MigrainePulse використовує передове симетричне шифрування (AES-256-GCM) та Cloudflare Workers для забезпечення абсолютної безпеки та конфіденційності чутливих даних про здоров'я.

Створюючи продукти HealthTech, такі як MigrainePulse, одним із найбільших викликів є забезпечення абсолютної безпеки та конфіденційності конфіденційних даних користувачів. Історія нападів мігрені, прийняті ліки, медичні записи та деталі способу життя – усе це є вкрай особистою інформацією.

З першого дня наша філософія була простою: дані користувачів належать лише їм. Щоб забезпечити це, ми впровадили передову систему симетричного шифрування (англ. Symmetric Key Encryption) в архітектурі MigrainePulse, яка працює разом із ізольованими мікросервісними рішеннями (Cloudflare Workers).

У цій статті ми запрошуємо вас технічно зазирнути під капот і дізнатися, як працюють наші захисні механізми.

Чому стандартних рішень недостатньо?

Більшість додатків сьогодні використовують шифрування під час передачі даних (TLS/SSL) та шифрування в стані спокою (зашифровані бази даних). Однак якщо вся система (база даних та головний сервер, що зберігає ключі шифрування) буде скомпрометована одночасно, дані можуть стати відкритими.

Щоб уникнути цього, в системі MigrainePulse ми відокремили самі дані від ключів, необхідних для їх розшифрування.

Основа архітектури: SymmetricKeyService

У нашій бекенд-системі (використовуючи моноліт NestJS) спеціальний модуль SymmetricKeyService керує шифруванням та дешифруванням конфіденційних даних.

Як це працює на практиці?

  • Принцип одного ключа: Симетричне шифрування означає, що один і той самий унікальний ключ використовується як для шифрування, так і для дешифрування даних. Кожен користувач має унікальний ключ, призначений йому, якого навіть ми самі не маємо в нашій головній базі даних.

  • Шифрування корисного навантаження (Payload Encryption): Коли користувач зберігає новий запис про здоров’я (наприклад, додає новий напад мігрені), дані надходять на наш сервер. SymmetricKeyService отримує ці конфіденційні дані, шифрує їх за допомогою передового алгоритму (наприклад, AES-256-GCM) і лише потім зберігає в базі даних. У базі даних зберігається лише безглуздий набір символів.

  • Ідентифікація користувача: Сесія користувача та доступ до даних тісно пов’язані з JWT (JSON Web Tokens) та автентифікацією Supabase. Користувач підтверджує свою особу, а ключ шифрування, що належить йому, надається лише після верифікова вхід.

migraine-pulse-security-key-management-service diagram

Додатковий рівень захисту: Cloudflare Worker

Виникає природне питання – де тоді зберігаються самі ключі шифрування, якщо не в головній базі даних?

Тут нам на допомогу прийшла технологія Cloudflare Workers.

У нашій архітектурі ключі шифрування керуються через повністю ізольовану інфраструктуру, що працює в Edge-мережі. Рішення, описане в документації doc/backend/cloudflare-worker.md, забезпечує, що головний API-сервер і база даних ніколи не зберігають самі ключі в довгостроковій пам’яті.

Переваги інтеграції:

  • Децентралізація: Оскільки ключі зберігаються та керуються в окремій хмарній інфраструктурі (Cloudflare), потенційному хакеру недостатньо буде скомпрометувати наш головний сервер. Йому потрібно було б одночасно подолати дві абсолютно різні, взаємно ізольовані системи.

  • Швидкість (Low Latency): Cloudflare Workers працюють у глобальній Edge-мережі (найближчої до користувача), тому запит ключа до них (для авторизованого дешифрування) додає лише мінімальну затримку, зберігаючи продуктивність програми.

  • Суворий контроль доступу: Worker налаштований так, що віддає ключі лише після отримання правильно підписаних та підтверджених запитів від нашого SymmetricKeyService, перевіряючи всі обмеження CORS та IP.

Підсумок

MigrainePulse – це не просто інструмент для відстеження даних. Це безпечний простір. Поєднуючи надійну архітектуру NestJS (symmetric-key.service.ts) з децентралізацією, яку надають Cloudflare Workers, ми створили систему, в якій особиста інформація користувача залишається заблокованою навіть у найгірших сценаріях.

Для нас «Безпека понад усе» – це не просто влучна фраза для маркетингу – це інженерний фундамент, на якому побудована вся система MigrainePulse. Тому що коли йдеться про здоров’я, немає місця для компромісів щодо конфіденційності.


Маєте питання щодо нашої технічної архітектури? Приєднуйтесь до обговорення в коментарях або спробуйте MigrainePulse самі!