Bezpečnost odkazů s heslem — co se děje, když kliknete
Můžeš přidat heslo ke svému krátkému odkazu. Ukazujeme, co se děje pod kapotou — bez odborného žargonu — a proč se to vůbec vyplatí.
Polovina návodů o odkazu s heslem začíná větou, že jde o „další vrstvu zabezpečení“. A tím končí. Podle mého názoru je to právě ta nejméně důležitá věc, kterou o tom lze říci.
Protože „bezpečnostní vrstva“ nic nevysvětluje. Neříká vám, co se s tím heslem děje, kdo ho vidí, ani kdy vůbec dává smysl. A to jsou jediné otázky, které se vyplatí si položit, než kliknete na „Přidat heslo“.
Tak tedy postupně.
Heslo na odkazu není totéž jako zámek na bráně
Lidé si představují, že heslo uzavře odkaz úplně neprostupně. Tak tomu ale není. Bezpečnost odkazů s heslem funguje spíše jako vstupenka na koncert: kdo má vstupenku, ten jde dovnitř. Kdo ji někomu předá, ten někoho také pustí.
To zní jako vada. Není to. Prostě je třeba vědět, k čemu tento mechanismus slouží.
Tři situace, ve kterých se opravdu hodí:
Ceník pro prémiové klienty nebo dokument ve verzi beta, než vyjde do světa. Bez hesla se takový odkaz dříve či později ocitne v Google nebo se bude předávat z ruky do ruky.
Obsah s datou platnosti. Nabídka pouze pro pátek. Materiál z konference výhradně pro účastníky. Heslo vytváří z odkazu kontrolovaný vstup — víš, že ho někdo dostal od tebe, neudělal to náhodou.
Druhá věc, kterou zveřejňujete zcela veřejně, ale chcete mít situaci pod kontrolou. Odkaz může kolovat. Bez hesla tam nikdo stejně nevstoupí.
A nyní to, čeho tento návod nesměl opomenout
Zadáváte heslo do formuláře. V tu samou chvíli zmizí. Doslova. To, že jste nastavili "tajne123", přestává existovat v čitelném tvaru, dříve než stihnete pustit tlačítko.
Co zůstává v databázi? Ne heslo. Po něm otisk prstu. Odborně: hash. Řetězec znaků, který odpovídá vašemu heslu pouze tehdy, když někdo zadá přesně to samé jako vy. Samotný o sobě nic ne prozrazuje.
Říkám to přímo, protože je to důležité: já, provozovatel služby, nemám jak přečíst vaše heslo. Ne proto, že bych byl slušný. Proto, že fyzicky není co číst. Kdyby se někdo vloupal do databáze, odnesl by jen hromadu těchto otisků a to je všechno.
Algoritmus, který to počítá, je záměrně pomalý. Vím, že „pomalý“ zní jako stížnost, ale je to výhoda. Jde o to, aby někdo, kdo ukradl databázi, musel na odhadnění jednoho hesla věnovat absurdně mnoho času. Mluvíme o letech, nikoliv o sekundách.
Klik z druhé strany
Někdo dostane tvůj odkaz a klikne na něj. Místo aby se okamžitě dostal do cíle, uvidí obrazovku: „tento odkaz je chráněn heslem“, pole pro zadání a tlačítko.
Zapisuje. Server porovnává to, co napsal, se uloženým otiskem. Souhlasí? Získává session token platný dobu. Během následujících 24 hodin se vrací na odkaz bez nutnosti cokoli vypisovat. Nemusí si pamatovat, nemusí se trápit.
Nesouhlasíte? Chyba ne. Pět pokusů ze stejné IP adresy a vstup se zablokuje na pět minut. Bot, který se snaží testovat hesla za sebou, narazí na zeď.
Co tu prostě není
Neukládáme hesla v otevřeném textu. Nikde. Ani v logech, na které se dívám při hledání chyb.
Neodesíláme hesla e-mailem. To znamená, že pokud někdo zapomene heslo, nepošlu mu ho, protože ho neznám. Musíš si ho poslat sám, stejným kanálem jako minule.
A hesla nepředáváme ven. Žádná analytika, žádný marketing, žádné AB tyto údaje nedotýká. (To je mimochodem pravidlo, které platí v celém cutty.dev, ne jen zde.)
Dvě návyky, které dělají rozdíl
První: nevymýšlej si heslo z hlavy. Název firmy plus rok založení je dárek pro každého, kdo tě zná. Generátor v prohlížeči vyprodukuje něco lepšího za sekundu.
Druhý, důležitější: neposílej heslo stejnou cestou jako odkaz. Odkaz šel e-mailem? Heslo pošli SMSem. Nebo naopak. Smysl je takový, že převzetí jedné schránky nikomu nedá kompletní sadu.
Drobnost, o které málokdo ví: můžete vytvořit několik odkazů vedoucích na stejnou adresu, ale s různými hesly. Udělíte přístup pěti lidem, každému samostatný odkaz. Jeden se má rozloučit? Zablokujete jeho odkaz, zbytek si toho ani nevšimne.
Heslo změníte bez vytváření nového odkazu. Panel, „Upravit“, nové heslo. Upozornění: všechny aktivní 24hodinové relace padají okamžitě. Každý musí heslo zadat znovu.
Hranice, o které je dobré vědět včas
Vraťme se k lístku na koncert. Heslo chrání před vyhledávačem a před náhodným hostem. Nechrání však před někým, kdo heslo zná a rozhodne se ho sdílet se světem.
Pokud tvůj scénář zní „to má vidět přesně tato jedna osoba a nikdo další“, pak heslo nebude stačit. Tady potřebuješ účty, přihlášení, autorizaci. Jiná liga, jiný problém.
Ale ruka vzhůru, jak často opravdu máš takový scénář? Z mé zkušenosti zřídka. V naprosté většině případů jde o prosté „nechci, aby sem někdo přišel z ulice“. A na to heslo to stačí s rezervou.
Pokud chcete vidět, jak to vypadá zevnitř — při vytváření odkazu rozbalte „Pokročilé možnosti“ a zaškrtněte „Přidat heslo“. Zbytek se stane samo.