Dôvera

Bezpečnosť

Všetko nižšie popisuje systém tak, ako naozaj beží — overené priamo na produkčnom stroji, nie odpísané zo šablóny politiky. Kde opatrenie neexistuje, táto stránka to povie, namiesto toho aby ho vynechala.

Hlásenie zraniteľnosti: [email protected] · security.txt (RFC 9116)

Kde dáta žijú

Všetky produkčné dáta ležia na hardvéri prevádzkovanom firmou Hetzner Online GmbH v lokalite Norimberg (nbg1), Nemecko. Neexistuje riadená databáza tretej strany ani replika mimo EÚ: PostgreSQL, connection pooler aj vyhľadávací engine bežia na tom jednom stroji.

Databáza nie je dostupná z internetu. PostgreSQL, pooler, vyhľadávací engine aj aplikačný proces sú naviazané na loopback rozhranie; zvonku odpovedajú len porty HTTP, HTTPS a SSH. SSH prijíma výhradne verejné kľúče — heslová a keyboard-interactive autentifikácia je vypnutá — a opakované zlyhania sa automaticky blokujú.

Webové fonty servírujeme z vlastného origin servera, takže vykreslenie stránky neodovzdá IP adresu návštevníka font CDN. Úplný zoznam tretích strán, ktoré prichádzajú do styku s dátami, je zverejnený osobitne. Sub-processory →

Dáta pri prenose

Virtuálny host entyrix.com dojednáva výhradne TLS 1.2 a TLS 1.3; staršie verzie protokolu neponúka. HSTS je nastavené na jeden rok vrátane subdomén, takže prehliadač, ktorý stránku raz videl, odmietne prejsť na nešifrovaný prenos.

Každá odpoveď nesie content security policy, ktorá blokuje pluginy aj rámovanie tretími stranami a viaže odosielanie formulárov na náš vlastný origin, spolu s ochranou proti MIME-sniffingu, politikou no-referrer a permissions policy, ktorá vypína kameru, mikrofón, geolokáciu, platby a ďalšie mocné prehliadačové API. Dajú sa prečítať z ľubovoľnej odpovede jedinou požiadavkou.

curl -sI https://entyrix.com/ | grep -i strict-transport

Prihlasovacie údaje a osobné údaje

OpatrenieAko
API kľúče sa nikdy neukladajú v čitateľnej podobeSHA-256 odtlačok pri autentifikácii (src/api/middleware/auth.ts)
IP adresy sa nikdy neukladajú v surovej podobeSHA-256 z IP a soli, ktorá sa mení o polnoci UTC, takže korelácia naprieč dňami je zámerne ťažká (src/lib/ip-hash.ts)
Prístup k osobným údajom sa loguje pri každej odpovediRiadok v gdpr.access_log pre každú odpoveď na route s osobnými údajmi — z toho sa odpovedá na žiadosť dotknutej osoby aj na vyšetrovanie zneužitia
Autentifikačné tajomstvá sa porovnávajú v konštantnom časecrypto.timingSafeEqual s kontrolou dĺžky, takže nesprávny token neprezradí nič cez časovanie
Escapovanie výstupu a whitelist URL sú na jednom miesteJeden escapovací helper a jeden whitelist protokolov pre každý odkaz a atribút z externých dát — neimplementuje sa znova v každej šablóne
Odchádzajúce webhooky sú podpísané a chránené proti SSRFHMAC SHA-256 podpis pri každom doručení, privátne a link-local ciele sú zablokované
Rate limit na každej route600 požiadaviek za minútu na API kľúč, pri neautentifikovanej prevádzke na IP; výnimku majú len liveness a readiness sondy

Zaobchádzanie s osobnými údajmi je užšie než opatrenia vyššie a je zdokumentované samostatne: fyzické osoby sa nevydávajú, nie sú len skryté v rozhraní, dátumy narodenia sa u dospelých redukujú na rok a u maloletých potláčajú, a rovnaké pravidlá platia cez API aj MCP server ako na webe. Ochrana osobných údajov →

Zálohy

ČoFrekvenciaKdeRetencia
Offsite, šifrované (nenahraditeľná množina)Denne 03:30 UTCCloudflare R2, šifrované na strane klienta14 denných · 8 týždenných · 12 mesačných · 7 ročných
API kľúčeDenne 02:30 UTCDump na hostiteľovi30 dní + 12 mesiacov
Aplikačné tabuľky (PostgreSQL)Týždenne, nedeľa 03:00 UTCDump na hostiteľovi3 týždenné + 1 mesačný (limitované diskom)
Súbor s tajomstvami (.env)Týždenne, nedeľa 04:00 UTCAES-256-CBC + PBKDF2, chránené heslomJob odmietne bežať nešifrovane

Offsite job pokrýva nenahraditeľnú množinu — schému s osobnými údajmi a aplikačné tabuľky s kľúčmi, odbermi, stavom monitoringu a sankčnými zhodami — a šifruje ju ešte na tomto serveri, takže poskytovateľ úložiska drží šifrovaný text, ktorý nevie prečítať. Objemný korpus registrov je zámerne vynechaný: dá sa znovu odvodiť z verejných zdrojov, z ktorých pochádza, takže jeho cesta obnovy je opätovné načítanie, nie obnova zo zálohy.

Obnova — a ako vieme, že funguje

Testy obnovy sú automatizované, nie sľúbené. Každý utorok job stiahne najnovší offsite snapshot, obnoví ho do dočasnej databázy, overí, že sedia očakávané tabuľky a počty riadkov, a dočasnú databázu zmaže. Zlyhanie upozorní prevádzkovateľa. Neotestovaná záloha nie je záloha, takže toto beží bez ohľadu na to, či sa niekto pozerá.

RPO (bod obnovy): najviac 24 hodín pre nenahraditeľnú množinu, ohraničené denným behom o 03:30 UTC. Obsah registrov obnovený opätovným načítaním sa vráti na čerstvosť svojho zdroja, ktorá je zverejnená per zdroj na status stránke.

RTO (čas obnovy): menej než 4 hodiny je náš zdokumentovaný cieľ — a je to cieľ, nie nameraná hodnota. Obnova je skriptovaná od začiatku do konca a cesta obnovy z offsite kópie sa preveruje týždenne, ale úplná časovaná obnova celej služby zatiaľ neprebehla, takže číslo nebudeme prezentovať, akoby prebehla. Ak zmluva potrebuje záväzné RTO, je to téma na rozhovor pred podpisom, nie po ňom.

Čo nemáme

MedzeraČo to pre vás znamená
Žiadna certifikácia ISO 27001 ani SOC 2Nemáme auditovanú certifikáciu. Opatrenia sú zdokumentované a overiteľné, nie potvrdené treťou stranou. Ak vaše obstarávanie vyžaduje atestáciu, povedzte nám to skôr, než začnete hodnotenie.
Produkčný zväzok nie je šifrovaný v pokojiZálohy, ktoré opúšťajú server, sú šifrované na strane klienta a súbor s tajomstvami je šifrovaný osobitne, ale samotný bežiaci zväzok stojí na fyzickej a logickej izolácii poskytovateľa, nie na šifrovaní celého disku. Drvivá väčšina korpusu sú dáta z verejných registrov; schéma s osobnými údajmi a úložisko prihlasovacích údajov sú presne to, čo pokrýva šifrovaná offsite kópia.
Jeden región, jeden hostiteľJeden server v jednom dátovom centre. Neexistuje hot standby, takže výpadok toho hostiteľa je výpadkom služby. Obnova beží z offsite zálohy — pozri ciele obnovy vyššie.
Žiadny bug-bounty programZa hlásenia neplatíme. Čítame však každé a radi vás uvedieme, ak o to stojíte.

Hlásenie zraniteľnosti

Píšte na [email protected]. Tá istá adresa je zverejnená v /.well-known/security.txt podľa RFC 9116, po slovensky alebo po anglicky.

Priložte prosím dosť detailov na reprodukciu problému a dajte nám rozumný čas na opravu pred zverejnením. Nikoho, kto hlási v dobrej viere a neexfiltruje dáta, nedegraduje službu ani nepristupuje k údajom iných ľudí, nebudeme stíhať. Nespúšťajte prosím automatické skenery proti produkcii — rate limiter vás jednoducho zablokuje a nálezy budú šum.

Čokoľvek, čo nie je zraniteľnosť — zmluvy, otázky k dátam, žiadosť dotknutej osoby — patrí na [email protected] alebo cez stránky nižšie.