Preskoči na sadržaj
← Natrag na blog

Kako F9.contact šifrira podatke vaših klijenata

Tehnički pogled na šifriranje u F9.contact: ključ za svaki zapis, ključ samo vašeg salona, što je šifrirano, što nije i kako funkcionira brisanje.

Tim F9.contact7 min čitanja
Zaštita podataka
Privatnost
GDPR
Kartoteka klijenata

„Vaši su podaci šifrirani" najlakša je rečenica u softveru za napisati, a jedna od najtežih za provjeriti. Može značiti lokot u pregledniku i ništa više. Ovaj tekst duži je odgovor za vlasnike, i za informatičara ili knjigovođu koji ih to pitaju: što F9.contact šifrira, kako, kojim ključevima, što namjerno ostavljamo nešifriranim i što se događa s ključevima kada klijent ili poslovni subjekt ode.

Tri sloja, tri različita posla

Šifriranje u F9 radi na tri sloja, a svaki štiti od nečeg drugog.

U prijenosu. Svaka veza ide preko TLS-a: aplikacija, vaša stranica za rezervacije i klijentski portal. To sprječava da itko između vašeg uređaja (računala, tableta ili mobitela) i naših poslužitelja pročita ili promijeni ono što se šalje. To je lokot u pregledniku i podrazumijeva se.

U bazi podataka, polje po polje. Ovo je sloj koji je za osobne podatke najvažniji. Prije nego što se ime klijenta, broj telefona ili bilješka o alergiji zapišu u bazu, aplikacija ih šifrira. Baza nikada ne prima čitljiv tekst, nego samo šifrat. Kopija baze (ukradena sigurnosna kopija, procurjeli izvoz, netko tko čita tablice koje ne bi smio) umjesto imena, bilješki i telefona pokazuje ispremiješane vrijednosti. Ispod toga baza podataka šifrira i vlastite datoteke tablica, pa se kopirana datoteka tablice sama po sebi ne može pročitati.

Pristup u aplikaciji. Kada se podaci dešifriraju za nekoga tko koristi F9, uloge i ovlasti odlučuju što ta osoba vidi. Šifriranje to ne zamjenjuje: recepcionarka koja smije vidjeti telefon klijenta vidi ga kao običan tekst, jer je to smisao aplikacije. Tko što smije vidjeti, odlučuju uloge koje postavite vi.

Ostatak teksta govori o srednjem sloju.

Algoritam

Šifrirana polja koriste AES-256-GCM, autentificirani način rada standarda AES s ključem od 256 bita. U praksi su važna dva svojstva:

  • Svako zapisivanje koristi novi nasumični inicijalizacijski vektor od 96 bita, pa isti broj telefona spremljen dvaput daje dva različita šifrata. Ponovljene vrijednosti ne mogu se uočiti usporedbom šifriranih podataka.
  • GCM nosi autentifikacijsku oznaku. Ako se spremljena vrijednost promijeni, makar za jedan bit, dešifriranje ne uspijeva umjesto da vrati izmijenjen tekst.

Ključ za svaki zapis, iznad njega ključ vašeg salona

F9 koristi takozvano omotno šifriranje: podaci se šifriraju jednim ključem, a taj se ključ šifrira („omata") drugim.

Svaki zapis ima vlastiti podatkovni ključ. Svaki klijentski karton, rezervacija, privola, profil djelatnika i zapis o tretmanu dobiva vlastiti nasumični ključ od 256 bita u trenutku nastanka. Taj ključ šifrira osjetljiva polja tog zapisa i ništa drugo.

Vaš salon ima vlastiti ključ. Podatkovni ključevi za sve što vaš poslovni subjekt drži (klijentski kartoni, rezervacije, privole, odgovori iz upitnika, zapisi o tretmanima, djelatnici, vaš fiskalni certifikat) omotani su ključem koji pripada samo vašem poslovanju. To je nasumično generiran ključ, a ne ključ izračunat iz podataka vašeg računa. Taj je izbor namjeran: ključ koji se može ponovno izračunati nikada se ne može stvarno uništiti, a uništavanje ključa je način na koji brisanje funkcionira (o tome niže).

I ključ vašeg salona je zaključan. Ključ vašeg salona omotan je glavnim ključem koji se čuva odvojeno od podataka koje štiti. Tko ima samo bazu, ima zaključane ključeve zaključanih podataka.

Vlastiti račun klijenta malo je drukčiji. Klijent jednom prijavom može rezervirati u više salona na F9, pa njegov račun (ime, e-pošta, telefon, poveznica na profilnu fotografiju) ne pripada nijednom pojedinom poslovnom subjektu. Njegov je podatkovni ključ omotan zasebnim glavnim ključem za klijentske račune, a ne ključem vašeg salona. Ono što vaš salon bilježi o tom klijentu (vaše bilješke, alergije, povijest tretmana, privole) ostaje pod vašim ključem.

Glavni ključevi mogu se zamijeniti. Zamjena glavnog ključa ponovno omata ključeve ispod njega, bez dešifriranja i ponovnog zapisivanja svakog zapisa.

Što je šifrirano

Na strani salona, pod ključem vašeg poslovnog subjekta:

  • Klijentski karton: vaše bilješke i alergije; za frizerske salone trenutna boja kose i omiljena marka proizvoda.
  • Rezervacije: bilješke uz rezervaciju.
  • Zapisi o tretmanima: četiri bilješke kemijskog tretmana (stanje vlasišta, neželjene reakcije, rezultat, preporuka za sljedeći dolazak), bilješke o reakciji na test osjetljivosti, privatne bilješke osoblja, zapažanja nakon posjeta i opisi fotografija.
  • Privole i upitnici: odgovori klijenta, ime koje je upisao kao potpis i zapečaćeni zapis onoga na što je pristao.
  • Djelatnici: ime i prezime, e-pošta, telefon i OIB svakog djelatnika i korisničkog računa.
  • Fiskalni certifikat: certifikat i njegova lozinka, koji se otključavaju samo na trenutak potreban za potpis računa.

Na vlastitom računu klijenta, pod ključem klijentskih računa: ime i prezime, e-pošta, telefon, poveznica na profilnu fotografiju i tajne iza njegovih načina prijave.

Na računu vašeg poslovnog subjekta: ime, telefon i e-pošta kontaktne osobe te pristupni podaci terminala za plaćanje i knjigovodstvenih povezivanja koja uključite.

Kako pronalazimo ono što ne možemo pročitati

Šifrirani podaci ne mogu se izravno pretraživati, a klijent se ipak mora moći prijaviti svojom e-poštom, a vaša recepcija mora moći upisati „Mar" i pronaći Mariju.

Za e-poštu F9 uz šifriranu adresu sprema ključem zaštićen HMAC-SHA256 otisak adrese napisane malim slovima. Prijava izračuna isti otisak i potraži ga. Otisak se ne može vratiti u adresu, a ključ kojim je izračunat čuva se odvojeno od podataka, pa se bez njega ne može usporediti s popisom pogođenih adresa.

Za imena F9 sprema ključem zaštićene otiske početka svakog imena i prezimena, od dva do sedam slova, nakon uklanjanja dijakritičkih znakova (pa se „Ričardson" i „Richardson" podudaraju). Pretraga potraži otisak onoga što ste upisali, a zatim suzi rezultate dešifriranjem kandidata i usporedbom punog teksta.

Kompromis je pošten i vrijedi ga imenovati: ista e-pošta uvijek daje isti otisak (upravo to omogućuje prijavu), pa baza može vidjeti da dva retka dijele adresu, a da ne zna koja je to adresa.

Što nije šifrirano i zašto

Neki podaci namjerno nisu šifrirani na razini polja:

  • Fotografije i datoteke. Fotografije prije i poslije, profilne slike, zapečaćeni PDF-ovi privola i izvozi podataka nalaze se u privatnoj pohrani u EU. Same datoteke ne šifriramo. Pohrana je privatna, a svaka se datoteka poslužuje samo kroz potpisanu poveznicu koja istječe: sat vremena za profilne slike, dan za fotografije tretmana i izvoze. Učitane fotografije ponovno se kodiraju na našim poslužiteljima, čime se uklanjaju i skriveni metapodaci koje kamera ugrađuje, poput lokacije i uređaja.
  • Datumi rođenja. Čuvaju se čitljivi u zasebnoj tablici kako bi aplikacija mogla pronaći nadolazeće rođendane. Kada se račun klijenta izbriše, oni se brišu, a ne samo skrivaju.
  • Javna strana vašeg tima. Prikazno ime, opis i fotografija djelatnika postoje da bi se prikazali na vašoj javnoj stranici za rezervacije, pa nisu šifrirani. Kada se vaše poslovanje zatvori, brišu se u potpunosti.
  • Operativni zapisi. Termini, usluge, cijene, zalihe i računi sami po sebi nisu osobni podaci, a računi posebno moraju ostati čitljivi prema hrvatskim propisima o fiskalizaciji.
  • Formule boje. Recept (mješavina, oksidans, razine, ton) stručno je znanje, a ne osobni podatak. Bilješke o rezultatu uz njega su šifrirane.
  • Metapodaci prijave. Preglednik i mrežna adresa na zapamćenim uređajima i sesijama klijenta čuvaju se čitljivi radi sigurnosti, a brišu se kada se račun izbriše.

Što se događa kada netko ode

Budući da ključ svakog zapisa visi o ključu iznad njega, brisanje se provodi uništavanjem ključeva. Uništeni ključ uklanja se iz baze, ne samo označava, i ništa što je njime omotano više nitko ne može dešifrirati, ni mi. Sigurnosne kopije napravljene prije tog dana i dalje sadrže stari ključ dok ne isteknu prema rasporedu sigurnosnih kopija.

Kada klijent zatraži zaborav. Nakon razdoblja od 30 dana za predomišljanje uništavaju se svi podatkovni ključevi vlastitog računa klijenta, pa se njegovo ime, e-pošta, telefon i podaci za prijavu više ne mogu pročitati. Njegovi tokeni za prijavu, registracije uređaja, jednokratne poveznice i datum rođenja se brišu. Vlastiti zapisi vašeg salona o tom klijentu slijede vaša pravila čuvanja, a upravo vam to članak 17. stavak 3. GDPR-a dopušta kako biste zadržali ono što ste dužni zadržati.

Kada se poslovanje zatvori. F9 uništava ključ vašeg salona. U jednom koraku svi podatkovni ključevi omotani njime postaju nečitljivi: klijentski kartoni, rezervacije, privole, zapisi o tretmanima i djelatnici, uključujući svaku vrstu zapisa koja se u F9 doda u budućnosti, jer je omotana istim ključem. Podaci kontaktne osobe uništavaju se njezinim vlastitim ključem, otisci e-pošte vaših djelatnika se brišu, a javni profili vašeg tima brišu se u potpunosti. Zapisi koje hrvatski propisi o fiskalizaciji nalažu čuvati ostaju, bez čitljivih osobnih podataka.

Od čega šifriranje ne štiti

Radije ćemo to reći otvoreno nego da to otkrijete sami. Šifriranje polja štiti podatke u mirovanju: u bazi, u kopijama baze, od nekoga tko izravno čita tablice. Ne štiti od nekoga tko preuzme korisnički račun u vašem salonu, i ne štiti od nekoga tko preuzme naše aplikacijske poslužitelje, jer aplikacija mora moći pročitati podatke da bi vam ih prikazala. Te se rizike rješava drugim sredstvima: ulogama i dnevnikom promjena na vašoj strani te kontrolom pristupa našoj infrastrukturi na našoj.

Ako želite dublje, stranica Sigurnost i privatnost sažima gdje se podaci nalaze i kako prava iz GDPR-a funkcioniraju u F9, a naš praktični vodič kroz GDPR pokriva što uredba traži od vas kao voditelja obrade.

6 min čitanja

Praktičan vodič kroz GDPR za vlasnike salona

Što GDPR doista traži od poslovanja u sektoru osobne njege, jednostavnim riječima: pravna osnova, privola, prava klijenata nad podacima i kako ih F9.contact rješava umjesto vas.

GDPR
Usklađenost
Zaštita podataka
Pročitajte više

Vodite cijeli salon u jednom sustavu. Trideset dana besplatno, bez kartice.

Podrška na hrvatskom i engleskom, od stvarnih ljudi.