Šepot
Šepot
Bezpečnost do detailu

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.

01
KROK 01

Generování klíčů

Ed25519 keypair + X25519 prekeys

02
KROK 02

Výměna klíčů (X3DH)

Bezpečné navázání konverzace

03
KROK 03

Double Ratchet

Nový klíč pro každou zprávu

04
KROK 04

Šifrování (XSalsa20)

Zpráva → šifrovaný text + MAC

05
KROK 05

Odeslání přes QUIC

Šifrovaný přenos po síti

06
KROK 06

Dešifrování

Pouze příjemce vidí obsah

sepot_crypto_flow.rs

/// Š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.

128-bit security level

XSalsa20-Poly1305

Šifrování zpráv

Streamová šifra XSalsa20 s autentikací Poly1305 MAC. Rychlá, bezpečná, odolná proti timing útokům.

256-bit klíč, 192-bit nonce

Ed25519

Digitální podpisy

EdDSA podpisy na Edwards Curve25519. Ověření identity odesílatele a integrity zprávy.

128-bit security level

Argon2id

Derivace klíčů

Paměťově náročná funkce pro odvození šifrovacího klíče z hesla. Odolná proti GPU a ASIC útokům.

64 MB RAM, 3 iterace

BLAKE2b

Hashování

Kryptografická hash funkce. Rychlejší než SHA-3, používaná pro integrity kontrolu a key derivation.

256-bit výstup

Double Ratchet

Správa klíčů

Kombinace Diffie-Hellman ratchetu a symetrického ratchetu. Nový klíč pro každou zprávu.

Perfect Forward Secrecy

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
pfs_demo

# 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.

srovnani_signal.md
VlastnostŠepotSignal
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

Ochráněno

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

Ochráněno

Ověření identity přes QR kódy a bezpečnostní čísla. Jakýkoliv pokus o MITM je detekovatelný.

Kompromitovaný klíč

Ochráněno

Díky PFS kompromitace jednoho klíče neohrozí minulé ani budoucí zprávy. Každá zpráva má unikátní klíč.

Metadata analýza

Ochráněno

Minimální metadata. Server neukládá kdo s kým komunikuje. IP adresy nejsou logovány.

Brute-force hesla

Ochráněno

Argon2id s vysokými parametry činí brute-force útoky na hesla prakticky nemožnými.

Fyzický přístup k zařízení

Částečně

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.