Přeskočit na hlavní obsah

Bezpečnost a tok dat

Kde vaše data leží, co je zašifrované, jak je ověřené a omezené připojení AI, co Assetli loguje, co vidí poskytovatel AI a co zatím neumíme.

Naposledy aktualizováno: 17. září 2026

Tahle stránka je psaná pro technicky zdatného a skeptického čtenáře. Každé tvrzení níže bylo ověřeno proti kódu aplikace k datu uvedenému výše. Co je omezení a ne funkce, najdete v kapitole Co zatím neumíme, označené jako plánované.

Shrnutí

Dvě navazující stránky jdou hlouběji: Kdo zpracovává vaše data vypisuje každou třetí stranu a co dostane, Jak dlouho se data uchovávají uvádí dobu uchování každého záznamu.

  • Assetli se nikdy nepřipojuje k vaší bance a nedrží přihlašovací údaje do bankovnictví. Data přicházejí importem souboru, ručním zadáním, nebo volitelnou synchronizací z Wallet by BudgetBakers pomocí tokenu té aplikace.
  • Připojení AI stojí na OAuth 2.1 s PKCE, souhlasnou obrazovkou, krátce platnými tokeny uloženými jako otisk, jedním profilem na konektor a odděleným oprávněním ke čtení a k zápisu. Zápis vyžaduje placený tarif.
  • Vaše konverzace s AI se k Assetli nedostane. Server dostane jen volání nástrojů. Čtení se nelogují, zápisy se logují 12 měsíců.
  • Na API neběží žádná knihovna třetí strany pro sledování chyb ani analytiku. Analytika v prohlížeči na webových stránkách je podmíněná souhlasem a provoz API nikdy nevidí.

Kde data leží

CoKde
Aplikace a APIVercel, frankfurtský region (fra1)
DatabázeMongoDB Atlas
Nahrané soubory (výpisy, fotografie, dokumenty)Objektové úložiště: Vercel Blob nebo Cloudflare R2 podle konfigurace nasazení
Veřejná referenční data (ceníky, statistiky)Cloudflare R2
Denní záloha databázeArchiv z mongodump zašifrovaný AES-256 ještě předtím, než opustí server sestavení, uložený jako artefakt GitHub Actions
Měnové kurzyStahují se z frankfurter.app (kurzy ECB). Dotaz nese jen kódy měn
PlatbyStripe. Údaje o kartě se k Assetli nedostanou

Přihlášení do Assetli

  • E-mailem a heslem. Hesla se ukládají jako otisk algoritmem bcrypt.
  • Přihlášení přes Google nebo Facebook (OAuth).
  • Volitelné dvoufaktorové ověření aplikací TOTP se záložními kódy. Tajemství pro TOTP je zašifrované.
  • Účet se po opakovaných neúspěšných pokusech o přihlášení uzamkne.
  • Relace drží cookie s příznakem HTTP-only, vydává ji knihovna Auth.js.

Šifrování

  • Veškerý provoz běží přes HTTPS.
  • Šifrování na úrovni polí algoritmem AES-256-GCM (verzovaný zápis, náhodný inicializační vektor, autentizační značka) chrání: číslo účtu, IBAN a poznámky u bankovních účtů, token pro Wallet by BudgetBakers, tajemství dvoufaktorového ověření, vaše vlastní API klíče pro poskytovatele AI a poznámky Family Legacy. Zašifrovaná pole se nedají prohledávat dotazem do databáze a dešifrují se až při zobrazení záznamu.
  • Přístupové a obnovovací tokeny OAuth, autorizační kódy a API klíče se ukládají jako otisk SHA-256. Čitelná podoba existuje pouze ve vašem klientovi.

Připojení AI krok za krokem

Tohle se stane, když se Claude nebo ChatGPT zeptáte na něco, co potřebuje vaše data.

  1. Váš klient zavolá POST /api/mcp s tělem JSON-RPC, tedy s názvem nástroje a jeho argumenty. Nic dalšího z konverzace se neodesílá.
  2. Middleware požadavek propustí. Na téhle cestě není heslo pro celý web a neloguje se tělo požadavku.
  3. Ověření tokenu. Token z hlavičky Authorization: Bearer se zahashuje a vyhledá v databázi. Musí existovat, být neexpirovaný (1 hodina), nezrušený, a jeho příjemce musí sedět na hostitele. Ze záznamu se získá vaše ID uživatele, profil zvolený při souhlasu, oprávnění a ID klienta.
  4. Oprávnění, tarif a token z náhledu. Zápisový nástroj vyžaduje oprávnění write a tarif Premium nebo Max. Bez kteréhokoli z nich volání skončí chybou a nic se neprovede. Bez obojího se zápisové nástroje klientovi ani nenabídnou. Zápis navíc musí nést potvrzovací token, který vydal jeho náhledový nástroj pro tytéž argumenty v posledních deseti minutách; bez něj, nebo s jinými argumenty, se zápis odmítne.
  5. Spuštění nástroje. Obsluha se dotáže MongoDB s filtrem na vašeho uživatele a profil. Výsledky se poskládají do pevně dané sady polí.
  6. Audit (jen u zápisů). Název nástroje, ID klienta, výsledek a shrnutí argumentů se uloží do kolekce mcp_audit_logs s expirací po 365 dnech. Částky, kategorie, symboly, data a názvy cílů zůstávají; volný text (popisy, poznámky, obchodník, obsah výpisu) se ukládá jen jako délka, obsah výpisu navíc jako otisk. Samotný záznam nese původ (createdVia: MCP a ID konektoru) a každý seznam, kde se zobrazuje (transakce, obchody, odečty, cennosti, rozpočty), ho označí štítkem „AI“, jehož popisek uvádí kanál a nástroj.
  7. Odpověď. Výsledek v JSON se vrátí klientovi, který ho předá modelu.

Co Assetli vidí a co ne

Vidí Assetli?
Váš dotaz a odpovědi modeluNe. Zůstávají v AI klientovi.
Název nástroje a argumentyAno, po dobu zpracování požadavku.
Argumenty zápisových voláníAno, jako shrnutí bez volného textu, v auditním logu na 12 měsíců.
Argumenty čtecích voláníNeukládají se.
Výsledky nástrojůSpočítají se a vrátí, neukládají se.
Identita klientaRegistrovaný název konektoru a jeho ID. V běžných provozních logech hostingu také IP adresa a identifikace prohlížeče serveru AI klienta.

Věta „vidíme jen to, co při klikání v aplikaci” platí přesně u čtení. U zápisu si Assetli nechává o něco víc než při kliknutí na webu, totiž auditní záznam.

Co vidí poskytovatel AI

Poskytovatel, který provozuje váš model (Anthropic u Claude, OpenAI u ChatGPT, Google u Gemini), vidí vaše dotazy, výsledky nástrojů, a tedy i každé číslo, které nástroj vrátí. S těmi daty se nakládá podle podmínek daného poskytovatele, ne podle podmínek Assetli. Nástroje vracejí táž data, jaká vidíte v aplikaci: zůstatky, transakce s popisem a obchodníkem, pozice, hodnoty a adresy nemovitostí, registrační značky vozidel, dluhy. Nikdy nevracejí čísla účtů, IBAN, hesla, tokeny ani data jiných uživatelů.

Asistent v aplikaci funguje jinak. Tam posílá vaše zprávy a finanční snímek Anthropicu (nebo poskytovateli, jehož klíč jste zadali) samotné Assetli a konverzaci ukládá k vašemu profilu. Viz AI asistent.

Rozsah tokenu

  • Jeden uživatel, jeden profil. Token nese profil, který jste zvolili při souhlasu. Konektor profily přepínat nemůže.
  • Čtení, nebo zápis. Uděluje se na souhlasné obrazovce, zápis zahrnuje čtení. Server oprávnění kontroluje při každém volání.
  • Vázaný na příjemce. Token vydaný pro assetli.app kterýkoli jiný hostitel odmítne.
  • Krátce platný. Přístupový token 1 hodinu, obnovovací 60 dní a při každém obnovení se vymění za nový.
  • Odvolatelný. Nabídka účtu (vpravo nahoře) → Připojení AI (MCP) vypíše každý konektor a najednou zruší všechny jeho tokeny.
  • Bez sdílení tajemství. Klienti jsou veřejní OAuth klienti s PKCE, žádné klientské tajemství neexistuje a vaše heslo Assetli nikdy neopustí.
  • Jen endpoint MCP. Token konektoru třetí strany přijímá /api/mcp a nic jiného. REST API přijímá Bearer tokeny jen od vlastní mobilní aplikace.

Tentýž OAuth server bude vydávat tokeny i pro mobilní aplikaci Assetli, která je zatím ve vývoji. Je to vlastní aplikace, takže souhlasnou obrazovku přeskočí, ale projde stejným přihlášením, stejným PKCE i stejnými kontrolami tokenu.

Logování

Co se zapisuje a kam:

LogObsahUchování
Auditní log MCP (databáze)Uživatel, profil, ID klienta, název nástroje, úspěch nebo chyba, shrnutí argumentů bez volného textu. Jen zápisy. Vidíte ho v nabídce účtu → Připojení AI (MCP).365 dní
Provozní log požadavků (Vercel)Metoda, cesta, stav, doba zpracování, IP klienta. Bez těl požadavků.Podle nastavení tarifu Vercelu
Výstup funkcí (Vercel)Chybové hlášky, které aplikace vypíše při selhání, například chybu databáze. Ne těla požadavků.Podle nastavení tarifu Vercelu
Administrátorský chybový log (databáze)Chyby aplikace z vybraných endpointů a z webového rozhraní. Na cestě MCP se nepoužívá.Spravuje administrátor

Co tam naopak není:

  • Žádný Sentry, Datadog, PostHog ani podobná knihovna v API. Závislost toho druhu v projektu neexistuje.
  • Žádný middleware, který by zachytával těla požadavků nebo odpovědí.
  • Google Analytics a Microsoft Clarity se načítají jen v prohlížeči na webových stránkách a až po souhlasu s cookies. Provoz API a MCP se k nim nikdy nedostane.

Další propojení

  • Wallet by BudgetBakers (Premium): vložíte API token z Walletu, Assetli ho uloží zašifrovaný a z Wallet API pouze čte. Nikdy do Walletu nezapisuje.
  • API klíče (ask_…): samostatný typ klíče jen pro čtení, určený pro endpoint s přehledem v JSON a pro datové API energií. Ukládají se jako otisk SHA-256, dají se omezit na čtení, opatřit expirací a zrušit v Nastavení. Připojení AI je nepoužívá.
  • Doplněk do Google Sheets: vlastní typ tokenu, který přijímají jen dva endpointy u hypoték. Je vypsaný a odvolatelný na téže stránce připojení.
  • Doplněk do prohlížeče pro prověrku nemovitosti: přečte inzerát otevřený ve vašem prohlížeči a jeho text pošle analytickému endpointu. Server na realitní portály sám nechodí.

Vaše práva k datům

  • Export: Nastavení → Export dat vytvoří soubor se všemi záznamy, které vlastníte, napříč kolekcemi, bez autentizačních tajemství a dočasných logů.
  • Smazání: Nastavení → Smazat účet odstraní uživatele a každý záznam, který je na něj navázaný, včetně záznamů vlastněných skupinami a odkazem Family Legacy a včetně souborů. Vyžaduje se potvrzovací fráze.

Co zatím neumíme

Raději to vypíšeme, než abyste to našli sami.

  • Potvrzení se vynucuje jako párování, ne jako souhlas. Server odmítne zápis, který nemá token z odpovídajícího náhledu pro tytéž argumenty z posledních deseti minut. Jestli jste náhled opravdu viděli a řekli ano, je pořád na AI klientovi; Claude i ChatGPT přidávají vlastní dotaz na povolení nástroje.
  • Doba uchování logů na straně hostingu závisí na tarifu Vercelu a aplikace ji neřídí.

Hlášení bezpečnostního problému

Napište na info@assetli.app a do předmětu uveďte „security”. Prosíme, netestujte na datech jiných uživatelů.