Přeskočit na hlavní obsah

Bezpečnost

Můj Výkaz používá několik vrstev zabezpečení pro ochranu vašich dat. Tato kapitola popisuje i to, co si můžete zkontrolovat nebo nastavit sami: heslo, dvoufázové ověření, export svých dat, smazání účtu a přijetí podmínek.

Požadavky na heslo​

Každé heslo musí splňovat:

PožadavekMinimum
Délka8 znaků
Velké písmenoAlespoň 1
ČísliceAlespoň 1
Speciální znakAlespoň 1 (!@#$%^&* apod.)

Při registraci se heslo navíc porovná s veřejně známými úniky hesel (Have I Been Pwned). K porovnání se neposílá celé heslo, jen jeho krátká část, ze které se heslo nedá zjistit. Heslo z úniku aplikace odmítne a požádá o jiné. Doporučujeme používat správce hesel.

Hesla jsou uložena jen jako jednosměrný otisk (hash) moderním algoritmem s vysokými výpočetními nároky a nikdy se neukládají v čitelné podobě. Zapomenuté heslo proto nikdo nezjistí, jde jen nastavit nové.

Změnu hesla najdete v Nastavení → Heslo a zabezpečení. Po obnovení zapomenutého hesla vás aplikace z bezpečnostních důvodů odhlásí na všech zařízeních.

Ověření e-mailu​

Po registraci e-mailem musíte potvrdit svou adresu kliknutím na ověřovací odkaz. Bez ověření se nepřihlásíte. Přihlášení skončí hláškou, že e-mail není ověřený, a pod ní je tlačítko Odeslat ověřovací e-mail znovu.

  • Odkaz platí 24 hodin. Každý nový e-mail předchozí odkaz ruší, platí vždy ten nejnovější.
  • Po ověření vás aplikace přihlásí bez druhého zadání hesla, jen v prohlížeči, ve kterém jste se registrovali. Pozná ho podle jednorázového klíče, který platí hodinu od registrace (po ověření 30 minut). Klíč nefunguje v jiném prohlížeči ani na jiném zařízení a zruší ho změna hesla. U účtu s dvoufázovým ověřením tohle přihlášení nefunguje.
  • E-mail přijde v jazyce prohlížeče (čeština, slovenština, angličtina).

Správa relací (sessions)​

ParametrHodnota
Platnost relace7 dní, denně se obnovuje
Automatické odhlášeníPo 7 dnech bez aktivity
Souběžné relacePovoleny (více zařízení)

Seznam aktivních přihlášení aplikace zatím neukazuje. Když máte podezření, že se k účtu dostal někdo cizí, změňte heslo a zapněte dvoufázové ověření.

Při odhlášení se z prohlížeče smažou i místní údaje: běžící timer, naposledy navštívené stránky ve vyhledávání a rozpracované náhledy. Kdo se po vás přihlásí na stejném zařízení, je neuvidí.

Omezení počtu pokusů (rate limiting)​

Všechny vstupy jsou chráněny proti hádání hesel a zneužití:

  • Přihlášení, registrace, obnova hesla — přísné limity proti automatizovaným útokům. Například registrace je omezená na 5 pokusů za hodinu z jedné sítě a obnova hesla na 3 odkazy za hodinu na jednu adresu.
  • REST API — 120 požadavků za minutu na API klíč (pro běžné integrace s dostatečnou rezervou).
  • Pozvánky do organizace — 20 pozvánek za hodinu na uživatele a organizaci a 5 pozvánek za hodinu na cílovou e-mailovou adresu (ochrana před spamem).
  • Ostatní vstupy — limity nastavené podle typu operace.

Po překročení limitu aplikace napíše, za jak dlouho to jde znovu. API vrací chybu 429 Too Many Requests s hlavičkou Retry-After.

Ochrana proti útoku na heslo (credential stuffing)​

Aplikace má vícevrstvou obranu proti automatizovaným pokusům o uhodnutí hesla:

VrstvaLimitCo dělá
Podle IP adresy10 pokusů za minutuBlokuje obvyklý brute-force z jednoho zdroje.
Podle e-mailu5 pokusů za 15 minutZachytí distribuovaný útok přes mnoho IP adres.
Zámek účtu5 neúspěšných pokusů → 15 minutÚčet je dočasně uzamčen, žádné další pokusy nejsou přijaty.
Dvoufázové ověření5 neplatných kódů v jednom přihlášení, 10 za sebou → zámek 15 minutOchrana kódu z autentizační aplikace, viz Dvoufázové ověření.

Co když je váš účet zablokován?​

Pokud zadáte špatné heslo 5× během 15 minut, účet se automaticky uzamkne na 15 minut. Při dalším pokusu uvidíte chybu:

Účet je dočasně uzamčen kvůli opakovaným neúspěšným pokusům. Odemkne se v HH:MM. Pokud si nepamatujete heslo, můžete si ho obnovit.

Co dělat:

  • Obnovte si heslo — kliknutím na Zapomenuté heslo? na přihlašovací stránce. Po nastavení nového hesla se zámek okamžitě uvolní.
  • Počkejte 15 minut — zámek se automaticky uvolní.
  • Zkontrolujte e-mail — pokud došlo k zámku poprvé za 24 hodin, dostanete bezpečnostní upozornění s detaily a doporučením změnit heslo, pokud jste to nebyli vy.
info

Pokud používáte přihlášení přes Google účet, tento zámek se na vás nevztahuje. Google má vlastní bezpečnostní mechanismy.

warning

Sdílíte počítač? Pokud váš kolega zkusí přihlášení s vaším e-mailem a špatným heslem, započítá se to do vašeho limitu. V takovém případě dostanete e-mail s upozorněním. Doporučujeme změnit heslo a zvážit zapnutí dvoufázového ověření.

Dvoufázové ověření (2FA)​

Pro zvýšení bezpečnosti doporučujeme zapnout dvoufázové ověření (2FA). Po zapnutí budete při přihlášení zadávat kód z autentizační aplikace. Zapíná se v Nastavení → Heslo a zabezpečení.

Doporučení​

tip
  • Zapněte 2FA všem s rolí Vlastník a Administrátor.
  • Používejte unikátní hesla a nerecyklujte hesla z jiných služeb.
  • U API klíčů nastavte minimální potřebná oprávnění. Klíče dědí roli uživatele.

Šifrování​

  • Veškerá komunikace probíhá přes HTTPS/TLS.
  • API klíče jsou uloženy jako HMAC-SHA256 hash s pepperem. Každý klíč je zabezpečen serverovým tajemstvím, takže únik databáze nestačí k rekonstrukci klíčů.
  • Tajné klíče webhooků se porovnávají způsobem odolným proti útokům na měření času (timing-safe comparison).
  • Webhooky jsou chráněny proti SSRF útokům. Cílová adresa se před odesláním ověří (blokují se privátní IP rozsahy, localhost a IPv6 link-local adresy).

Datová izolace mezi organizacemi​

Pokud jste členem více organizací, aplikace přísně odděluje data jedné organizace od druhé:

  • Každý záznam (výkaz, projekt, klient, faktura, zpráva, nepřítomnost) patří vždy jedné konkrétní organizaci.
  • Přepnutí organizace v horní liště (na telefonu v menu pod avatarem) vždy okamžitě izoluje pohled. Uvidíte pouze data aktivní organizace.
  • API klíče jsou svázané s konkrétní organizací. Klíč vytvořený v organizaci A nelze použít pro přístup k datům organizace B.
tip

Pokud přecházíte mezi organizacemi, ověřte si v horní liště aplikace, ve které organizaci právě pracujete. Různé organizace mohou mít různé role, projekty i oprávnění.

Kde jsou data a co opouští EU​

Data aplikace (výkazy, klienti, faktury, uživatelé) leží na serveru v Německu, tedy v EU. Zálohy a nahrané soubory (přílohy, doklady k nákladům) leží u poskytovatele v EU (Amsterdam), záznamy chyb v Německu.

Z EU ale odcházejí dotazy AI funkcí k poskytovateli AI modelů v USA (Anthropic):

  • AI Reporty posílají text vaší otázky a popis struktury databáze. Výsledky dotazů ani data z databáze AI nedostává.
  • Chat podpory (plovoucí tlačítko Nápověda) posílá text vašich dotazů. Můžete ho vypnout v Nastavení → Vzhled a zápis času.
  • Čtení dokladů posílá soubor dokladu.

Když AI od Anthropicu nefunguje, zaskočí záložní AI od OpenAI (OpenAI Ireland) se stejnými údaji. Poskytovatelé tato data nepoužívají k trénování modelů. Seznam zpracovatelů a právní základ přenosu mimo EU je ve smlouvě o zpracování osobních údajů na mujvykaz.cz/dpa a na stránce mujvykaz.cz/security.

Podmínky a smlouva o zpracování osobních údajů​

Pro údaje, které organizace do aplikace zadává (výkazy, nepřítomnosti, odměny, zprávy), je správcem organizace a Můj Výkaz zpracovatelem. Smlouva o zpracování osobních údajů podle čl. 28 GDPR je zveřejněná na mujvykaz.cz/dpa a je součástí podmínek používání. Uzavírá se spolu s nimi, nic se nepodepisuje zvlášť. Kdo chce podepsaný exemplář, napíše na info@mujvykaz.cz a dostane ho ve stejném znění. O zamýšlené změně zpracovatelů dostane vlastník organizace e-mail nejméně 14 dní předem.

Nová organizace podmínky i smlouvu přijímá v posledním kroku průvodce založením organizace. Bez zaškrtnutí souhlasu organizace nevznikne.

Organizace založené dříve vidí nad stránkou pruh Nové podmínky a smlouva o zpracování osobních údajů s odkazy na Podmínky používání a Smlouvu o zpracování. Přijmout je za organizaci může vlastník nebo administrátor tlačítkem Přijmout za organizaci. Ostatní role pruh nevidí.

  • Do 23. 10. 2026 jde pruh odložit tlačítkem Připomenout zítra (křížek). Pro organizaci platí nové znění od tohoto data a do něj můžete službu ukončit, pokud nesouhlasíte.
  • Od 23. 10. 2026 se pruh odložit nedá a zůstane nad stránkou, dokud podmínky nepřijmete. Aplikaci tím nic neblokuje.
  • Po přijetí pruh zmizí. Objeví se znovu, až se znění podstatně změní.

Aplikace si ukládá, kdo, kdy, které znění a z jaké IP adresy přijal. Podmínky a zásady ochrany údajů najdete také v menu pod avatarem: Nápověda a příručky → dole Ochrana údajů a Obchodní podmínky.

Soukromí a data​

Osobní údaje a účet spravujete v Nastavení → Soukromí a data (avatar vpravo nahoře → Nastavení). Karta se jmenuje Můj účet a vidí ji všechny role.

Export osobních dat (GDPR čl. 20)​

Každý uživatel si může kdykoliv stáhnout všechna svá osobní data v JSON formátu: Exportovat moje data → Stáhnout JSON. Soubor se jmenuje muj-vykaz-export.json. Export jde stáhnout nejvýš jednou za hodinu.

Export obsahuje:

  • Profil — jméno, e-mail, telefon, datum souhlasu a registrace a také zdroj registrace a vaši odpověď na otázku „Jak jste se o nás dozvěděli?“.
  • Vaše organizace — název, vaše role a pozice, zda jste aktivní, datum připojení, narozeniny (den a měsíc, pokud jsou vyplněné), města vybraná pro počasí (i obec uložená z tlačítka Moje poloha) a nastavení Můj den (dny označené jako volno, volba připomínek).
  • Výkazy — popis, časy, dobu (včetně původní doby před úpravou), stav, fakturovatelnost, měnu, projekt, typ práce, událost z Google Kalendáře a metadata. Částku výkazu export obsahuje jen tam, kde vám organizace částky ukazuje. Má-li vypnuté zobrazení sazeb členům, export ji vynechá.
  • Zprávy — jen ty, které jste sami napsali (cizí zprávy z konverzací se neexportují), a údaje o konverzacích, kterých jste se účastnili (název, druh, od kdy do kdy).
  • Notifikace.
  • API klíče (jen název, rozsah a datum, bez hodnoty klíče) a připojené aplikace (AI asistenti: název, rozsah, kdy byly naposledy použity).
  • Nepřítomnosti — ruční dny volna po měsících, vaše žádosti o nepřítomnost a záznamy o tom, které nepřítomnosti kolegů se vám oznamovaly.
  • Odměny — odměny nad rámec mzdy a historie vašeho měsíčního nákladu (mzda nebo paušál s platností od měsíce, podmínky přesčasů a nevykázaných hodin).
  • Náklady, které jste založili — popis, datum, částky, měnu, středisko, kategorii, dodavatele, DPH, stav, poznámku a odkaz na účtenku. Cizí náklady export neobsahuje. Dále doklady, které jste nahráli (název souboru a údaje přečtené z dokladu) a importy nákladů, které jste spustili.
  • Rozvrh pracovního týdne od jednotlivých měsíců.
  • Štítky týmu, které máte přiřazené.
  • Úkoly, kde jste autorem nebo řešitelem, vaše komentáře a údaje o vašich přílohách (soubory samotné se neexportují).
  • Auditní log vašich vlastních akcí za posledních 365 dní. Peněžní údaje jiných lidí (mzdy, sazby) jsou z něj vynechané.
info

Více organizací: pokud jste členem více organizací, každý záznam v exportu nese pole orgId a orgName, abyste poznali, z které organizace data pocházejí. Máte právo vědět, kdo je správcem jednotlivých dat.

Smazání účtu (GDPR čl. 17)​

Nastavení → Soukromí a data → Smazat účet. Smazání je nevratné.

  1. Z bezpečnostních důvodů jde účet smazat jen krátce po přihlášení, nejvýš 10 minut. Když jste přihlášeni déle, aplikace nabídne tlačítko Odhlásit a přihlásit znovu. Po novém přihlášení (heslem, přes Google nebo s ověřením ve dvou krocích) máte 10 minut.
  2. Do pole opište svou přihlašovací e-mailovou adresu. Heslo se nezadává.
  3. Klikněte na Trvale smazat můj účet.

Co se stane: váš profil v každé organizaci se anonymizuje (jméno se změní na „Smazaný uživatel“, e-mail, fotka, pozice a data nástupu a odchodu se odstraní), smažou se přihlašovací údaje a propojení s Googlem, historie vašich odměn, rozvrh a vazby na nadřízené. Výkazy zůstávají organizaci (patří jí), popis u nich se ale změní na „Smazaný záznam“.

Smazat účet nemůže vlastník organizace (musí nejdřív převést vlastnictví) ani jediný administrátor organizace (musí nejdřív přidat dalšího administrátora nebo organizaci smazat). Smazání celé organizace popisuje kapitola Smazání organizace.