Bezpečnost - technický detail
Aktualizováno: 20. září 2026
Technický doplněk stránky Jak chráníme vaše údaje. Popisuje vybrané mechanismy aplikace; nejde o certifikaci infrastruktury ani záruku, že všechny kategorie dat mají stejný režim.
I. Identitní data - Bank iD a ruční ověření
Identitu ověřujeme přes Bank iD nebo ručním ověřením oprávněným pracovníkem na online hovoru. Výsledky ověření a potřebné identitní údaje ukládáme; vybraná citlivá pole jsou šifrována na úrovni aplikace.
Bank iD. Aplikace zpracovává ověřené údaje z autorizačního procesu a uchovává identitní snímek pro účely pracovněprávní a mzdové agendy. Přihlašovací údaje do banky nezískává.
Ruční ověření. Oprávněný pracovník zapíše údaje z dokladu na online hovoru; snímek dokladu se do produkčního úložiště nenahrává. Výsledek nese zdroj MANUAL_ADMIN a stejnou auditní stopu jako Bank iD.
Audit a retence. Identitní a podpisové události mají auditní záznamy. Provozní kopie, podklady k ověření a zákonné pracovněprávní záznamy mají různé retenční účely; nelze na ně vztahovat jednu obecnou lhůtu 60 dnů. Výmaz účtu neodstraňuje všechny zákonně uchovávané záznamy.
II. Tokeny a relace
Při přihlášení klient dostane dva tokeny: krátkodobý JWT access token a opakovaně použitelný refresh token (14 dní klouzavě, 365 dní absolutně).
Refresh token je opaque. 64 znaků hexadecimálního náhodného řetězce - nikoli JWT. Nelze ho "rozšifrovat" mimo náš backend. Při každém použití je rotován: starý token se okamžitě označí jako spotřebovaný, vystaví se nový.
Rotace a opakování požadavku. RefreshTokenService používá family_id pro řetězec jedné relace. Při obnově se starý token označí jako spotřebovaný. Omezené zotavovací okno 300 sekund dovoluje opakování při nepoužitém následníkovi; mezipaměť pro toto zotavení dočasně obsahuje nový token. Opakování mimo povolené podmínky zneplatní dotčenou rodinu, nikoli všechny nezávislé relace uživatele.
Aktivní zařízení. Na /account/security/sessions (web) a /sessions (mobile) uživatel vidí všechny aktivní relace, jejich poslední aktivitu a zařízení / lokalitu (z User-Agent a IP adresy uložené u každého vydaného tokenu relace; IP adresy z předchozích obnovení zůstávají v auditní řadě tokenů až do smazání účtu a IP adresy podpisových a ověřovacích úkonů v auditních záznamech). Relace lze revokovat individuálně nebo hromadně; revokace zneplatní rodinu, ne jen jeden token.
III. Soubory a dokumenty
Produkční úložiště má dvě části: veřejné obrázky a přílohy chatu a podpory ukládáme v Amazon S3 (eu-central-1, Frankfurt) a veřejné obrázky doručujeme přes Amazon CloudFront; smlouvy, podepsané dokumenty (DPP, prohlášení), doklady BOZP, certifikace a životopisy ukládáme v Hetzner Object Storage (Falkenstein, Německo). Vývojová prostředí mohou používat MinIO. Veřejné obrázky a neveřejné dokumenty mají odlišné požadavky na přístup.
Odkazy k souborům. U spravovaných objektů aplikace pracuje s klíčem objektu a vystavuje URL podle účelu a oprávnění. Podepsaný odkaz má omezenou platnost; jeho držitel může po dobu platnosti soubor stáhnout. Podepsané odkazy na neveřejné dokumenty platí zpravidla 60 sekund, přílohy chatu a podpory až 72 hodin. Nejde o zákaz kopírování.
Třístupňová přístupová kontrola (apps/api/src/modules/storage/storage.controller.ts):
- Veřejné soubory (loga firem, profilové fotky, fotky nabídek) - dostupné bez autorizace na trvalé adrese přes CDN s dlouhodobým ukládáním do mezipaměti; nepodepisují se a jsou určeny ke zveřejnění.
- Authenticated assets (smlouvy, doklady k zakázkám) - JWT validace + ověření vlastnictví předtím, než vystavíme signed URL.
- Tenant-scoped assets (interní firemní dokumenty) - kontrolujeme i
X-Active-Company-Idheader, takže admin firmy A nemá přístup k souborům firmy B.
IV. Šifrování při přenosu a vybraných údajů při uložení
Při přenosu. Veřejná rozhraní používají HTTPS/TLS. Konkrétní TLS a proxy nastavení patří do konfigurace daného nasazení.
Při uložení. Aplikace používá AES-256-GCM pro vybrané citlivé identitní a mzdové údaje. To není záruka šifrování celého databázového disku, všech souborů nebo každé zálohy.
Cross-tenant scope safety. Veřejné dotazy na tabulku companies procházejí přes excludePlatformCompany() (apps/api/src/common/scopes/exclude-platform-company.scope.ts) - interní FIXIT_PLATFORM shell employer tak nemůže prosáknout do veřejných listingů, vyhledávání ani Elasticsearch indexace.
Vstupy uživatele. Ochrana zahrnuje validaci, kontrolu oprávnění, bezpečné vykreslení a kontroly URL před serverovým stahováním. Jednotlivé typy obsahu mají různé zpracování; ne každý vstup prochází totožnou sanitizací.
V. GDPR a kontakty
FixIt.app s.r.o. je správcem osobních údajů podle článku 4 GDPR. Naše Zásady ochrany osobních údajů popisují právní rámec a vaše práva.
- Kontakt na ochranu údajů: legal@fixit.app
- Dozorový úřad: Úřad pro ochranu osobních údajů - Pplk. Sochora 27, 170 00 Praha 7
Hlášení bezpečnostních problémů: security@fixit.app. Uveďte reprodukční kroky a dopad; zveřejnění prosíme koordinovat s námi.
Otázky k těmto mechanismům: security@fixit.app.