1. Základní bezpečnostní principy
- Minimalizace dat – neukládáme nic, co asistent skutečně nepotřebuje k funkci.
- Oddělení tajemství – API klíče, hesla, přístupové tokeny nikdy nejsou tvrdě v kódu, ale ve Secrets/Vault.
- Šifrování „in transit“ – veškerá komunikace přes TLS 1.2+ (HTTPS, mTLS tam, kde můžeme).
- Šifrování „at rest“ – disky (cloud storage, DB) šifrované (AES‑256).
- Jemnozrnná kontrola přístupu – role, policy, princip nejmenších oprávnění.
- Audit & detekce – logujeme přístup k citlivým sloupcům, klíčům, exportům.
- Rotace a expirace – klíče a tokeny mají definovanou životnost, automaticky rotujeme.
2. Co konkrétně „šifrujeme“
Vrstva | Příklad citlivých dat | Opatření |
---|---|---|
Databáze / úložiště | e‑maily, objednávky, zákaznické poznámky | Transparentní šifrování disku + sloupcové/field‑level šifrování (např. email_hash) |
Prompt / kontext | Interní dokumenty, smlouvy, cenové kalkulace | Pseudonymizace, maskování entit před odesláním do modelu |
Logy a monitoring | Chybové zprávy s identifikátory | Scrubování (regex, DLP), tokenizace před uložením |
Zálohy | Dump databáze | Šifrování před uložením (age / GPG / KMS wrap) |
Dočasné cache | Embeddings, odpovědi | Šifrovaný cache store (např. Redis TLS + AOF na šifrovaném disku) |
3. Postup implementace (praktický checklist)
A. Kategorizace dat
- Seznam tabulek / polí → štítek: public / internal / confidential / restricted.
- Vymezíme, co vůbec může do AI modelu (whitelist).
B. Šifrování klíčových polí
- Column/Field level: citlivé hodnoty (např.
email
,phone
,iban
) ukládáme jako:value_encrypted
(AES‑GCM)value_hash
(SHA‑256 se salt) pro vyhledávání rovností.
- Keys drží KMS (AWS KMS / GCP KMS / Azure Key Vault). Aplikace nikdy „netvrdí“ master key.
C. Pseudonymizace & maskování do promptu
- Před sestavením promptu běží pipeline:
- NER / regex filtry (e‑maily, čísla objednávek, osobní údaje).
- Nahrazení placeholderem (např.
<<OBJEDNAVKA_123>>
). - Mapovací tabulka držena lokálně (neposílá se ven).
- Po odpovědi reverzní substituce – jen tam, kde je to povoleno.
D. Přenos & API volání
- Vynucené TLS, kontrola certificate pinning (pro interní služby).
- Žádné citlivé hodnoty v URL query parametrech (pouze v těle POST).
E. Secrets management
- Vault (HashiCorp / cloud secrets).
- Politika: žádný „secret“ ve verzovacím systému. Pre-commit hook to kontroluje.
- Rotace: definováno v CI pipeline (např. měsíčně / při incidentu okamžitě).
F. Logging / Monitoring
- Před uložením logů anonymizujeme PII (Data Loss Prevention filtr).
- Oddělené logy pro přístup k dešifrovací funkci (security feed).
- Alerty při anomáliích (neobvyklý objem dešifrování).
G. Zálohy & exporty
dump.sql
→ okamžitě pipeline šifruje symetricky → klíč zabalen KMS.- Přenášení záloh jen přes zabezpečené kanály (SFTP/TLS, žádný e‑mail).
H. Testy & ověřování
- Unit test: de/encrypt funguje, chyby se logují bez plaintextu.
- Penetrační test: zkouší získat klíče z runtime (by design impossible bez role).
- Chaos test: expirovaný klíč → aplikace musí bezpečně obnovit z KMS.
4. Typy šifrování a kdy je použít
Typ | Kdy | Poznámka |
---|---|---|
AES‑256 (GCM) symetrické | Pole, soubory, zálohy | GCM = autentizace integrity |
TLS 1.3 | Přenos dat | Default – žádné fallbacky na zastaralé šifry |
Hash (SHA‑256 + salt/pepper) | Vyhledávání rovnosti (email) | Není dešifrovatelné, jen porovnání |
Deterministic encryption (AEAD) | Potřebuješ GROUP BY / JOIN | Pozor na pattern leakage |
Format‑preserving (FPE) | Čísla karet, strukturované kódy | Minimalizuje úpravy schématu |
5. Pseudonymizace vs. anonymizace
- Pseudonymizace: lze zpětně převést (máme mapu) – potřebné pro operace.
- Anonymizace: nevratné – používáme pro analytické agregace, trénink, benchmarking.
6. Co dát do marketingové věty (shrnutí)
„Řídíme přístupy, šifrujeme data na disku i v přenosu, citlivá pole pseudonymizujeme a vše auditujeme.“
7. Nejčastější chyby (čemu se vyhnout)
Chyba | Proč je problém |
---|---|
Ukládání plaintextu v logu nebo chybové stránce | Leak PII při incidentu |
Sdílené dlouhožijící API klíče | Nemožná atribuce & rotace |
Šifrování bez řízení přístupu ke klíčům | Útočník s přístupem k app serveru vše dešifruje |
Hard‑coded secrets v repozitáři | Riziko úniku přes fork / backup |
Neřešení záloh | „Backdoor“ k datům v nešifrované podobě |
8. Rychlý „MVP“ postup (pokud začínáš dnes)
- Zapni šifrování storage (managed DB) + TLS vynucení.
- Inventarizuj citlivá pole, přidej hash/enc sloupce.
- Zaveď Vault a migruj secrets.
- Přidej maskování do prompt pipeline.
- Přidej audit logy dešifrování a alerty.
- Naplánuj rotaci klíčů & review každého čtvrt roku.