Kryptografie bez kompromisů
Šepot používá nejmodernější kryptografické algoritmy. Každý detail je navržen tak, aby vaše zprávy zůstaly jen vaše.
Jak funguje šifrování
Od odeslání po doručení -- 6 kroků, které chrání každou zprávu.
Generování klíčů
Ed25519 keypair + X25519 prekeys
Výměna klíčů (X3DH)
Bezpečné navázání konverzace
Double Ratchet
Nový klíč pro každou zprávu
Šifrování (XSalsa20)
Zpráva → šifrovaný text + MAC
Odeslání přes QUIC
Šifrovaný přenos po síti
Dešifrování
Pouze příjemce vidí obsah
/// Šepot -- Průběh šifrované komunikace
/// ======================================
// 1. Registrace
let identity = Ed25519::generate_keypair();
let prekeys = (0..100).map(|_| X25519::generate());
server.upload(identity.public, prekeys.public_parts());
// 2. Navázání konverzace (X3DH)
let peer_bundle = server.fetch_prekey_bundle(&peer_id);
let shared_secret = x3dh::initiate(
&identity, &peer_bundle
);
// 3. Double Ratchet
let mut ratchet = DoubleRatchet::init(shared_secret);
// 4. Šifrování zprávy
let (header, ciphertext) = ratchet.encrypt(
"Ahoj, tohle je tajné!".as_bytes()
);
// 5. Dešifrování na straně příjemce
let plaintext = peer_ratchet.decrypt(&header, &ciphertext)?;
assert_eq!(plaintext, "Ahoj, tohle je tajné!");
// Server nikdy neviděl obsah zprávy.
// Klíč byl použit jednou a zahozen.
Použité algoritmy
Osvědčené kryptografické primitiva. Žádné vlastní vynálezy, žádná security through obscurity.
X25519
Výměna klíčů
Elliptic Curve Diffie-Hellman na Curve25519. Bezpečná výměna klíčů bez nutnosti sdílet tajemství předem.
XSalsa20-Poly1305
Šifrování zpráv
Streamová šifra XSalsa20 s autentikací Poly1305 MAC. Rychlá, bezpečná, odolná proti timing útokům.
Ed25519
Digitální podpisy
EdDSA podpisy na Edwards Curve25519. Ověření identity odesílatele a integrity zprávy.
Argon2id
Derivace klíčů
Paměťově náročná funkce pro odvození šifrovacího klíče z hesla. Odolná proti GPU a ASIC útokům.
BLAKE2b
Hashování
Kryptografická hash funkce. Rychlejší než SHA-3, používaná pro integrity kontrolu a key derivation.
Double Ratchet
Správa klíčů
Kombinace Diffie-Hellman ratchetu a symetrického ratchetu. Nový klíč pro každou zprávu.
Perfect Forward Secrecy
Každá zpráva je šifrována unikátním klíčem, který je po použití okamžitě zahozen. I pokud útočník získá váš aktuální klíč, nemůže dešifrovat žádnou předchozí zprávu.
- Nový klíč pro každou zprávu díky Double Ratchet
- Kompromitace jednoho klíče neohrozí ostatní
- Zpětně nelze dešifrovat starší konverzace
- Automatická rotace bez zásahu uživatele
# Každá zpráva = nový klíč
Zpráva 1: key_a1b2c3... [zahozen]
Zpráva 2: key_d4e5f6... [zahozen]
Zpráva 3: key_g7h8i9... [zahozen]
Zpráva 4: key_j0k1l2... [aktivní]
# Útočník získal key_j0k1l2
→ Zprávy 1-3 zůstávají bezpečné!
→ Budoucí zprávy budou mít nové klíče.
Zero Knowledge
Server nikdy nevidí, co posíláte. Ani my nemůžeme číst vaše zprávy.
Co server ví
- Že existuje účet
- Kdy byl naposledy online
- Šifrované bloby dat
Co server NEVÍ
- Obsah zpráv
- Kdo s kým komunikuje
- Kontakty uživatele
- Obsah souborů
Co nikdo nemůže
- Dešifrovat bez klíče
- Vydávat se za vás
- Modifikovat zprávy
- Číst historii
Šepot vs Signal
Signal nastavil standard. Šepot jde dál -- otevřený server, žádné telefonní číslo, zero metadata.
| Vlastnost | Šepot | Signal |
|---|---|---|
| E2E šifrování | ✓ | ✓ |
| Open source klient | ✓ | ✓ |
| Open source server | ✓ | ✕ |
| Self-hosting | ✓ | ✕ |
| Bez telefonního čísla | ✓ | ✕ |
| Zero metadata | ✓ | ✕ |
| Rust backend | ✓ | ✕ |
| QUIC protokol | ✓ | ✕ |
| Perfect Forward Secrecy | ✓ | ✓ |
| Skupinové šifrování | ✓ | ✓ |
Model hrozeb
Transparentně ukazujeme, proti čemu Šepot chrání a kde jsou limity.
Kompromitovaný server
Server nikdy nevidí dešifrované zprávy. Útočník získá pouze šifrovaná data bez klíčů k dešifrování.
Man-in-the-middle
Ověření identity přes QR kódy a bezpečnostní čísla. Jakýkoliv pokus o MITM je detekovatelný.
Kompromitovaný klíč
Díky PFS kompromitace jednoho klíče neohrozí minulé ani budoucí zprávy. Každá zpráva má unikátní klíč.
Metadata analýza
Minimální metadata. Server neukládá kdo s kým komunikuje. IP adresy nejsou logovány.
Brute-force hesla
Argon2id s vysokými parametry činí brute-force útoky na hesla prakticky nemožnými.
Fyzický přístup k zařízení
Lokální data šifrována pomocí klíče odvozeného z hesla. Bez hesla není přístup k datům.
Bezpečnostní audit
Šepot je aktuálně ve fázi vývoje. Plánujeme nezávislý bezpečnostní audit před vydáním stabilní verze. Zdrojový kód je otevřený -- můžete ho zkontrolovat sami.