Základní nástroje pro analýzu komunikace a spojení vycházejí z technologií SSL inspekce a fingerprintů komunikačních partnerů. Příchod ECH ale znamená evoluci v ochraně soukromí uživatelů, včetně dopadů na tyto nástroje. Jak tomu ale rozumět?
V současnosti se stále ještě používá SNI (Server Name Indication), která v rámci ClientHello sděluje cílový hostname. To přináší obrovskou výhodu, protože díky SNI každý server nemusí mít samostatnou IP adresu. A virtualizace tak obrovským způsobem šetří nejenom IP adresy, ale i náklady.
Jak funguje? V rámci ClientHello se posílá identifikace cílového serveru. Na základě uvedené informace cílový server dokáže zvolit odpovídající virtuální server a poskytnout relevantní klíčový materiál (certifikát). Tedy na jedné IP adrese mohou být desítky až stovky virtuálních serverů. Zároveň tato položka dovoluje různým serverům zajišťujícím SSL inspekci odpovídajícím způsobem ověřit, zda je adresa dotazovaného serveru akceptována organizační politikou nebo ne.
Inspekce komunikace je dnes na hraničních bodech sítě jednou z nejsilnějších zbraní proti různé počítačové havěti, podvodům a dalším typům útoků, ohrožující provoz organizace. Správce za tuto síť má zodpovědnost. Bohužel, pokud nemáte nad sítí kontrolu, její údržba a řízení je téměř nemožné. Podobným způsobem fungují i kontrolní mechanismy antivirových produktů, internet providerů nebo na hranicích některých státních celků. I zde ale musí být určitý důvod pro analýzu. Tím může být ochrana počítače, ochrana sítě nebo ochrana národních zájmů. Mezi národní zájmy patří i potírání kriminality, proto v rozvinuté společnosti není možné jen tak někoho kontrolovat. V případě bezpečnostních složek pro to musí být odpovídající oprávnění, např. soudní příkaz. To ale záleží na konkrétní jurisdikci.
ESNI (Encrypted SNI) nebo ještě lépe ECH (Encrypted Hello) přinášejí ochranu přenášených informací, každá technologie jiným způsobem. ESNI se považuje za překonané a v současnosti se objevuje podpora hlavně pro ECH. Jaké jsou ale mezi nimi rozdíly?
ESNI zajišťovalo pomocí šifrování pouze ochranu SNI jako jediného parametru. Zůstával zde viditelný seznam ciphersuites, různá rozšíření včetně ALPN a dovolil tak vytvářet fingerprinting TLS. To sice může být užitečné ve spolupráci s IDS/IPS systémy, jako ochranný mechanismus proti některým typům útoků. ESNI ale neřeší únik těchto metadat a jejich zneužitelnost. ECH naproti tomu řeší kompletní ochranu Client Hello. Ten je celý šifrován, v nešifrované části je jenom generický SNI, který slouží jako fallback a obsahuje minimální metadata. V šifrované části jsou veškeré ostatní informace, včetně dat používaných pro fingerprinting jako jsou ciphersuites a rozšíření typu ALPN. V takovém případě je tedy téměř nemožné tento metadata použít, případně je využít na ochranu síťové infrastruktury.
Použití ECH má své výhody a nevýhody, které záleží na architektuře použití. Mezi jedny z vlasností dvojího významu patří již zmiňované omezení schopnosti detekovat klientský stroj podle jeho metadat. To je možné použít pro identifikaci klientů, ale například také pro ochranu před botnety nebo dalšími metodami útočníků. Dalším problémem je omezení schopností inspekce TLS, který je jedním z potřebných nástrojů pro kontrolu provozu a dohledem nad přenosy v síti. Na jednu stranu tak tato technologie zvyšuje ochranu soukromí, na druhou omezuje schopnosti správců chránit data a práci uživatelů. To má zásadní dopady na řízení bezpečnosti.
V případě nasazení ECH tak zbývá pouze několik metod. Jednak hodnocení důvěryhodnosti IP adres, které ale zcela selhává v případě CDN (Content Distributed Network), cloudového prostředí nebo dynamické adresace. Dále je možné použít vyhodnocování a relace k DNS dotazům, tedy behaviorální analýza. Mimo ECH je tu ale problém s metodami ochrany DNS dotazů, jako je DoH (DNS over HTTPS), DoS (DNS over SSL) nebo DoQ (DNS over QUIC). V případě jejich dostupnosti nemá správce šanci řídit síť. Použití SSL inspekce bude díky ECH omezeno, současné systémy budou potřebovat upgrade aby se s novou architekturou vypořádaly. Rozlišení běžného provozu díky chráněnému obsahu Client Hello (včetně fallback SNI) tak bude výpočetně náročnější. Poslední možností je sledování provozu, tedy dostupných dat o počtu paketů, jejich velikosti, časech komunikace. Tedy analýza metadat a chování, která má ale velké množství omezení a výsledky nebudou zcela přesné.
Jako nejrozumnější metoda se mi tak jeví forma SSL inspekce, spojená s paděláním ECH záznamu v DNS. V takovém okamžiku se klient připojí na inspekční server, který se na základě dotazu klient připojí ke zdrojovému serveru. Alternativou je možnost zcela ECH v organizacích zakázat s tím, že inspekční server povolí ECH až od inspekčního serveru. Spoléhat na fallback stránek hostovaných v cloudu je problematické. SNI záznam jde standardně na hlavní doménu, protože fallback spoléhá pouze na oznamované informace. To je ale pro správu a řízení sítě zcela nedostatečné.
Starší varianta ochrany, ESNI, využívá vygenerované klíče uložené v DNS pro úvodní inicializaci protokolu. Pro ukládání se používatl textový záznam _esni v rámci domény:
_esni.domain.tld TXT "BASE64_ENCODED_ESNI_CONFIG"
kde vlastní ESNI config v binární formě obsahuje následující strukturu dat:
struct {
uint16 version;
uint8 checksum[4];
KeyShareEntry {
uint16 group; // např. X25519
opaque public_key
};
CipherSuite cipher_suites[];
uint64 not_before;
uint64 not_after;
uint16 extensions;
} ESNIKeys;
Na základě získaných klíčů se vytváří kryptogram, využívající domluvu na klíčích pomocí ECDH. Jeho tvorba postupuje následujícím způsobem. Vytvoří se ESNI extension, obsahující informace o klíčovém materiálu, který bude poskytnut na server.
ESNIExtension = {
cipher_suite;
key_share (client ephemeral publickey);
record_digest;
encrypted_sni (ciphertext);
}
Dále se spočítá sdílený klíč a odvodí se jednotlivá tajemství tak, aby bylo možné šifrovat data. Některá z těchto tajemství se propisují do ESNI extenstion:
shared_secret = ECDH(ephemereal secret_key_klient, publickey_server)
secret = HKDF-Extract(0, shared_secret)
key = HKDF-Expand(secret, "esni key")
nonce = HKDF-Expand(secret, "esni nonce")
ciphertext = AEAD_Encrypt(key, nonce, SNI, associated_data)
Nakonec je možné zaslat informace o klíčovém materiálu na server. Ten na základě uvedených infromací může dešifrovat data a získat z ESNI odpovídající SNI:
ESNI payload = ephemeral_publickey_client || ciphertext
Návrhy ESNI se objevily už v roce 2018 a bylo poprvé nasazeno okolo roku 2020, nikdy se ale nedostalo do stadia RFC. Důvodem pro vznik ESNI bylo nešifrované SNI, umožňující cenzuru a sledování. Tedy temná strana řízení provozu sítě. Bohužel se při pokusech ukázala nedostačnost návrhu, tedy příliš úzká ochrana. Od roku 2020 tedy docházel ke změnám v návrhu až do dnešní, podoby ECH. Od roku 2023 byly postupně standardizovány RFC 9320, RFC 9337 a RFC 9361, které popisují jak má ECH problém s ochranou před sledováním řešit.
U ECH je situace od ESNI lehce odlišná. Tato technologie opustila využívání TXT záznamů, důvodem byly problémy s rozšiřitelností a verzováním. Proto se pro konfiguraci používají záznamy typu HTTPS (RR type 65) a SVCB (Service Binding). Příkladem takového záznamu může být napříkad:
domain.tld. HTTPS 1 . alpn="h2,h3" ech="BASE64_ENCODED_ECH_CONFIG"
V tomto záznamu je důležitá položka ech="BASE64". Ta obsahuje konfiguraci, která má strukturu:
ECHConfig = {
version
public_name
max_name_length
key_config {
kem_id
public_key
cipher_suites
config_id
}
}
Na začátku je nutné, aby server vygeneroval svůj privátní a veřejný klíč. Veřejný klíč /je uložen v DNS záznamu, privátní klíč neopouští server. Klient při inicializaci spojení vygeneruje svůj pár klíčů, kde veřejný poskytuje serveru a privátní si ponechává. Díky využití ECDH se tak mohou obě strany domluvit na sdíleném tajemství.
shared_secret = ECDH(ephemereal secret_key_klient, publickey_server)
key = HKDF-Expand(secret, "ech key")
nonce = HKDF-Expand(secret, "ech nonce")
associated_data = outer ClientHello, config_id, encapsulated_key
ciphertext = AEAD_Encrypt(key, nonce, ClientHelloInner, associated_data)
Následně se vytvoří hlavička spojení, kde je šifrované ECH následující formě. Případný útočník by tak neměl mít možnost vidět žádná relevantní data. Otázkou je, jaká adresa bude použita pro fallback (SNI) a zda nebude prováděna korelace DNS dotazů se spojením.
ECHCiphertext = (ephemereal public_key_klient, ciphertext )
Pokud je nainstalované OpenSSL 4.0, je možné použít přibližně následující postup. Ten počítá s použitím následující ciphersuite.
KEM : X25519 = 0x0020
KDF : HKDF-SHA256 = 0x0001
AEAD: AES-256-GCM = 0x0002
Postup:
mkdir -p /home/git
cd /home/git
git --clone https://github.com/defo-project/ech-dev-utils
mkdir -p /home/git/ech
openssl ech -public_name domain.tld -suite x25519,hkdf-sha256,aes256gcm -out /home/git/ech/domain.tld.pem.ech
/home/git/ech-dev-utils/scripts/pem2rr.sh /home/git/ech/domain.tld.pem.ech
kde výstupem je řetězec BASE64_CONFIG. Ten je nutné následně zpracovat do formátu, použitelného do HTTSP záznamu.
ech-enabled-portal.domain.tld. 3600 IN HTTPS
1 . alpn="h2,h3" ech="BASE64_CONFIG"
Mimo uvedeného záznamu je nutné mít záznam odkazující se na IP adresu jak pro doménu nebo nějaký defaultní web server, tak pro ech-enabled-portal. V případě připojení na portál tak dojde k poskytnutí SNI odkazujícího se přímo na default server domény, přestože klient bude používat server odlišný.
Ostatní nastavení už závisí pouze na konfiguracích web serverů. Otázkou zde bude, jak řešit případné řízení přístupů v síti. Pro většinu systémů taková konfigurace postrádá smysl. Příkladem je zpravodajství a podobné weby. Na druhou situaci si dokáži představit weby, kde uvedené skrývání informací může mít význam.
ECH je dobrý sluha, ale špatný pán. Příliš benevolentní řízení nejenom že dokáže pustit do sítě návštěvy, o kterých nevíte. Ale bude možné skrze něj stejným způsobem exfiltrovat data. Proto bude nutné zvážit, kdy bude takové použití akceptovatelné a kdy bude nutné jej zakázat.
1. Úvodní ustanovení
1.1. Tyto všeobecné obchodní podmínky jsou, není-li ve smlouvě písemně dohodnuto jinak, nedílnou součástí všech smluv týkajících školení, pořádaných nebo poskytovaných školitelem, Jan Dušátko, IČ 434 797 66, DIČ 7208253041, se sídlem Pod Harfou 938/58, Praha 9, zapsané u Úřadu městské části Praha 9 (dále jen „školitel“).2. Vznik smlouvy přihlášením ke kurzu
2.1. Přihláškou se rozumí jednostranný úkon objednatele adresovaný školiteli prostřednictvím datové schránky s identifikací euxesuf, e-mailu na adresu register@cryptosession.cz nebo register@cryptosession.info, internetových stránek cryptosession.cz, cryptosession.info nebo kontaktním telefonem +420 602 427 840.3. Zánik smlouvy zrušením přihlášky
3.1. Přihláška může být objednatelem zrušena pomocí e-mailu, nebo pomocí datové schránky.4. Cena a platební podmínky
4.1. Odesláním přihlášky objednatel akceptuje smluvní cenu (dále jen účastnický poplatek) uvedenou u daného kurzu.5. Podmínky školení
5.1. Školitel je povinnen informovat objednatele 14 dní dopředu o místě a času školení, včetně termínu zahájení a ukončení denního programu.6. Reklamace
6.1. Pokud je účastník hrubě nespokojen s průběhem kurzu, je školitel o této informaci vyrozuměn.7. Autorská práva k poskytnutým materiálům
7.1. Školicí materiály poskytnuté školitelem v rámci konání školení splňují znaky autorského díla dle zákona č. 121/2000 Sb.8. Zodpovědnost
8.1. Školitel nepřebírá odpovědnost za nedostatky ve službách kterékoliv třetí strany, kterou využívá při školeních.9. Platnost podmínek
9.1 Tyto všeobecné obchodní podmínky jsou platné a účinné od 1. října 2024.Informace o sběru a zpravování osobních údajů
Zpracovatel Jan Dušátko (dále jen „Správce“), dle nařízení Evropského parlamentu a Rady (EU) č. 2016/679 o ochraně fyzických osob v souvislosti se zpracováním osobních údajů a o volném pohybu těchto údajů a o zrušení směrnice 95/46/ES (obecné nařízení o ochraně osobních údajů, dále jen „Nařízení“) zpracovává osobní údaje. Dále jsou rozepsané jednotlivé osobní údaje, které jsou součástí zpracování při konkrétních aktivitách u této webové prezentace a v rámci obchodního styku.Informace o záznamech přístupu na webovou prezentaci
Tento web nesbírá žádné cookies. Stránka nepoužívá ani žádné analytické scripty třetích stran (sociální sítě, cloud provideři). Z těchto důvodů je také nabízena volba pro zobrazení mapy formou odkazu, kde primárním zdrojem je OpenStreet a alternativy pak často používané Mapy společnosti Seznam, a.s., případně Google Maps společnosti Google LLC Inc. Využití jakéhokoliv z těchto zdrojů je zcela na libovůli uživatelů těchto stránek. Správce nenese odpovědnost za sběr dat realizovaný těmito společnostmi, neposkytuje jim data o uživatelích a na sběru dat nespolupracuje.Informace o kontaktování provozovatele stránek
Formulář pro kontaktování provozovatele stránek (správce) obsahuje následující osobní údaje: jméno, příjmení, e-mail. Tyto údaje jsou určeny jen a pouze pro tuto komunikaci, odpovídající oslovení uživatele a jsou udržovány po dobu nezbytnou k naplnění účelu, maximálně pak po dobu jednoho roku, pokud si uživatel neurčí jinak.Informace o objednávkovém formuláři
Pro případ zájmu o objednávku formulář obsahuje více údajů, tj. jméno, příjmení, e-mail a kontaktní údaje na organizaci. Tyto údaje jsou určeny jen a pouze pro tuto komunikaci, odpovídající oslovení uživatele a jsou udržovány po dobu jednoho roku, pokud si uživatel neurčí jinak. V případě, kdy na základě této objednávky dojde k uzavření obchodního vztahu, budou nadále správcem udržovány pouze informace vyžadované českými zákony na základě obchodních vztahů (název a adresa společnosti, číslo bankovního účtu, typ kurzu a jeho cena).Informace o dokumentu o absolovování kurzu
V rámci kurzu je vydán zpracovatelem dokument o absolovování kurzu. Tento dokument obsahuje následující údaje: jméno a příjmení studenta, název a datum absolovování kurzu a jméno zaměstnavatele. Uvedené informace se následně používají pro tvorbu lineárního stromu hashí (nemodifikovatelný záznam). Tato databáze obsahuje pouze informace o poskytnutých jménech a názvech společností, které mohou a a nemusí odpovídat realitě a je udržován zpracovatelem pro případné opětovné vystavení nebo ověření vydání dokumentu.Práva subjektu osobních údajů
Zákazník nebo návštěvník tohoto webu má možnost požádat o informace o zpracování osobních údajů, právo požadovat přístup k osobním údajům, případně právo požádat o opravu nebo výmaz veškerých dat, které by o něm byly vedeny. V případě výmazu tento požadavek není možné splnit pouze pokud se nejedná o data nezbytně nutná v rámci obchodního styku. Zákazník nebo návštěvník webu má dále právo na vysvětlení týkající se zpracování jeho osobních údajů, pokud tento zjistí nebo se domnívá, že zpracování je prováděno v rozporu s ochranou jeho soukromého a osobního života nebo v rozporu s platnými právními předpisy a právo požadovat odstranění takto vzniklého stavu a zajištění nápravy.