Přeskočit obsah

Šifrování a správa klíčů

Kryptografické standardy MazeVault a životní cyklus klíčů

Verze dokumentu: 1.0.0
Poslední aktualizace: 2026-02-10


1. Kryptografické standardy

Šifrování v klidu

Účel Algoritmus Velikost klíče Režim Standard
Tajné hodnoty (Secrets) AES-256-GCM 256 bitů Authenticated Encryption NIST SP 800-38D
Data zero-knowledge AES-256-GCM 256 bitů Client-side Encryption NIST SP 800-38D
Databázová pole AES-256-GCM 256 bitů Na úrovni aplikace NIST SP 800-38D
Záložní archivy AES-256-GCM 256 bitů Symetrické NIST SP 800-38D

Výměna klíčů

Účel Algoritmus Parametry Standard
Agent ↔ Server ECDH Křivka P-256 NIST SP 800-56A
mTLS RSA-OAEP SHA-256, 2048+ bitů PKCS#1 v2.2
Klíče relací HKDF SHA-256 RFC 5869
Autentizace heslem SRP-6a 2048bitová skupina RFC 5054

Digitální podpisy

Účel Algoritmus Velikost klíče Standard
Podepisování JWT RS256 2048bitový RSA RFC 7518
Podepisování certifikátů RSA/ECDSA 2048/4096 RSA, P-256/P-384 ECDSA RFC 5280
Podepisování OCSP odpovědí RSA/ECDSA 2048+ bitů RFC 6960
Podepisování kódu RSA 2048+ bitů RFC 5652

Hašování

Účel Algoritmus Standard
Ukládání hesel bcrypt / Argon2id — / RFC 9106
Integrita dat SHA-256 FIPS 180-4
Otisky certifikátů SHA-256 RFC 5280

2. Politika rotace klíčů

Typ klíče Interval rotace Automatická Poznámky
Hlavní šifrovací klíč (Master) Ročně Ne Vyžaduje plánované okno údržby
Šifrovací klíče tajných hodnot 90 dní Ano Transparentní přešifrování
Podepisovací klíče JWT Na vyžádání Ano Bezproblémový přechod klíčů
TLS certifikáty Před expirací Konfigurovatelné Podporována automatická obnova
Certifikáty agentů Ročně Ano Automatická obnova prostřednictvím bootstrap
API klíče Dle politiky organizace Ne Doporučena ruční rotace každých 90 dní

Proces rotace klíčů

graph LR
    A["🔑 Generovat<br/>nový klíč"] --> B["🏦 Uložit do<br/>HSM / Vault"]
    B --> C["🔄 Aktualizovat<br/>referenci klíče"]
    C --> D["🔐 Přešifrovat data<br/>(na pozadí)"]
    D --> E["✅ Ověřit<br/>integritu"]
    E --> F["📦 Archivovat<br/>starý klíč"]
    F --> G["🗑️ Smazat starý klíč<br/>(po retenční lhůtě)"]

    classDef generate fill:#EBF5FB,stroke:#2196F3,stroke-width:2px,color:#1565C0
    classDef store fill:#E8EAF6,stroke:#3F51B5,stroke-width:2px,color:#283593
    classDef process fill:#FFF8E1,stroke:#FF9800,stroke-width:2px,color:#E65100
    classDef verify fill:#E8F5E9,stroke:#4CAF50,stroke-width:2px,color:#2E7D32
    classDef archive fill:#F5F5F5,stroke:#9E9E9E,stroke-width:2px,color:#424242
    classDef delete fill:#FFEBEE,stroke:#F44336,stroke-width:2px,color:#C62828

    class A generate
    class B store
    class C,D process
    class E verify
    class F archive
    class G delete

Rotace hlavního klíče

Rotace hlavního šifrovacího klíče vyžaduje plánované okno údržby. Veškerá šifrovaná data musí být přešifrována novým klíčem. Kontaktujte podporu MazeVault ohledně postupu rotace.

3. Úložiště klíčů

Podporované backendy pro úložiště klíčů

Backend Popis Licenční úroveň
Software (lokální) Šifrovaný soubor klíčů na disku Všechny
Azure Key Vault Klíče spravované Azure — HSM nebo softwarové Enterprise+
Azure Managed HSM Certifikace FIPS 140-2 Level 3 Custom
AWS CloudHSM Certifikace FIPS 140-2 Level 3 Custom
Google Cloud HSM Certifikace FIPS 140-2 Level 3 Custom
PKCS#11 (on-premise HSM) Thales Luna, Utimaco, nCipher Custom

Hierarchie klíčů

graph TB
    MK["🏦 Hlavní klíč<br/>(HSM / Key Vault)"]
    DEK1["🔐 DEK 1<br/>Tajné hodnoty"]
    DEK2["📜 DEK 2<br/>Certifikáty"]
    DEK3["🔗 DEK 3<br/>Relace"]
    SK["✍️ Podepisovací klíč<br/>JWT / OCSP"]

    MK --> DEK1
    MK --> DEK2
    MK --> DEK3
    MK --> SK

    classDef master fill:#E8EAF6,stroke:#3F51B5,stroke-width:3px,color:#1A237E
    classDef dek fill:#E8F5E9,stroke:#4CAF50,stroke-width:2px,color:#2E7D32
    classDef signing fill:#FFF8E1,stroke:#FF9800,stroke-width:2px,color:#E65100

    class MK master
    class DEK1,DEK2,DEK3 dek
    class SK signing

Hierarchie klíčů využívá vzor envelope encryption (obálkového šifrování):

  1. Hlavní klíč (Master Key) — Uložen v HSM nebo Key Vault; nikdy neopustí bezpečnou hranici
  2. Datové šifrovací klíče (DEK) — Generovány pro každý účel; šifrovány hlavním klíčem
  3. Klíče pro jednotlivé záznamy — Volitelně generovány pro každý secret pro maximální izolaci

4. Architektura Zero-Knowledge

V režimu zero-knowledge jsou tajné hodnoty šifrovány na straně klienta před odesláním:

sequenceDiagram
    participant U as 🧑‍💻 Uživatel (Prohlížeč)
    participant S as 🖥️ MazeVault API
    participant DB as 🗄️ Databáze

    rect rgb(235, 245, 251)
    Note over U: Šifrování na straně klienta
    U->>U: Generovat symetrický klíč (PBKDF2)
    U->>U: Šifrovat tajnou hodnotu (AES-256-GCM)
    end

    rect rgb(232, 245, 233)
    Note over U,DB: Bezpečný přenos a uložení
    U->>S: Odeslat šifrovaný ciphertext
    S->>DB: Uložit ciphertext (nelze dešifrovat)
    end

    Note over S: ⚠️ Server nikdy nemá přístup<br/>k otevřenému textu ani odvozenému klíči

    rect rgb(255, 248, 225)
    Note over U,DB: Dešifrování (pouze klient)
    U->>S: Požádat o tajnou hodnotu
    S->>DB: Načíst ciphertext
    S-->>U: Vrátit ciphertext
    U->>U: Dešifrovat odvozeným klíčem
    end

Omezení režimu Zero-Knowledge

V režimu zero-knowledge nejsou dostupné funkce na straně serveru, jako je rotace tajných hodnot, vyhledávání a sdílení, protože server nemá přístup k nešifrovaným datům. Tento režim je určen pro případy použití osobního trezoru.

5. Konfigurace TLS

Podporované šifrovací sady (TLS 1.3)

Šifrovací sada Výměna klíčů Šifrování Hash
TLS_AES_256_GCM_SHA384 ECDHE AES-256-GCM SHA-384
TLS_AES_128_GCM_SHA256 ECDHE AES-128-GCM SHA-256
TLS_CHACHA20_POLY1305_SHA256 ECDHE ChaCha20-Poly1305 SHA-256

Podporované šifrovací sady (TLS 1.2 — zpětná kompatibilita)

Šifrovací sada Výměna klíčů Šifrování Hash
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 ECDHE-RSA AES-256-GCM SHA-384
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 ECDHE-RSA AES-128-GCM SHA-256
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 ECDHE-ECDSA AES-256-GCM SHA-384

Zastaralé protokoly

SSL 3.0, TLS 1.0 a TLS 1.1 nejsou podporovány. Šifrovací sady v režimu CBC jsou zakázány.

Související