Sužinokite, kaip MigrainePulse naudoja pažangų simetrinio rakto šifravimą (AES-256-GCM) ir Cloudflare Workers, kad užtikrintų absoliutų jautrių sveikatos duomenų saugumą ir vartotojų privatumą.

Kuriant sveikatos technologijų (HealthTech) produktus, tokius kaip „MigrainePulse“, susiduriama su vienu didžiausių iššūkių – kaip užtikrinti absoliutų vartotojų jautrių duomenų saugumą ir privatumą. Migrenos priepuolių istorija, vartojami vaistai, sveikatos įrašai ir gyvenimo būdo detalės – visa tai yra itin asmeniška informacija.

Nuo pat pirmos dienos mūsų filosofija buvo paprasta: vartotojų duomenys priklauso tik jiems. Kad tai užtikrintume, „MigrainePulse“ architektūroje įdiegėme pažangią simetrinio rakto šifravimo (angl. Symmetric Key Encryption) sistemą, kuri veikia kartu su izoliuotais mikropaslaugų sprendimais (Cloudflare Workers).

Šiame straipsnyje kviečiame techniškai pažvelgti po gaubtu ir sužinoti, kaip veikia mūsų apsaugos mechanizmai.

Kodėl standartinių sprendimų nepakanka?

Dauguma aplikacijų šiandien naudoja šifravimą duomenų perdavimo metu (TLS/SSL) ir šifravimą ramybės būsenoje (šifruotos duomenų bazės). Tačiau jei visa sistema (duomenų bazė ir pagrindinis serveris, kuris laiko šifravimo raktus) yra pažeidžiama vienu metu, duomenys gali tapti atviri.

Norėdami to išvengti, „MigrainePulse“ sistemoje atskyrėme pačius duomenis nuo raktų, reikalingų jiems iššifruoti.

Architektūros pagrindas: „SymmetricKeyService“

Mūsų backend sistemoje (kuriai naudojame „NestJS“ monolitą) jautrių duomenų šifravimą ir dešifravimą valdo specialus SymmetricKeyService modulis.

Kaip tai veikia praktikoje?

  • Vieno rakto principas: Simetrinis šifravimas reiškia, kad tas pats unikalus raktas yra naudojamas ir duomenims užšifruoti, ir jiems atšifruoti. Kiekvienas vartotojas turi jam priskirtą unikalų raktą, kurio neturime net mes patys savo pagrindinėje duomenų bazėje.

  • Duomenų apdorojimas (Payload Encryption): Kai vartotojas išsaugo naują sveikatos įrašą (pvz., prideda naują migrenos priepuolį), duomenys pasiekia mūsų serverį. SymmetricKeyService paima šį jautrų payload, užšifruoja jį naudojant pažangų algoritmą (pvz., AES-256-GCM) ir tik tada išsaugo duomenų bazėje. Duomenų bazėje saugomas tik beprasmis simbolių rinkinys.

  • Vartotojo identifikacija: Vartotojo sesija ir prieinamumas prie duomenų yra griežtai susieti su JWT (JSON Web Tokens) ir „Supabase“ autentifikacija. Vartotojas patvirtina tapatybę, o jam priklausantis šifravimo raktas yra pateikiamas tik patvirtintam prisijungimui.

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

Papildomas gynybos sluoksnis: „Cloudflare Worker“

Kyla natūralus klausimas – kur tuomet saugomi patys šifravimo raktai, jei ne pagrindinėje duomenų bazėje?

Čia į pagalbą pasitelkėme Cloudflare Workers technologiją.

Mūsų architektūroje šifravimo raktai yra valdomi per visiškai izoliuotą, Edge tinkle veikiančią infrastruktūrą. doc/backend/cloudflare-worker.md dokumentacijoje aprašytas sprendimas leidžia užtikrinti, kad pagrindinis API serveris ir duomenų bazė niekada nesaugotų pačių raktų ilgalaikėje atmintyje.

Integracijos naudos:

  • Decentralizacija: Kadangi raktai saugomi ir valdomi atskiroje debesijos infrastruktūroje („Cloudflare“), potencialiam įsilaužėliui nepakaktų kompromituoti mūsų pagrindinio serverio. Jam reikėtų vienu metu įveikti dvi visiškai skirtingas, tarpusavyje izoliuotas sistemas.

  • Greitis (Low Latency): „Cloudflare Workers“ veikia globaliame Edge tinkle (arčiausiai vartotojo), todėl kreipimasis į juos dėl rakto gavimo (autorizuotam atšifravimui) prideda tik minimalią delsą, išlaikant programėlės spartą.

  • Griežta prieigos kontrolė: Worker’is sukonfigūruotas taip, kad raktus atiduoda tik sulaukęs teisingai pasirašytų ir patvirtintų užklausų iš mūsų SymmetricKeyService, patikrinęs visus CORS ir IP apribojimus.

Apibendrinimas

„MigrainePulse“ nėra tik įrankis duomenims sekti. Tai – saugi erdvė. Kombinuodami tvirtą „NestJS“ architektūrą (symmetric-key.service.ts) su „Cloudflare Workers“ teikiama decentralizacija, mes sukūrėme sistemą, kurioje vartotojo asmeninė informacija išlieka užrakinta net pačių blogiausių scenarijų atveju.

Mums „Saugumas pirmiausia“ nėra tik skambi frazė marketingui – tai inžinerinis pamatas, ant kurio pastatyta visa „MigrainePulse“ sistema. Nes kai kalbame apie sveikatą, kompromisams dėl privatumo vietos nėra.


Ar turite klausimų apie mūsų techninę architektūrą? Prisijunkite prie diskusijos komentaruose arba išbandykite MigrainePulse patys!