@Iron Bug это не совсем так. Смысл OAuth как раз в том, чтобы не давать приложениям твой основной пароль (и, как следствие, доступ ко всему аккаунту), а лишь токен для выполнения конкретных действий. Скажем, почтовый клиент сможет только работать с почтой гмыла, а не всем гуглопрофилем, где у тебя может быть много всего.
Раньше эту функцию выполняли отдельные пароли приложений, которые можно было создавать.
Токен, получаемый через OAuth, особенно ничем и не отличается. Его точно так же выдаёт сам сервис (т.е. не какой-то посредник). Если сам сервис (гмыло или йандекс) захочет отдать доступ от твоего аккаунта майору или ещё кому, то это они организуют что так, что эдак. Что дополнительный токен могут выпустить, что отдельный логин и пароль к твоей учётке сделать, что просто выгрузить и отдать твои данные - от этого вектора атаки защиты нет в принципе с такими сервисами.
Причём тут ядро и прочее я не понял, так как речь о доступе на уровне приложения изначально. У тебя есть почтовый клиент, ты либо пароль туда вбиваешь, либо через OAuth его регистрируешь. Второе даже чуть посекюрнее, так как токены доступа ротируются, т.е. в случае компрометации канала связи перехваченного токена надолго не хватит. Но перехват TLS такой себе сценарий. От компрометации клиента целиком не поможет ни то, ни другое.
Основные минусы OAuth - сложность в администрировании и необходимость в браузере на целевом устройстве (удачи настроить почту через OAuth в консоли безгуевого хоста).
Лично мне в сценариях типа почты пароли приложений нравятся куда больше. Вот в сложных системах, где может быть много ролей, без него сложно - это да.
@wthinker @nprofile1q...