Do e-mailové schránky přijde žádost o certifikát: dodavatel potřebuje váš klientský certifikát, nový load balancer potřebuje wildcard, kolega potřebuje podpisový certifikát, aby mohl sestavit release. Soubor, o který žádají, může být neškodný, nebo to může být soukromý klíč, se kterým se kdokoli může vydávat za vaši službu. A obojí často putuje v jednom balíčku.
Bezpečné sdílení soukromého certifikátu přes zabezpečený odkaz má tento postup: nejdřív zjistěte, kterou polovinu příjemce opravdu potřebuje, soukromý klíč zabalte tak, aby byl bez hesla k ničemu, soubor pošlete jednorázovým odkazem, který se po jednom stažení zničí, a heslo pošlete jinudy. Tento návod projde každý krok i s příkazy.
Certifikát je veřejný. Klíč ne.
Certifikát obsahuje veřejný klíč, subjekt, pro který byl vystaven, vydavatele a dobu platnosti. Je určený k rozdávání; dostane ho každý prohlížeč, který se k vašemu webu připojí. Soukromý klíč je samostatný důvěrný údaj, který dokazuje, že certifikát patří vám. Kdo ho má, může dešifrovat provoz určený vám, podepisovat vaším jménem nebo spustit server, který se vydává za vás.
První otázka tedy zní, zda příjemce klíč vůbec potřebuje.
| Příjemce chce | Potřebuje | Citlivé? |
|---|---|---|
| Důvěřovat vaší službě nebo ověřit podpis | Certifikát (případně řetězec CA) | Ne |
| Nasadit TLS na server nebo zařízení, které provozuje | Certifikát, řetězec a soukromý klíč | Ano |
| Podepisovat kód nebo dokumenty jménem vaší organizace | Certifikát a soukromý klíč | Ano, velmi |
| Přihlašovat se do systému klientským certifikátem | Certifikát a soukromý klíč | Ano |
Pokud platí první řádek, pošlete soubor .crt nebo .cer jakkoli a dál nečtěte. Všechno níže se týká řádků, kde se klíč musí přesunout.
Před odesláním zkontrolujte, co soubor obsahuje
Přípony klamou. Soubor .pem může obsahovat certifikát, klíč nebo obojí. Soubor .pfx nebo .p12 obvykle balí certifikát, řetězec a klíč za heslem. Před odesláním obsah zkontrolujte:
# what is in this PEM?
openssl x509 -in cert.pem -noout -subject -issuer -dates
grep -c "PRIVATE KEY" cert.pem # 0 means no key inside
# what is in this PFX? (prompts for the password)
openssl pkcs12 -in bundle.pfx -info -noout
Ověřte, že subjekt odpovídá tomu, o co příjemce žádal, a že datum konce platnosti je v budoucnosti. Poslat špatný certifikát se stává běžně; poslat špatný certifikát i s klíčem je bezpečnostní incident.
Zabalte klíč tak, aby byl sám o sobě k ničemu
Pokud klíč musí cestovat, nikdy ho neposílejte holý. Dejte ho do formátu zašifrovaného heslem, které pošlete zvlášť.
# bundle certificate, chain and key into a password-protected PFX
openssl pkcs12 -export -out service.pfx \
-inkey service.key -in service.crt -certfile chain.crt
# or encrypt a PEM key on its own
openssl pkey -in service.key -aes-256-cbc -out service.enc.key
Použijte dlouhé heslo vygenerované správcem hesel. Heslo je druhý faktor: kdo získá soubor, nemůže ho použít, a kdo získá heslo, nemá na co ho použít.
Pošlete soubor jednorázovým zabezpečeným odkazem
Odkaz je krok doručení a cílem je, aby potom v žádné zprávě nezůstala kopie souboru.
- Ověřte příjemce podle zdroje, kterému už důvěřujete: tiketu, uloženého kontaktu na dodavatele, telefonátu. Žádost o certifikát z nečekané adresy si zaslouží telefonát, ne odpověď.
- Vytvořte tajný odkaz s přiloženým souborem. V přihlášeném účtu LinkPilot otevřete „Secret Links“, zvolte „New“ a přiložte PFX nebo šifrovaný PEM. Každý soubor může mít nejvýš 9 MB, což je mnohotisíckrát víc než jakýkoli balíček s klíčem. Příloha se zašifruje ve vašem prohlížeči ještě před nahráním a při prvním stažení se smaže.
- Nastavte vypršení platnosti na skutečně potřebnou dobu. Hodinu, pokud příjemce čeká, 24 hodin, pokud jste každý v jiném časovém pásmu. Hlavní ochranou je jediné stažení; vypršení platnosti je pojistka pro odkaz, který nikdo neotevře.
- Nastavte limit zobrazení na jedno. Dva technici, kteří balíček potřebují, dostanou každý svůj odkaz.
- V účtu Pro k odkazu přidejte heslovou frázi, pokud půjde kanálem, který vidí i další lidé.
- Pošlete odkaz s jednou větou kontextu: který certifikát, pro který systém, kdy vyprší.
- Heslo k souboru pošlete jiným kanálem. SMS, telefonátem nebo druhým tajným odkazem poslaným jinou cestou. Nikdy ve stejné zprávě jako odkaz na soubor a nikdy v názvu souboru.
Pokud je klíč krátký text ve formátu PEM, můžete ho místo přikládání souboru vložit přímo do bezplatného nástroje pro tajné odkazy. Text se stejně zašifruje ve vašem prohlížeči a při prvním otevření se zničí.
Řekněte příjemci, co s ním má udělat
Pokyny k instalaci pošlete se zprávou s kontextem, ne s heslem:
- Jaký soubor má čekat, v jakém formátu a do kterého systému patří.
- Kam ho uložit: do adresáře certifikátů na serveru s oprávněními omezenými na servisní účet, nebo do úložiště certifikátů operačního systému. Ne do Stažených souborů, ne na sdílený disk.
- Staženou kopii po importu smazat a nikdy ji neukládat do repozitáře.
- Přijetí potvrdit názvem souboru a otiskem (fingerprint), nikdy posláním souboru zpět:
openssl x509 -in service.crt -noout -fingerprint -sha256
Potom
Zkontrolujte, že odkaz má stav „revealed“ (zobrazeno) a že příjemce potvrdil shodu otisku. Účty Pro vidí v časové ose auditu přesný čas stažení. Pokud odkaz otevřel někdo dřív, než se k němu příjemce dostal, nebo soubor odešel na špatnou adresu, nečekejte na důkaz zneužití: nechte certifikát u vydávající certifikační autority zneplatnit, vygenerujte nový pár klíčů, nechte certifikát vystavit znovu a vyměňte ho všude, kde je nainstalovaný.
Zapište si, kdo dostal který certifikát a kdy. Záznam si nechte. Soubor má existovat na systémech, které ho potřebují, a nikde mezi nimi.
