Kde sú údaje
Aplikácia aj databáza bežia na serveri spoločnosti Hetzner v dátovom centre v Helsinkách, vo Fínsku. Tam sú aj zálohy. Databáza nie je dostupná z internetu: prijíma spojenia len zo samotného servera.
Spojenie s vaším prehliadačom ide cez Cloudflare, e-maily odosiela Brevo. Kto ďalší s údajmi pracuje a kde, je v zozname sprostredkovateľov.
Šifrované spojenie
- Taktovka sa otvára len cez HTTPS. Prehliadač si podľa hlavičky HSTS na rok zapamätá, že inak sa k nám pripájať nesmie, a to platí aj pre všetky naše subdomény.
- Stránky posielajú prehliadaču pravidlá, odkiaľ smú načítať skripty (Content Security Policy). Cudzia stránka si aplikáciu nemôže vložiť do rámca a žiadna stránka Taktovky nesmie pýtať polohu telefónu.
Každá firma zvlášť
Všetky firmy sú v jednej databáze, ale každý riadok v nej nesie značku firmy, ktorej patrí. Keď aplikácia pracuje pre vás, povie databáze, o ktorú firmu ide, a databáza jej potom vydá len riadky s touto značkou. Rozhoduje o tom databáza (row-level security), nie podmienka v kóde aplikácie. Keby sme v kóde spravili chybu, cudzie údaje sa neukážu, pretože ich databáza nevydá. Aplikácia sa k databáze pripája účtom, ktorý toto pravidlo obísť nemôže. Automatické testy to overujú na skutočnej databáze.
Vo vnútri firmy rozhoduje rola. Zamestnanec vidí svoje zmeny, svoju dochádzku a zverejnený rozpis. Druh neprítomnosti (PN, OČR) vidí len vlastník a vedúci s oprávnením pre mzdy; ostatní vidia len „neprítomnosť“.
Prihlásenie bez hesiel
- Prihlasujete sa kódom z e-mailu alebo účtom Google. Hesiel u nás niet, takže nie je čo uniknúť ani čo použiť z úniku inde.
- Kód má šesť číslic a platí 15 minút. V databáze nie je samotný kód, len jeho odtlačok (HMAC), ktorý bez tajného kľúča servera nič neprezradí. Počet kódov aj nesprávnych pokusov je obmedzený pre e-mail aj pre sieťovú adresu, z ktorej prichádzajú.
- Prihlásenie drží cookie, ku ktorej sa skripty na stránke nedostanú a ktorá ide len cez HTTPS; platí 14 dní. V profile vidíte zariadenia, na ktorých ste prihlásení, a odhlásite jedno alebo všetky naraz.
- Kľúče k API a prístupy pripojených AI asistentov ukladáme len ako odtlačok. Kľúč sa ukáže raz, pri vytvorení, a asistenta odpojíte v profile, v časti Pripojené aplikácie.
Čo sa nedá prepísať
Zverejnené verzie rozpisu, potvrdenia od zamestnancov, záznam o doručení oznámení a auditný záznam sa do databázy len pridávajú. Databáza nemá pravidlo, ktoré by dovolilo ich zmeniť alebo zmazať, a to ani vlastníkovi firmy. Pri kontrole z inšpektorátu tak platí, čo ste naozaj zverejnili a kedy.
Ručný zápis a oprava dochádzky sú vždy s dôvodom. Zamestnanec ten dôvod vidí a auditný záznam drží hodnotu pred opravou aj po nej.
Zálohy
- Celú databázu zálohujeme každú noc.
- Každú zálohu hneď po vytvorení skúšobne obnovíme do samostatnej databázy a overíme, že v nej sú všetky tabuľky. Ak obnova zlyhá, prevádzkovateľ dostane e-mail.
- Zálohy držíme 35 dní, staršie sa samy zmažú.
- Ležia na samostatnom disku v tom istom dátovom centre v Helsinkách a čítať ich môže len správca servera.
Kto má prístup
Taktovku prevádzkuje jeden človek. K serveru, databáze a zálohám má prístup len on. Na server sa dá prihlásiť len kľúčom SSH, heslom nie. Tajné kľúče aplikácie sú v súbore na serveri, ktorý môže čítať len správca, a nie sú v zdrojovom kóde.
Nová verzia aplikácie sa na server dostane len z hlavnej vetvy kódu. Ak po nasadení neodpovedá, server sám vráti predchádzajúcu verziu.
Dostupnosť a výpadky
Server sa každých päť minút pýta sám seba, či aplikácia odpovedá, a keď nie, pošle prevádzkovateľovi e-mail. Keby spadol celý server, túto správu by už nemal kto poslať. Preto Taktovku sleduje aj druhý server u iného poskytovateľa v inej krajine a jeho výsledky sú verejne na status.taktovka.com. Stránka stavu je mimo nášho servera, takže sa otvorí aj počas výpadku.
Čo nezbierame
- Polohu. Dochádzka ide cez QR kód pri dverách, ktorý sa mení každú minútu, takže telefón nemusí zapínať GPS a aplikácia o polohu ani nepožiada.
- Odtlačky prstov, tvár ani inú biometriu. Na dochádzku netreba žiadny terminál.
- Diagnózy. Pri PN aplikácia eviduje druh neprítomnosti a dátumy, na diagnózu sa nepýta.
- Dátum narodenia pýtame len preto, aby rozpis vedel, kto je mladistvý.
- Analytika beží len na verejných stránkach a len so súhlasom v lište cookies. Na obrazovkách aplikácie s údajmi vašich ľudí sa nenačíta.
- Platby spracúva Polar. Číslo karty zadávate u neho a k nám nechodí.
Previerky
V septembri 2026 sme kód prešli v troch kolách bezpečnostných previerok. Robili sme ich sami, nie externá firma. Každú časť, ktorá otvára prístup zvonka, ako API alebo pripojenie AI asistentov, sme pred spustením rozobrali z pohľadu útočníka. Nájdené chyby opravujeme podľa závažnosti.
Nahlásenie zraniteľnosti
Ak nájdete v Taktovke bezpečnostnú chybu, napíšte na hello@taktovka.com s predmetom „Bezpečnosť“. Popíšte, čo ste našli a ako to zopakovať. Píšte po slovensky, česky alebo anglicky. Prijatie potvrdíme do 5 pracovných dní a potom vám dáme vedieť, ako chybu riešime a kedy bude opravená.
Prosíme:
- skúšajte len na vlastnom účte a vlastnej firme, nie na údajoch iných,
- nezaťažujte službu automatickými skenermi a neskúšajte ju vyradiť,
- chybu nezverejňujte, kým ju neopravíme.
Kto chybu hľadá a nahlási v dobrej viere a drží sa týchto pravidiel, proti tomu nepodáme žalobu ani trestné oznámenie.
Odmeny za nahlásenie zatiaľ nevyplácame. Kontakt je aj v súbore security.txt podľa štandardu RFC 9116.
Ak by došlo k porušeniu ochrany osobných údajov, postupujeme podľa Ochrany údajov: dozornému orgánu ho oznámime do 72 hodín a pri údajoch zamestnancov bez zbytočného odkladu aj zákazníkovi.