Давно у нас не было научных работ по теме безопасности, и вот, пожалуйста. На европейской конференции BlackHat EU исследователи из университета Гонконга показали примеры некорректной реализации протокола OAuth 2.0, которые, в ряде случаев, позволяют украсть учетные записи пользователей. Так как речь действительно идет о научном исследовании, то и терминология соответствующая — без всяких этих «ААААА!1 Один миллиард учеток можно легко взломать через OAuth 2.0». Впрочем нет, oh wait, примерно так работа и называется (новость и само исследование).
Как бы то ни было, проблема, обнаруженная исследователями, заключается не в самом OAuth, а в его конкретных реализациях. Необходимость внедрять системы Single-Sign-On не только для веба, но и для мобильных приложений (принадлежащих не только владельцам сервисов идентификации типа Facebook и Google, но и третьей стороне) привела к тому, что стандарт OAuth 2.0 начали надстраивать кто во что горазд, не всегда соблюдая методы безопасности.
В результате авторизация пользователя местами происходит как попало: в исследовании описывается ситуация, когда авторизоваться от имени другого пользователя можно, зная только его логин (обычно это e-mail). Впрочем, описываемые сценарии атаки предусматривают наличие позиции man-in-the-middle, и возможны не всегда. Из обнаруженных в ходе исследования проблемных приложений большинство работает с китайским identity provider Sina, а из 99 исследованных аппов, поддерживающих OAuth через Google и Facebook атаке подвержены всего 17. Решить проблему можно на стороне провайдеров: если доверять данным только от самого сервера идентификации, и не доверять данным от приложения (которые могут быть подделаны по пути), то элегантный хак работать не будет.
Читать полностью »