Сигурността на връзките с парола — какво се случва, когато кликнете
Можеш да добавиш парола към своя кратък линк. Показваме какво се случва „под капака“ — без използване на жаргон — и защо изобщо си струва.
Половината ръководства за връзки с парола започват с изречението, че това е „допълнителен слой сигурност“. И на това приключват. Според мен това е точно най-малко важното нещо, което може да се каже за тях.
Защото „слоят за сигурност“ нищо не обяснява. Не ти казва какво се случва с тази парола, кой я вижда, нито кога изобщо има смисъл. А това са единствените въпроси, които си струва да си зададеш, преди да кликнеш „Добави парола“.
Така, по ред.
Паролата на линка не е същото като ключалката на портата
Хората си представят, че паролата заключва линка завинаги. Не е точно така. Сигурността на линкове с парола работи по-скоро като билет за концерт: който има билет, влиза. Който го предаде на някого, също ще пусне някого.
Това звучи като дефект. Не е. Просто трябва да се знае за какво служи този механизъм.
Три ситуации, в които наистина е полезен:
Ценоразпис за премиум клиенти или документ във бета версия, преди да излезе в света. Без парола такъв линк рано или късно ще се озове в Google или ще премине от ръка на ръка.
Съдържание с дата на валидност. Оферта само за петък. Материал от конференцията единствено за участниците. Паролата прави контролиран вход чрез линка — знаеш, че някой го е получил от теб, а не го е намерил случайно.
Втората нещо, което публикувате напълно публично, но искате да следите ситуацията. Линкът може да циркулира. Без парола никой и без това няма да влезе.
А сега това, което този наръчник не трябваше да пропусне
Въвеждате парола във формата. В същия този момент тя изчезва. Буквално. Това, че сте задали "tajne123", престава да съществува в четим вид, преди дори да сте успели да пуснете бутона.
Какво остава в базата данни? Не и паролата. След нея – отпечатък от пръст. Професионално: hash. Поредица от символи, която съвпада с твоята парола само тогава, когато някой въведе точно същото като теб. Сама по себе си тя не разкрива нищо.
Ще го кажа директно, защото е важно: аз, като администратор на услугата, няма как да прочета паролата ти. Не защото съм учтив. А защото физически няма какво да се прочете. Ако някой разбие базата данни, би откраднал само купчината от тези отпечатъци и това е всичко.
Алгоритъмът, който изчислява това, е умишлено бавен. Знам, че „бавен“ звучи като оплакване, но това е предимство. Целта е някой, който е откраднал базата, да трябва да прекара абсурдно много време за опит за всяка една парола. Става въпрос за години, а не за секунди.
Клик от другата страна
Някой получава твоя линк и клика. Вместо веднага да стигне до целта, вижда екран: "този линк е защитен с парола", поле за въвеждане, бутон.
Въвежда. Сървърът сравнява това, което е въвело, със записания отпечатък. Съвпада ли? Получава се сесиен токен, валиден 24 часа. През следващите 24 часа се връща на линка без въвеждане на каквото и да било. Не трябва да помни, не трябва да се затруднява.
Не сте съгласни? Грешка. Пет грешки от същия IP адрес и достъпът се блокира за пет минути. Ботът, който се опитва да нахлува с пароли една след друга, се разбива в стената.
Какво просто липсва тук
Не записваме пароли в чист текст. Никъде. Дори в логовете, които преглеждам при търсене на грешки.
Не изпращаме пароли по имейл. Това означава, че ако някой забрави паролата си, аз няма да му я изпратя, защото не я знам. Трябва да я изпратите сами, по същия канал като предишния път.
И не предаваме пароли навън. Никаква аналитика, никакъв маркетинг, никакво AB не докосва тези данни. (То е принцип, който важи за целия cutty.dev, не само тук.)
Две навика, които правят разликата
Първо: не измисляй парола от глава. Името на фирмата плюс годината на основаване е подарък за всеки, който те познава. Генераторът в браузъра ще изплюе нещо по-добро за секунда.
Втори, по-важен: не изпращайте паролата по същия канал, по който е линкът. Линкът е изпратен по имейл? Паролата изпратете чрез SMS. Или обратното. Смисълът е, че превземането на една кутия не дава на никого пълния комплект.
Дреболия, за която малко хора знаят: можеш да направиш няколко линка, водещи до един и същ адрес, но с различни пароли. Даваш достъп на пет души, всеки с отделен линк. Един от тях трябва да си тръгне? Блокираш неговия линк, останалите дори няма да забележат.
Ще промените паролата без създаване на нов линк. Панел, „Редактирай“, ново парола. Внимание: всички активни 24-часови сесии прекъсват незабавно. Всеки трябва да въведе паролата наново.
Граница, която си струва да знаете предварително
Да се върнем към билета за концерта. Паролата предпазва от търсачката и от случайния гост. Тя не предпазва от някой, който знае паролата и реши да я сподели със света.
Ако вашият сценарий звучи като „това трябва да види точно този един човек и никой друг“, самото парола няма да стигне. Тук имате нужда от акаунти, вход, авторизация. Друго ниво, друг проблем.
Но вдигнете ръка, колко често наистина имате такъв сценарий? В моя опит – рядко. В подавляващото брой случаи става въпрос за обикновеното „не искам тук да влиза някой от улицата“. И за това фразата е напълно достатъчна.
Ако искате да видите как изглежда отвътре — при създаването на линк разгънете „Опции за напреднали“ и маркирайте „Добави парола“. Останалата част се случва сама.