Přeskočit na obsah

Právní zástupný text

Prohlášení o bezpečnosti

Technická a organizační opatření chránící službu RavSolutions — přenos, přihlášení, relace, oddělení pracovních prostorů, soubory, ochrana před zneužitím, logování a reakce na incidenty — a stejně otevřeně i to, co nemáme.

Naposledy aktualizováno
2026-08-04
Verze
1.0.0
Čas čtení
12 min čtení

1. Co je toto prohlášení

Toto prohlášení popisuje technická a organizační opatření, která chrání službu RavSolutions a údaje v ní uložené. Je napsáno tak, aby se dalo ověřit: pojmenovává opatření, která jsou skutečně implementována, a část 15 stejně otevřeně uvádí, co nemáme.

Není zárukou a nezakládá žádný závazek úrovně služeb; smluvní podmínky jsou v Obchodních podmínkách. Pokud se stejné opatření objevuje i v informaci GDPR nebo v informacích o zpracování údajů, má vyjadřovat věcně totéž.

Vztahuje se na službu, kterou provozujeme. Bezpečnost účtů, zařízení a hesel ve vlastním pracovním prostoru předplatitele je jeho odpovědností; žádné zde popsané opatření nechrání pracovní prostor, jehož přihlašovací údaje byly sdíleny nebo opakovaně použity.

2. Jak je služba postavena

Služba se skládá ze tří frontendů — webové stránky, aplikace a zákaznického portálu —, jednoho API, databáze PostgreSQL, instance Redis a objektového úložiště. Frontendy se k API dostávají pouze přes HTTPS.

Vše kromě objektového úložiště běží za reverzní proxy na infrastruktuře RackForest Zrt. v Hungary (EU). Databáze a Redis jsou připojeny pouze k interní síti a nezveřejňují žádný port, takže ani jedno z nich není dosažitelné z internetu; mluvit s nimi může pouze API.

Nahrané soubory se neuchovávají na serverech aplikace, ale v objektovém úložišti Cloudflare R2 nakonfigurovaném pro European Union. Bucket je soukromý: nemá veřejný přístup ani vlastní doménu před sebou a každý soubor se doručuje přes odkaz, který podepisuje API.

Tajemství — pověření databáze, podpisové klíče, API klíče poskytovatelů — se poskytují přes prostředí při nasazení a nikdy se nezaznamenávají do zdrojového repozitáře.

3. Bezpečnost přenosu

Veškerý provoz na webové stránce, v aplikaci, na portálu a API se poskytuje přes HTTPS. Certifikáty vydává a obnovuje automaticky Let's Encrypt a běžné HTTP požadavky se přesměrovávají na HTTPS.

Reverzní proxy posílá HTTP Strict Transport Security s max-age jeden rok, včetně subdomén a s preload, takže prohlížeč, který stránku jednou viděl, se nevrátí k nešifrovanému spojení.

Odpovědi obsahují X-Content-Type-Options: nosniff, X-Frame-Options: SAMEORIGIN, přísnou politiku referrer strict-origin-when-cross-origin a politiku oprávnění, která odepírá kameru, mikrofon a geolokaci. Hlavičky identifikující server a framework jsou odstraněny. API přijímá mezidoménové požadavky pouze z původů aplikace a portálu.

Webová stránka, aplikace a portál jsou poskytovány s politikou Content Security Policy. Skripty se mohou načítat pouze ze samotné služby a v aplikaci i z Google Identity Services pro přihlášení přes Google; webová stránka a portál nepovolují žádný skript třetí strany. Vložení do rámce, obsah pluginů a přepsání základu dokumentu jsou odmítnuty a API odpovídá politikou, která nepovoluje vůbec nic.

4. Přihlášení a hesla

Heslo musí mít alespoň osm znaků a obsahovat velké písmeno, malé písmeno a číslici. Hesla se ukládají pouze jako kryptografický hash se solí vytvořený nástrojem ASP.NET Core Identity password hasher; nikdy se neukládají ve formě, kterou by bylo možné zpětně přečíst, a zapomenuté heslo neumíme obnovit, pouze resetovat.

Po deseti neúspěšných pokusech o přihlášení se účet na patnáct minut uzamkne. Počet se vede vůči účtu, nikoli volajícímu, takže pokus rozptýlený mezi mnoha adresami se zastaví, i když každá adresa zůstane pod rychlostním limitem pro jednoho volajícího.

Přihlášení přes účet Google je dostupné. Identitní token vydaný Googlem se ověří vůči Googlu dříve, než se vytvoří jakákoli relace, a heslo Google nikdy nedostáváme.

Registrace posílá potvrzovací zprávu na zadanou adresu a adresa se označí jako potvrzená, když se použije odkaz v ní. Zapomenuté heslo se resetuje prostřednictvím jednorázového odkazu poslaného na registrovanou adresu; úspěšný reset zároveň zruší existující uzamčení, protože uzamčení je obvyklým důvodem k resetu.

5. Relace a tokeny

Přístupové tokeny jsou JSON Web Tokens platné patnáct minut. Při každém požadavku se kontroluje vydavatel, příjemce, podpis a platnost, bez jakékoli tolerance hodin.

Obnovovací token má šedesát čtyři bajtů z kryptografického generátoru náhodných čísel. Databáze uchovává pouze jeho hash SHA-256, takže samotný token nelze přečíst z kopie databáze.

Každé obnovení token rotuje: předchozí se odvolá a vydá se nový. Obnovovací tokeny vyprší po třiceti dnech a odhlášení token okamžitě odvolá.

Obnovení se odmítne, pokud byl uživatel deaktivován nebo pracovní prostor zneaktivněn, takže odebrání něčího přístupu nabývá účinnosti nejpozději při vypršení jeho aktuálního přístupového tokenu.

6. Řízení přístupu a oddělení pracovních prostorů

Každý uživatel má v pracovním prostoru roli a koncové body ji kontrolují. Funkce závislé na plánu jsou navíc chráněny vlastními autorizačními politikami, takže funkci mimo předplacený plán API odmítne, nejen skryje v rozhraní.

Pracovní prostory jsou odděleny na úrovni údajů: každý záznam nese identifikátor pracovního prostoru, do kterého patří, a každý dotaz je omezen na pracovní prostor volajícího. Záznam patřící jinému pracovnímu prostoru není ve výsledku skryt — nikdy se do něj nevybere.

Pracovní prostor se bere z tvrzení (claim) v podepsaném přístupovém tokenu a řeší se na serveru. Identifikátoru pracovního prostoru poskytnutému klientem se nedůvěřuje na nic.

Připojení v reálném čase používají stejnou autentizaci jako zbytek API; připojení bez platného tokenu se odmítne, velikost příchozí zprávy je omezena a podrobné informace o chybě se vracejí pouze ve vývojovém prostředí.

7. Přístup do zákaznického portálu

Zákazník dostane odkaz obsahující náhodně vygenerovaný token, který patří k jedné zakázce a nese datum platnosti. Token otevírá pouze tuto jednu zakázku a nic jiného v pracovním prostoru.

Před zobrazením zakázky musí návštěvník potvrdit e-mailovou adresu nebo telefonní číslo zaznamenané pro tohoto zákazníka. Úspěšné potvrzení vytvoří důkaz platný dvanáct hodin, podepsaný pomocí HMAC klíčem odvozeným od — ale kryptograficky nezávislým na — serverovém podpisovém tajemství, a ověřovaný v konstantním čase.

Pokusy o potvrzení jsou omezeny rychlostním limitem podle volajícího, a záměrně ne podle tokenu: omezení podle tokenu by komukoli umožnilo zablokovat zákazníka z jeho vlastní zakázky prostým vyčerpáním jeho limitu.

8. Nahrané soubory

Nahrávání je omezeno na pevný seznam typů souborů — JPEG, PNG, WebP, PDF, DOCX, XLSX a čistý text — a na maximální velikost závislou na předplaceném plánu. Obrázky se před uložením na serveru překódují.

Soubory se doručují prostřednictvím krátce platných podepsaných odkazů generovaných API. Jelikož samotný bucket je soukromý, vypršelý nebo pozměněný odkaz neposkytne vůbec nic.

Nahrávání a stahování mají samostatné rychlostní limity podle volajícího, takže uniklý odkaz nebo nekontrolovaný klient nemůže bez omezení vyčerpat úložiště ani přenosovou kapacitu.

Uložené soubory šifruje poskytovatel úložiště.

9. Ochrana před zneužitím

API uplatňuje rychlostní limity rozdělené podle volajícího — podle pracovního prostoru a uživatele v tokenu, pokud existuje, a jinak podle adresy klienta. Přihlášení, přihlášení přes Google, reset hesla a potvrzení portálu jsou omezeny na deset pokusů za minutu; registrace na pět.

Omezovače čtou skutečnou adresu volajícího z přesměrovacích hlaviček proxy a důvěřuje se pouze samotné proxy, že je nastavuje. Bez této konfigurace by se každý požadavek jevil, jako by pocházel z proxy, a jeden limit by sdíleli všichni, což by z ochrany udělalo výpadek.

Reverzní proxy uplatňuje další celkový rychlostní limit před aplikací, takže provoz je omezen ještě dříve, než se vůbec dostane k API.

Příchozí údaje se validují na serveru dříve, než se dostanou do doménové logiky, a chyby se vracejí jako strukturované zprávy: klientovi se neposílají žádné stack trace, databázové zprávy ani interní cesty.

10. Údaje v klidu

Databáze a Redis jsou pouze na interní síti a přijímají připojení výhradně od API; ani jedno z nich není vystaveno internetu.

Objektové úložiště šifruje uložené soubory v klidu a bucket není veřejně čitelný.

Zálohy se vytvářejí pravidelně a jejich obnova se testuje. Údaje vymazané na konci předplatného mizí ze záloh, když tyto zálohy vyprší v rámci své běžné rotace, a do té doby se nepoužívají k žádnému jinému účelu.

11. Logování a sledovatelnost

Aplikace zapisuje serverové logy a každý pracovní prostor má historii aktivit zaznamenávající, který uživatel co a kdy změnil. Historie je pro předplatitele viditelná v aplikaci.

Serverové, aplikační a bezpečnostní logy se uchovávají 90 dní, s výjimkou případu, kdy je konkrétní záznam uchováván déle pro probíhající bezpečnostní vyšetřování.

Logy existují k provozu služby a vyšetřování incidentů. Nelogujeme hesla, tokeny relace ani údaje o platebních kartách.

12. Provoz

Přístup k produkčním systémům a produkčním údajům je omezen na personál, který ho potřebuje k provozu nebo podpoře, na základě principu nejnižších potřebných oprávnění a povinnosti mlčenlivosti, která pokračuje i po skončení jeho působení.

Závislosti třetích stran jsou připnuté a spravované centrálně, takže verze se mění na jednom místě; bezpečnostní aktualizace na platformu a její závislosti uplatňujeme hned, jakmile jsou dostupné.

Změny schématu databáze se uplatňují jako verzované migrace při startu služby, takže schéma v produkci vždy odpovídá kódu, který na něm běží.

13. Poskytovatelé

Poskytovatelé, kteří naším jménem zpracovávají údaje — hosting, objektové úložiště, doručování e-mailů, platby a fakturace — jsou s jejich rolí a regionem uvedeni v části 5 informace GDPR a části 8 informací o zpracování údajů.

Nového poskytovatele oznamujeme alespoň 30 dní před zahájením zpracování, aby měl předplatitel, který vznese námitku, čas jednat.

14. Reakce na incidenty

Vedeme interní registr porušení zabezpečení osobních údajů a postupujeme podle postupu zahrnujícího zjišťování, posouzení, omezení a oznámení.

Pokud je pravděpodobné, že porušení povede k riziku pro práva a svobody fyzických osob, bezodkladně — a je-li to možné, do 72 hodin od zjištění — o tom informujeme příslušný dozorový úřad (čl. 33 GDPR); pokud je riziko vysoké, srozumitelným jazykem informujeme i dotčené osoby (čl. 34 GDPR).

Pokud jednáme jako zpracovatel, bezodkladně po zjištění porušení informujeme předplatitele jednajícího jako správce a pomáháme mu s jeho vlastními oznamovacími povinnostmi.

15. Co nemáme

Žádnou online službu nelze učinit absolutně bezpečnou. Tato stránka popisuje opatření, nikoli záruky, a Obchodní podmínky neposkytují žádný závazek dostupnosti ani úrovně služeb.

Nemáme certifikaci ISO/IEC 27001 ani zprávu SOC 2 a služba nebyla podrobena nezávislému penetračnímu testu. Pokud se to změní, právě tato část to uvede.

Dvoufaktorová autentizace pro uživatelské účty zatím není dostupná. Bezpečnost účtu proto spočívá na síle hesla, uzamčení účtu a rychlostních limitech popsaných výše, a proto žádáme heslo, které se nepoužívá nikde jinde.

Služba běží v jediném regionu bez zálohování mezi regiony, a pokud tento region selže, služba je nedostupná, dokud se neobnoví. Uvádíme to proto, že bezpečnostní prohlášení, které uvádí pouze přednosti, nelze použít k rozhodování.

16. Nahlášení zranitelnosti

Pokud najdeš zranitelnost, napiš prosím na info@ravsolutions.eu s popisem, kroky potřebnými k jejímu reprodukování a dotčenou adresou. Přijetí potvrdíme a řekneme ti, jak ji plánujeme řešit.

Dej nám prosím přiměřenou příležitost problém opravit dříve, než ho zveřejníš. Během testování nepřistupuj k údajům, které nejsou tvoje, neupravuj je ani nemaž, nezhoršuj službu pro ostatní a nepoužívej sociální inženýrství proti našemu personálu ani našim poskytovatelům.

Neprovozujeme placený program bug bounty. Vůči osobě, která jedná v dobré víře a v uvedených mezích, nepodnikneme žádné kroky.

17. Změny tohoto prohlášení

Toto prohlášení udržujeme aktuální se službou. Číslo verze a datum účinnosti v horní části stránky ukazují, který text je platný, a starší verze jsou dostupné na požádání.

Když se změní zde popsané opatření, mění se s ním i tato stránka. Dotazy týkající se obsahu lze posílat na info@ravsolutions.eu.

Předvolby cookies

Používáme nezbytně nutné soubory cookie pro přihlášení, pro zabezpečení a pro zapamatování vaší volby. S vaším souhlasem měříme na veřejném webu a v aplikaci také návštěvnost a používání pomocí Google Analytics; načte se pouze tehdy, přijmete-li analytickou kategorii — do té doby se od Googlu nic nevyžaduje. Žádný marketingový nástroj nepoužíváme.

Přečíst zásady cookies