OAuth, OIDC, MFA - как всъщност влизаш някъде.
OAuth решава един конкретен проблем: как да пуснеш чуждо приложение да работи с твоите данни, без да му дадеш ключа от всичко. Вместо парола, системата издава токен - временен пропуск с точно изписани граници: „тази трета страна може да чете календара ти, нищо друго, за 30 дни“. Натиснеш „вход с Google“ под някой сайт - и точно това се случва зад кулисите. Пропускът може да бъде отнет всеки момент, без да пипаш паролата си.
Проблемът е, че пропускът не казва кой го носи, само какво му е позволено. Тук идва OIDC, построен върху OAuth. Той добавя печат със самоличност - потвърждение, че зад заявката стои конкретен, проверен човек. Затова когато влезеш някъде „с Google“ или „с Apple“, се случват две различни неща едновременно: получаваш достъп (OAuth) и потвърждаваш кой си (OIDC). Повечето хора никога не различават двете - за тях е просто един клик.
MFA стои на съвсем друго ниво - не какво имаш достъп, а дали изобщо си ти. Паролата е нещо, което знаеш. Вторият фактор е нещо, което имаш или си - телефон с код, приложение, което генерира числа на всеки 30 секунди, push-известие, отпечатък. Идеята е проста: открадне ли някой паролата ти, да не стигне доникъде без втората проверка. На хартия звучи непробиваемо.
На практика не е. Атакуващите отдавна не се борят с паролата - заобикалят проверката. Крадат самия токен, след като си влязъл, вместо да гадаят паролата ти. Това е сесийна кражба и токенът работи като истинска самоличност, без да пита нищо повторно. Или бомбардират телефона ти с push-заявки за MFA посред нощ, докато полусънен натиснеш „одобри“ само за да спре звукът - атака, позната като MFA умора. Или те подмамват да „разрешиш достъп“ на фалшиво приложение, което после държи легитимен OAuth пропуск към акаунта ти, без да е крало нищо.