Co SSH skutečně dělá
I když Splync používá HTTPS k ochraně cesty mezi vaším smartphonem a naším serverem, stále musíme chránit samotný server, aby byla zajištěna bezpečnost uživatelských dat. Vývojáři aplikací a správci systému potřebují bezpečný způsob, jak se dostat na server za účelem údržby a aktualizace. Zde přichází na řadu SSH (Secure Shell). Je to protokol, který umožňuje oprávněným uživatelům bezpečně se přihlásit na vzdálené počítače, a to i přes nedůvěryhodné sítě. SSH nahrazuje starší, nezabezpečené metody jako Telnet, které posílaly uživatelská jména a hesla v prostém textu.
Myšlenka za „klíči“
SSH se nespoléhá na typické heslo. Místo toho používá kryptografické klíče — odpovídající dvojici veřejného a soukromého klíče. Představte si je jako zámek a klíč, které pasují pouze k sobě. Veřejný klíč je na serveru a soukromý klíč zůstává u uživatele. Když se připojíte, server vás vyzve, abyste dokázali, že máte soukromý klíč, aniž byste ho odhalili. To téměř znemožňuje, aby vás někdo napodobil. Zatímco běžná hesla lze uhodnout, uniknout nebo znovu použít, SSH klíče jsou dlouhé, náhodné kryptografické řetězce — prakticky neuhodnutelné. I kdyby se někdo snažil zachytit spojení, uvidí pouze šifrovaný šum. A protože SSH klíče se nikdy neposílají přes síť, není co ukrást během přenosu.
Jak SSH klíč vlastně vypadá
Pokud jste nikdy neviděli SSH klíč, může se zdát abstraktní — ale ve skutečnosti je to jen dlouhý blok kódovaného textu. Veřejný klíč má obvykle několik stovek znaků, zatímco soukromý může mít přes tisíc. Oba jsou uloženy jako textové soubory, ale jejich obsah vypadá jako náhodný šum — směs písmen, čísel a symbolů. Veřejný klíč je bezpečné sdílet; je to jako umístit svůj zámek na server. Soukromý klíč je naopak vaše jedinečná digitální identita a nesmí být nikdy sdílen. Je uložen lokálně na vašem počítači a používá se pouze k prokázání, že jste tím, kým tvrdíte, aniž by se klíč sám odhalil.
Veřejný a soukromý klíč
Veřejný klíč je jako zámek, který připevníte na svůj dům. Každý ho může vidět z ulice, stejně jako zámek na vašich dveřích. Ale pohled na zámek nikomu neřekne, jak ho otevřít. Jinými slovy, kdokoli ho může vidět, ale jen správný klíč ho může odemknout. Na druhou stranu, soukromý klíč je ten, který zámek otevírá — a zůstává bezpečně u vás. Pokud se někdo zmocní vašeho soukromého klíče, může vstoupit do vašeho domu, jako by byl vámi. Proto musí být vždy uchováván v tajnosti.
Mechanismus SSH
Každý veřejný a soukromý klíč tvoří unikátní pár jeden k jednomu. Jsou generovány společně matematickým procesem tak, že pouze ten konkrétní soukromý klíč může odpovídat svému odpovídajícímu veřejnému klíči. Můžete si je představit jako na míru vyrobený zámek a klíč — ukované spolu a žádný jiný klíč na světě nepasuje na ten zámek. I když vytvoříte další pár pomocí stejného algoritmu (jako RSA nebo Ed25519), čísla uvnitř budou úplně jiná. Matematika, která je spojuje, je jednosměrná: veřejný klíč lze snadno odvodit ze soukromého klíče, ale je prakticky nemožné proces obrátit a najít soukromý klíč z veřejného. Proto je každý pár SSH klíčů jedinečný a bezpečný.
Jak SSH prokazuje, kdo jste
Když se přihlašujete na server pomocí SSH, váš soukromý klíč nikdy neopustí váš počítač. Místo toho server pošle náhodnou výzvu — jako jednorázovou hádanku — kterou dokáže vyřešit pouze váš soukromý klíč. Váš počítač tuto výzvu matematicky podepíše a vytvoří krátkou odpověď, kterou server může ověřit pomocí vašeho veřejného klíče. Pokud odpověď sedí, server ví, že držíte správný soukromý klíč — aniž by jej kdy viděl. Toto je kouzlo moderní kryptografie: můžete prokázat svou identitu, aniž byste odhalili své tajemství. SSH autentizace funguje, protože váš soukromý klíč obsahuje všechny informace potřebné k odvození veřejného klíče, ale opačným směrem je to prakticky nemožné.
Jak vývojáři používají SSH v praxi
Pokaždé, když vývojáři nasadí kód, aktualizují databázi nebo restartují službu, často se připojují na vzdálené servery přes SSH. Po autentizaci získají bezpečné připojení přes příkazový řádek k serveru. Odtud mohou spravovat soubory, restartovat služby nebo kontrolovat logy — vše je šifrované end-to-end. U Splync je SSH způsob, jak bezpečně spravujeme náš cloudový server. Každá administrativní akce — nasazení aktualizací, kontrola logů, zálohování dat — je prováděna přes SSH spojení chráněná kryptografickými klíči. Nikdo se nedostane na server bez správného soukromého klíče. I kdyby někdo znal naši IP adresu, bez toho klíče se dveře jednoduše neotevřou.
Co bude následovat: Šifrování uvnitř serveru
SSH chrání vstup na server a HTTPS chrání data při přenosu. Ale jakmile data přistanou v databázi, jak je udržet v bezpečí? To je místo, kde přichází na řadu hashování a šifrování — poslední vrstva obrany.