Рубрика «oauth 2.0»

Записи докладов со второго iOS-митапа Redmadrobot - 1

Спасибо всем, кто провёл вечер пятницы с нами в московском роботохранилище и кто нашёл время присоединиться к трансляции. Доклады и фотографии с митапа тут.
Читать полностью »

Введение

На одном из моих поддерживаемых проектов недавно встала задача проанализировать возможность миграции с .NET фреймворка 4.5 на .Net Core по случаю необходимости рефакторинга и разгребания большого количества накопившегося технического долга. Выбор пал на целевую платформу .NET Core 3.0, так как, судя по утверждению разработчиков от Microsoft, с появлением релиза версии 3.0, необходимые шаги при миграции legacy кода уменьшатся в несколько раз. Особенно нас в нем привлекли планы выхода EntityFramework 6.3 для .Net Core т.е. большую часть кода, основанную на EF 6.2, можно будет оставить «как есть» в мигрированном проекте на net core.

С уровнем данных, вроде, стало понятно, однако, еще одной большой частью по переносу кода остался уровень безопасности, который, к сожалению, после беглых выводов аудита придется почти полностью выкинуть и переписать с нуля. Благо, на проекте уже использовалась часть ASP NET Identity, в виде хранения пользователей и других приделанных сбоку «велосипедов».

Тут возникает логичный вопрос: если в security часть придется вносить много изменений, почему бы сразу же не внедрить подходы, рекомендуемые в виде промышленных стандартов, а именно: подвести приложение под использование Open Id connect и OAuth посредством фреймворка IdentityServer4.

Читать полностью »

image

In the modern world popularity of a mobile applications continues to grow. So does OAuth 2.0 protocol on mobile apps. To make OAuth 2.0 protocol secure on mobile apps it's not enough to implement standard as is. One needs to consider the specifics of mobile applications and apply some additional security mechanisms.

In this article, I want to share the attacks on mobile OAuth 2.0 implementations and security mechanisms used to prevent such attacks. Concepts described in this article are not new but there is lack of the structured information on this topic. The main aim of the article is to fill this gap.
Читать полностью »

Пару недель назад в одном из проектов возник вопрос об интеграции CRM с API Банка Тинькофф. В частности, речь шла о получении выписки по банковскому счету.

В активе имелось:

  1. openapi.tinkoff.ru
  2. Телефон службы поддержки (учитывая занятость отдела техподдержки — дело спасения утопающего, дело рук самого утопающего).
  3. Нагугленный документ: 24386_policy.pdf (с русским буквами внутри, с занятными выражениями, оборотами колдовскими, малопригодная но, все же вещь...)

В ходе гуглежа были также найдены отзывы о том, что настройка API банка Тинькофф дело весьма занимательное и нетривиальное (см. статью на banki.ru «API Тинькофф — мы слишком глупы для этого»).

Да, пришлось малость повозиться, поэтому, дабы сэкономить время другим товарищам по цеху, была написана данная статья.
Читать полностью »

Безопасность мобильного OAuth 2.0 - 1

Всем привет! Я Никита Ступин, специалист по информационной безопасности Почты Mail.Ru. Не так давно я провел исследование уязвимостей мобильного OAuth 2.0. Для создания безопасной схемы мобильного OAuth 2.0 мало реализовать стандарт в чистом виде и проверять redirect_uri. Необходимо учитывать специфику мобильных приложений и применять дополнительные механизмы защиты.

В этой статье я хочу поделиться с вами знаниями об атаках на мобильный OAuth 2.0, о методах защиты и безопасной реализации этого протокола. Все необходимые компоненты защиты, о которых я расскажу ниже, реализованы в последней версии SDK для мобильных клиентов Почты Mail.Ru.
Читать полностью »

Stepik — на данный момент единственная русскоязычная образовательная онлайн-платформа, на который любой желающий может создать экзамен с прокторингом (онлайн-сопровождением и контролем учащегося). Притом такой экзамен может иметь заданную продолжительность, ограниченное время на прохождение, точную дату начала.

В данной статье мы расскажем про то, зачем нужен прокторинг, и в подробностях опишем интеграцию системы онлайн-прокторинга ProctorEdu с платформой Stepik.

Прокторинг в онлайн-экзаменах: как это работает? - 1

Читать полностью »

«С 20 апреля 2017 года отправка запросов на авторизацию из встроенных браузеров будет блокироваться».

Такое сообщение с 1 марта можно увидеть в некоторых приложениях, где необходима авторизация. Об этом Google написали в своём блоге еще в августе 2016, и это значит, что скоро во многих приложениях придется переписывать реализацию регистрации. Приятного мало, однако выход есть – использовать рекомендуемый способ авторизации Google Sign-in.

Об этом способе и будет идти речь в уроке, а также как получить токены, необходимые для работы с API Google.
Читать полностью »

Google имеет несколько версий API для доступа к своим электронным таблицам. Разберемся с тем, как прочитать данные из spreadsheet таблицы в web-приложении на java используя API версии 4.
Читать полностью »

Security Week 46: обход OAuth 2.0, низковольтный ICMP DDoS, приватность iOS и обход локскрина - 1Давно у нас не было научных работ по теме безопасности, и вот, пожалуйста. На европейской конференции 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. Решить проблему можно на стороне провайдеров: если доверять данным только от самого сервера идентификации, и не доверять данным от приложения (которые могут быть подделаны по пути), то элегантный хак работать не будет.
Читать полностью »

Итак, цель данной статьи — показать, как работать с OAuth 2.0 на примере авторизации через Azure AD API. В итоге у нас получится полноценный модуль, выносящий максимально возможное количество кода из проекта, к которому он будет подключен.

В данной статье будут использованы библиотеки Retrofit, rxJava, retrolambda. Их использование обусловлено лишь моим желанием минимизировать бойлерплейт, и ничем больше. А потому сложностей по переводу на полностью ванильную сборку быть не должно.

Первое, что нам нужно будет сделать — осознать, что представляет собой протокол авторизации OAuth 2.0 (в данном случае будет использоваться исключительно code flow) и как это будет выглядеть применительно к нашей цели:

1. Если есть кэшированный токен, перепрыгиваем на пункт 4.

2. Инициализируем 'WebView', в котором откроем страницу авторизации нашего приложения.

3. После ввода данных пользователем и клика по Sign in, будет автоматический редирект на другую страницу, в query parameters которой имеется параметр code. Он то нам и нужен!

4. Обмениваем code на токен через POST запрос.
Читать полностью »