Klíč, který dokazuje, že vaše brána je ona sama, a přihlašovací údaj, který říká, že se osoba smí připojit, jsou oba tajné, a právě tam podobnost končí. Jeden představuje službu každému klientovi; druhý představuje jednoho uživatele této službě. Jejich smíchání ušetří krok při nastavení a stojí odpoledne při incidentu, protože obnova pro každý z nich není stejná operace. Oddělení je nudné na nastavení a snadno zapamatovatelné při vynechání.

Dvě tajemství, dva různí vlastníci

Brána drží soukromý klíč nebo certifikát, jehož jediným úkolem je prokázat svou identitu během handshake. Klienti potřebují odpovídající veřejný materiál, aby jej ověřili, a soukromou polovinu nikdy nepotřebují. Právě tato asymetrie umožňuje ověření serveru, aniž by každý uživatel dostal možnost vydávat se za server.

Uživatelský materiál jde opačným směrem. Soukromý klíč klienta, klientský certifikát nebo heslo dokazují, že právě tato osoba nebo zařízení dostaly přístup. Očekává se, že bude distribuován, kopírován mezi zařízeními a nakonec odvolán.

WireGuard činí oddělení zřejmým, protože každý účastník má pár klíčů: soukromý klíč serveru zůstává na serveru a konfigurační soubor, který dáte uživateli, obsahuje jeho vlastní soukromý klíč plus veřejný klíč serveru. Profil, který obsahuje soukromý klíč serveru, není zkratka, je to kompromis čekající na sdílení souboru.

Tři otázky, které určují oddělení

Zeptejte se, kdo musí být schopen tajemství číst, co by únik umožnil útočníkovi a zda je opravou jedno odvolání, nebo přestavba služby.

Pokud jej uživatel může číst a prokazuje identitu brány, odpověď na druhou otázku je, že útočník se může vydávat za váš server každému klientovi — což je nejhorší výsledek, protože klienti jsou navrženi tak, aby této identitě důvěřovali. Pokud prokazuje jen jednoho uživatele, únik dává tomuto uživateli přístup k jednomu protějšku a odvolání je rutinní operace. Pokud jde o klíč certifikační autority, je únik horší než obojí, protože útočník může vytvářet identity, kterým důvěřuje každý koncový bod.

Tyto tři odpovědi dávají pravidlo ukládání: klíč CA žije offline nebo v trezoru, klíč brány žije na bráně a uživatelské klíče žijí u uživatelů. Jakékoli uspořádání, které všechny tři dá do jednoho adresáře pro pohodlí, proměnilo rozhodnutí v náhodu.

Co klient skutečně potřebuje

Klient potřebuje veřejný certifikát nebo veřejný klíč protějšku, materiál CA nebo otisk, kterému má důvěřovat, svůj vlastní soukromý klíč a údaje o koncovém bodu. Tento seznam neobsahuje nic, co patří soukromé identitě brány.

Právě v dokumentaci to uniká. Návod, který říká zkopírujte adresář serveru a smažte, co nepotřebujete, už naučil špatný model, protože soubor, který po kroku smazání zůstane, málokdo zkontroluje.

Odvolejte jednoho uživatele, aniž byste se dotkli brány

Protože se uživatelské identity vydávají odděleně, lze je i odděleně odebrat. Nasazení založené na certifikátech odvolá klientský certifikát a zveřejní aktualizovaný seznam odvolání; nasazení WireGuard odstraní záznam protějšku z konfigurace serveru. Ani jedna z těchto operací nemění vlastní klíč brány.

Uchovávejte záznam o vydání, jinak nebudete vědět, kterou identitu odebrat. Tabulka stačí, pokud uvádí osobu, zařízení, sériové číslo nebo veřejný klíč a datum, a pokud ji někdo spravuje poté, co osoba, která ji vytvořila, odejde.

Níže uvedené příkazy zkontrolují klientský certifikát a poté jej odvolají prostřednictvím autority ve stylu OpenSSL, což je postup, který easy-rsa obaluje:

openssl x509 -in client.crt -noout -subject -serial
openssl ca -config openssl.cnf -revoke client.crt
openssl ca -config openssl.cnf -gencrl -out crl.pem

Zveřejněte nový seznam tam, kde jej klienti kontrolují, jinak je odvolání poznámka v souboru, která nic nezmění. Pokud vaše brána přijímá klientské certifikáty bez nahlédnutí do seznamu odvolání, řekněte to výslovně, místo abyste naznačovali, že odvolání funguje.

Uchovávejte zálohy stejně oddělené jako tajemství

Archiv pro přestavbu oprávněně obsahuje klíč brány a materiál CA, protože bez nich obnova nemůže reprodukovat službu. Instalační balíček klienta je obsahovat nesmí a oba se nesmí ukládat společně. Označte každý archiv podle toho, kdo jej smí držet, ne podle data vytvoření. Právě tento štítek čte unavený správce ve dvě ráno.

Toto rozlišení také určuje, kdo smí každý z nich získat. Správa brány, vydávání uživatelských identit a čtení záloh jsou tři různé pravomoci a člověk, který potřebuje jednu, automaticky nepotřebuje ostatní. Zapište tato oprávnění a poté je zkontrolujte proti tomu, co vaše úložiště skutečně umožňuje, protože dědění adresářů tiše uděluje více, než politika zamýšlí.

Související články