Какво е двуфакторно удостоверяване? Ръководство на разбираем език
Двуфакторното удостоверяване (2FA) е вход, който изисква два различни вида доказателство, че сте този, за когото се представяте – обикновено нещо, което знаете, като парола, плюс нещо, което имате, като телефона си или ключ за сигурност. Ако престъпник открадне или отгатне паролата ви, пак не може да влезе без втория фактор. Това е един от най-простите начини да защитите важните акаунти.
Защо е важно, когато строите с AI
Когато поискате от AI билдър „вход“, обикновено получавате имейл и парола. Това е добро начало, но паролите се използват повторно, стават жертва на фишинг и изтичат. Ако приложението ви пази нещо ценно – записи на клиенти, фактури, административни контроли, настройки за плащания – една открадната парола може да изложи всичко.
2FA влияе и на решения, за които може да не мислите отначало:
- Кой трябва да го използва. Незадължително за всички, задължително за администраторите, или задължително за всички?
- Кои методи поддържате. Кодове от приложение, SMS, passkeys, ключове за сигурност.
- Какво се случва, когато някой е заключен навън. Загубените телефони са най-честата заявка към поддръжката за всяко приложение с 2FA.
- Къде се налага. Проверката трябва да се извършва на сървъра. Екран за 2FA, който само скрива страницата в браузъра, може да бъде заобиколен.
Не е нужно сами да строите криптографията – добре тествани библиотеки и доставчици на удостоверяване се грижат за това. Но трябва да знаете какво да поискате.
Ежедневна аналогия
Представете си сейф в банков трезор. За да го отворите, ви трябват личната карта (нещо, което банката проверява, че сте, или знаете) и физическият ключ (нещо, което имате). Крадец, който копира подписа ви, пак няма ключа. Крадец, който открадне ключа, пак не минава проверката с личната карта.
2FA работи по същия начин. Паролата е подписът; телефонът или ключът за сигурност е физическият ключ. Всяко от двете само по себе си не е достатъчно.
Трите вида фактора
Стандартите за сигурност, например насоките за дигитална идентичност на американския National Institute of Standards and Technology, групират факторите в три вида:
| Фактор | Примери |
|---|---|
| Нещо, което знаете | Парола, PIN |
| Нещо, което имате | Телефон с приложение за удостоверяване, ключ за сигурност, устройство с passkey |
| Нещо, което сте | Пръстов отпечатък, лице – обикновено за отключване на устройство, което след това прави истинската проверка |
Ключовата дума е различен. Парола плюс въпрос за сигурност са две неща, които знаете, и затова не са истинско двуфакторно удостоверяване. Ако едно изтичане може да разкрие и двете, се брои само като един фактор.
Сравнение на често срещаните методи за 2FA
| Метод | Как работи | Сила | Бележки |
|---|---|---|---|
| SMS код | Кодът се изпраща с SMS на телефона ви | Най-слаб | Уязвим за SIM swapping и фишинг, но е далеч по-добре от липса на 2FA |
| Код по имейл | Кодът ви се изпраща по имейл | Слаб | Толкова безопасен, колкото е имейл акаунтът |
| Приложение за удостоверяване (TOTP) | Приложение като Google Authenticator генерира нов 6-цифрен код, обикновено на всеки 30 секунди | Добър | Работи офлайн; все още може да бъде фишнат, ако фалшив сайт поиска кода |
| Одобрение с push | Приложение пита „Това ли сте вие?“ и вие докосвате „одобри“ | Добър | Внимавайте за „умора от одобрения“, когато потребителите натискат „да“, за да спрат повтарящите се запитвания |
| Passkey или ключ за сигурност | Криптографски ключ на устройство доказва, че сте на истинския сайт | Най-силен | Устойчив на фишинг, защото не отговаря на подобен домейн |
Насоките на NIST третират методите, при които въвеждате код (SMS, имейл, приложения за удостоверяване), като неустойчиви на фишинг, а изпращането на кодове през телефонната мрежа се маркира като „ограничено“. Passkeys и хардуерните ключове за сигурност, основани на стандартите WebAuthn/FIDO2, са тези, които се считат за устойчиви на фишинг.
Практичен извод: приложението за удостоверяване е силен и лесен стандартен избор за повечето приложения, а passkeys си заслужават, ако потребителите ви са готови да ги използват.
Практически пример: 2FA за клиентски портал
Да кажем, че сте построили портал, в който малка счетоводна фирма споделя данъчни документи с клиенти. Ето как изглежда разумна настройка на 2FA, стъпка по стъпка.
Включване (регистрация). Прия, клиент, отваря настройките и натиска „Включи двуфакторно удостоверяване“. Приложението генерира тайна и я показва като QR код. Тя го сканира с приложението си за удостоверяване, което започва да показва шестцифрени кодове. Въвежда текущия код обратно в портала, за да докаже, че настройката работи. Приложението показва десет кода за възстановяване и я моли да ги запази на сигурно място.
Вход след това.
- Прия въвежда имейл и парола. Сървърът ги проверява.
- Вместо да я вкара веднага, сървърът маркира сесията като „паролата е вярна, вторият фактор предстои“ и показва екрана за код.
- Тя въвежда кода от приложението си. Сървърът го сверява със запазената ѝ тайна, като допуска малко отклонение в часовника.
- Едва сега сървърът създава пълна сесия и ѝ позволява да вижда документите.
Какво вижда нападателят. Ако паролата на Прия е изтекла от друг сайт, нападателят заседава на стъпка 3. Всеки неуспешен опит за код се брои и след няколко грешни опита акаунтът се заключва временно, а Прия получава имейл.
Загуба на телефона. Прия използва един от кодовете си за възстановяване, за да влезе, изключва 2FA и го включва отново с новия си телефон, и получава нови кодове за възстановяване. Използваният код никога вече не може да се ползва.
За служителите. Счетоводителите във фирмата виждат всички файлове на всички клиенти, затова порталът изисква 2FA за служебните акаунти; не могат да достигнат таблото, докато не се регистрират.
Често срещани термини
| Термин | Значение |
|---|---|
| 2FA / MFA | Двуфакторно / многофакторно удостоверяване: вход с повече от един вид доказателство. |
| Фактор | Един вид доказателство: нещо, което знаете, имате или сте. |
| TOTP | Time-based one-time password – въртящите се кодове в приложенията за удостоверяване. |
| Споделена тайна | Скритата стойност, настроена чрез QR код, която и приложението, и телефонът ви използват, за да генерират съвпадащи кодове. |
| Кодове за възстановяване (резервни) | Еднократни кодове за вход, когато сте загубили втория си фактор. |
| Passkey | Удостоверителна информация за вход, съхранена на устройството ви, която използва криптография с публичен ключ вместо парола. |
| Ключ за сигурност | Малко физическо устройство (USB или NFC), което върши същата работа като passkey. |
| SIM swapping | Измама към мобилния оператор, за да се прехвърли номерът на някого към нова SIM карта, така че SMS съобщенията да отиват при нападателя. |
| Фишинг | Фалшив сайт или съобщение, които заблуждават хората да предадат пароли или кодове. |
| Step-up удостоверяване | Повторно изискване на втория фактор преди чувствително действие, например смяна на данните за изплащане. |
Чести грешки и заблуди
- „2FA прави акаунта непробиваем.“ Прави го много по-труден. Фишинг сайтовете все още могат да уловят въведените кодове в реално време, затова съществуват passkeys.
- Проверка на кода само в браузъра. Ако сървърът издава пълна сесия след паролата, екранът с кода е декорация. Сървърът трябва да отказва достъп, докато вторият фактор не е преминат.
- Без ограничение на опитите за код. Шестцифрен код има милион възможности. Без ограничаване на заявките и заключвания нападателят просто продължава да гадае.
- Забравено възстановяване. Без кодове за възстановяване всеки загубен телефон става заявка към поддръжката или клиент, който е заключен навън.
- Небрежно съхраняване на TOTP тайната. Споделената тайна трябва да е шифрована в базата данни и никога да не се показва отново след настройката.
- Позволяване на потребителите да изключват 2FA без повторна проверка. Изключването на 2FA или смяната на имейла трябва да изисква парола и текущ код.
- Парола плюс въпрос за сигурност се брои за 2FA. Не се брои – и двете са неща, които знаете.
Какво да поискате от AI билдъра
- „Добави незадължително двуфакторно удостоверяване с приложение за удостоверяване (TOTP), с QR код за настройка и потвърдителен код преди включване.“
- „Показвай десет еднократни кода за възстановяване, когато 2FA е включено. Съхранявай ги хеширани, като паролите.“
- „Налагай 2FA на сървъра: без пълна сесия, докато вторият фактор не е преминат.“
- „Ограничи опитите за код и заключи входа за 15 минути след повтарящи се грешки. Изпрати на потребителя имейл, когато това се случи.“
- „Изисквай 2FA за админ акаунтите.“
- „Поискай паролата и текущ код, преди да изключиш 2FA или да смениш имейла на акаунта.“
- „Използвай добре известна библиотека или вградената 2FA на нашия доставчик на удостоверяване – не пиши криптографията сам.“
- „Обясни кой метод си използвал и къде се съхраняват тайните.“
Ако използвате хостван доставчик на удостоверяване, проверете дали вече предлага 2FA или passkeys; включването на вградена функция обикновено е по-безопасно от собствен код. Стъпка по стъпка версията е в как да добавите двуфакторно удостоверяване, а какво е удостоверяване обяснява основите на входа отдолу.
Двуфакторно удостоверяване в Mythex
Mythex не включва вградена система за вход за потребителите на вашето приложение, така че 2FA е част от подхода за удостоверяване, който изберете – собствен вход с имейл и парола, върху базата данни на проекта, или хостван доставчик, който предлага 2FA. Поисквате от агента да го добави в чата, а ключовете на доставчика се слагат в тайните на проекта, а не в самия чат. Ръководството в документацията за добавяне на вход в приложението има стартова подсказка за адаптиране, а сигурността за приложенията, които строите обяснява навиците около ключовете. Преди стартиране минете през контролния списък за сигурност за приложения, построени с AI.
Въпроси
Какво е двуфакторно удостоверяване с прости думи?
Двуфакторното удостоверяване (2FA) означава, че влизането изисква два различни вида доказателство – обикновено паролата ви плюс код от телефона ви или ключ за сигурност. Някой, който открадне само паролата ви, пак не може да влезе.
2FA същото ли е като MFA?
Почти. Многофакторното удостоверяване (MFA) означава два или повече фактора; двуфакторното удостоверяване е най-честият случай с точно два. В ежедневната употреба термините се ползват взаимозаменяемо.
Безопасно ли е двуфакторно удостоверяване чрез SMS?
Много по-добро е от самата парола, но е най-слабата често срещана опция. SMS съобщенията могат да бъдат прихванати или пренасочени чрез SIM swapping, а фалшива страница за вход може да накара хората да въведат кода. Приложенията за удостоверяване са по-силни, а passkeys или ключовете за сигурност са още по-силни.
Приложението ми има ли нужда от двуфакторно удостоверяване?
Ако акаунтите държат пари, лични данни или администраторска власт над други потребители, предлагането на 2FA е добра идея, а изискването му за администраторите е често срещано. За просто хоби приложение може да е незадължително или да остане за по-късно.
Какво става, ако потребител загуби телефона си?
За това служат кодовете за възстановяване: кратък списък с еднократни резервни кодове, показван при включване на 2FA. Без тях възстановяването обикновено означава ръчна проверка на самоличността от собственика на приложението, затова го планирайте преди стартиране.