OAuth: Как работи сигурното упълномощаване без споделяне на парола

Виждали сте го десетки пъти: „Влезте с Google", „Продължете с Facebook" или „Влезте с Apple". Това безпроблемно натискане на бутон е OAuth в действие. Но какво всъщност се случва зад кулисите — и защо е важно за вашата поверителност и сигурност?

Какво представлява OAuth

OAuth е съкращение от Open Authorization. Това е отворен стандартен протокол — което означава, че всеки може да го имплементира — който управлява упълномощаването (какво ви е разрешено да правите), а не удостоверяването (доказването на самоличността ви). Текущата версия, OAuth 2.0, се използва от практически всяка голяма платформа в интернет.

С прости думи, OAuth ви позволява да дадете на едно приложение разрешение за достъп до конкретни данни или функции в друго приложение — без никога да предавате паролата си. Вие запазвате контрол върху това какво се споделя, а приложението на третата страна никога не вижда вашите идентификационни данни.

Как работи OAuth

Ето опростено описание на това, което се случва, когато натиснете „Влезте с Google" в приложение на трета страна:

  1. Заявявате достъп. Натискате бутона за вход и приложението ви пренасочва към страницата за вход в Google.
  2. Удостоверявате се директно. Въвеждате своите идентификационни данни за Google на собствените сървъри на Google — приложението на третата страна не вижда нищо.
  3. Предоставяте разрешение. Google пита дали искате да разрешите на приложението достъп до конкретни данни (като вашето име и имейл). Вие одобрявате.
  4. Издава се токен. Google изпраща на приложението краткотраен токен за достъп — поредица от символи, която действа като временен ключ. Този токен има определен обхват (до какво може да получи достъп) и срок на валидност.
  5. Приложението използва токена. Приложението представя този токен, когато трябва да извлече вашите данни. То никога не се нуждае от действителната ви парола.

Ако впоследствие отмените достъпа, токенът става невалиден. Приложението на третата страна незабавно губи своите разрешения — без да е необходима смяна на парола.

Защо OAuth е важен за сигурността

Основното предимство на OAuth по отношение на сигурността е изолацията на идентификационните данни. Ако приложение на трета страна претърпи пробив в данните, при най-лошия сценарий нападателите получават изтекъл токен за достъп — не действителната ви парола за Google или Apple. Основният ви акаунт остава защитен.

OAuth също така ограничава обхвата. Едно приложение може да поиска разрешение само да прочете вашия имейл адрес, а не да изпраща имейли от ваше име. Този детайлен модел на разрешения е значим защитен слой в сравнение с предоставянето на пълен достъп до акаунта.

OAuth и потребителите на VPN

Ако използвате VPN, OAuth се пресича с вашата поверителност по няколко важни начина.

Рискове от прихващане на токени. В незащитени мрежи нападателите могат да се опитат да извършат атаки тип „човек по средата", за да прихванат OAuth токени по време на процеса на пренасочване. VPN криптира трафика ви, като значително намалява тази уязвимост — особено при обществен Wi-Fi на летища, хотели или кафенета.

OAuth чрез HTTPS. OAuth 2.0 изисква HTTPS, за да функционира сигурно. VPN добавя допълнителен слой на криптиране, но не замества HTTPS. И двете, работещи заедно, осигуряват по-надеждна защита.

Поверителност при свързване на акаунти. Когато използвате „Влезте с Google" или подобна опция, Google знае до кои услуги получавате достъп и кога. VPN скрива вашия IP адрес по време на този процес, но доставчикът на идентичност (Google, Apple и др.) все пак регистрира това събитие на упълномощаване. Потребителите със строги изисквания за поверителност следва да преценят тези компромиси.

Корпоративни VPN среди. Много предприятия комбинират VPN достъп с базирани на OAuth системи за Single Sign-On (SSO). Служителите се удостоверяват еднократно чрез доставчик на идентичност — често с помощта на OAuth или свързания протокол OpenID Connect — и получават достъп до вътрешни ресурси, защитени от VPN.

Практически случаи на употреба

  • Интеграции с приложения: Разрешаване на инструмент за управление на проекти да публикува актуализации в работното ви пространство в Slack.
  • Социални влизания: Вход в Spotify с помощта на вашия акаунт във Facebook.
  • Достъп до API: Предоставяне на приложение за бюджетиране на достъп само за четене до вашите банкови транзакции.
  • Инструменти за разработчици: Упълномощаване на услуга за внедряване на код да публикува актуализации в хранилищата ви в GitHub.

OAuth срещу пароли: по-широката картина

OAuth не замества паролите — той намалява колко често трябва да ги използвате при услуги на трети страни. Комбиниран със силни пароли, двуфакторно удостоверяване и надежден VPN, OAuth е един елемент от многослоен подход към сигурността, който значително намалява уязвимата ви повърхност в интернет.