OAuth - безопасный протокол кросс-авторизации веб-сайтов Игумнов А.С.

Презентация:



Advertisements
Похожие презентации
Использование AJAX для асинхронной передачи данных. Что такое AJAX. Как использовать. В чем преимущество. Примеры использования на крупных сайтах. Выполнила:
Advertisements

ЗАЩИТА ИНФОРМАЦИИ ПОДГОТОВИЛА
Биометрические системы персональная идентификация.
Создание Adobe AIR клиента для социальных сетей на примере Twitter Нетрибовский Дмитрий, компания «Абсолютист»
Троицкий Д.И. Интернет-технологии1 ДИНАМИЧЕСКИЕ WEB-СТРАНИЦЫ СЕРВЕРНЫЕ СЦЕНАРИИ Лекция 9 Кафедра «Автоматизированные станочные системы» Dept. of Automated.
Единая система аутентификации Обзор решения Москва, 2012г.
Система усиленной аутентификации по отпечатку пальца.
Сетевые службы Для конечного пользователя сеть это не компьютеры, кабели и концентраторы и даже не информационные потоки, для него сеть это, прежде всего,
Организация компьютерной безопасности и защита информации автор: Чекашов а Ирин а 10А учитель: Антонова Е.П год.
Программный комплекс «МагПро КриптоТуннель». Основным назначением «МагПро КриптоТуннель» является: Организация безопасного канала передачи данных защита.
Единая система идентификации и аутентификации (ЕСИА) – новый вид услуг инфраструктуры электронного правительства Круглый стол: «Госуслуги: аспекты информационной.
Выполнила: Абдуллаева С.И. Проверила: Митющенко Е.В.
«Электронная подпись в облаках и на земле» Фураков Александр Заместитель коммерческого директора ООО «КРИПТО-ПРО»
Безопасно ли работать со своими данными через Интернет?
Практика построения и эксплуатации защищенной среды передачи данных Плетнёв Павел Валерьевич Барнаул 2014.
WEB- ТЕХНОЛОГИИ Лекция 6. Понятие Web- сервисов 1 Интерфейс в глобальную сеть для некоторого абстрактного программного обеспечения, этот интерфейс позволяет.
Меры по обеспечению безопасности на прикладном уровне учитель технологии и физкультуры I категории Середин Е.Н. Муниципальное общеобразовательное учреждение.
ПЕРСОНАЛЬНОЕ СКЗИ ШИПКА ОКБ САПР Москва, 2007.
О принципах гарантированной защиты информации в сервис- ориентированных системах ЗАО «ИВК», 2008 г. Лекшин Олег Сергеевич, ведущий инженер – специалист.
Архитектура метаданных WWW. Язык RDF Архитектура метаданных WWW RDF.
Транксрипт:

OAuth - безопасный протокол кросс-авторизации веб-сайтов Игумнов А.С.

Веб-сервисы - 1 этап Доступ к документам (возможно, создаваемым динамически) HTTP, HTML

Веб-сервисы - 2 этап HTML+JS – стандарт для разработки пользовательского интерфейса HTTP – способ вызова удалённых процедур HTTP, HTML, JavaScript

URL – как способ передачи параметров Сервис Имя процедуры Позиционные параметры Именованные параметры SESSIONCOOKIE Переменнные состояния

Веб-сервисы - 3 этап XML, JSON – формализация форматов данных SOAP, OpenID, OAuth – протоколы для распределённых приложений HTTP, XML

Современная ситуация Сервер аутенификации Сервер приложений Сервер данных Редирект Аутентификация OpenID Авторизация OAuth

Аутентификация Целью аутентификации является присвоение пользователю некоего уникального имени Классическая схема – запрос данных в локальной базе или каталоге AD Современная схема – протокол OpenID, позволяющий пользователю на любом сервисе использовать имя (URI), зарегистрированное на любом другом сервисе

Авторизация Целью авторизации является ограничение доступа к API сервера В децентрализованной среде классическая авторизация затруднена Клиентом может выступать сервис- посредник Пароли (и имена) пользователя на клиенте и сервере могут отличаться

Проблемы доверия Пользователь должен уметь делегировать свои полномочия на одном сервисе другому сервису (например, сервер приложений должен получить доступ к серверу данных) При этом, пользователь хочет контролировать объём делегируемых полномочий и не хочет сообщать серверу приложений свой пароль на сервере данных

OAuth Для решения проблемы распределённой авторизации в годах был разработан протокол OAuth (RFC 5849) Протокол рассчитан на широкий класс программ – десктопные программы, браузеры, мобильные приложения Типичный пример – сервер адресных книг синхронизирующий контакты в телефоне, на Googl , на mail.ru и т.д. Логика работы OAuth не привязана к HTTP, но в RFC описана только такая реализация

Терминология-1 В процессе авторизации OAuth участвуют три (и более) стороны: Пользователь – владелец ресурса; Сервер – поставщик услуги; Клиент – потребитель услуги Например: Фотохостинг – сервер; Сервис печати фотографий – клиент; Владелец учётной записи на фотохостинге - пользователь

Терминология-2 В процессе авторизации OAuth стороны представляются временными именами – токенами, достоверность которых подтверждается соответствующими секретами. Используются три вида токенов и соответствующих секретов: Токен клиента – выдаётся при регистрации клиента на сервере (идентифицирует клиента, не даёт никаких прав); Токен запроса – временный токен, который используется для идентификации сеанса пользователя при запросе доступа; Токен доступа – подтверждает текущие права клиента на доступ к API сервера Как правило, токены и секреты – длинные случайные уникальные строки

Наглядный пример Пример из руководства по OAuth c сайта В примере участвуют : Jane – девушка, вернувшаяся из турпоездки Faji – сервис хранения туристических фотографий Beppa – сервис фотопечати Предполагается, что Beppa для интеграции Faji получила от последнего токен и секрет клиента

Jane имеет пароль на Faji

Jane имеет пароль на Beppa, Beppa имеет токен от Faji

Клиент в фоне получает от сервера временный токен

Браузер Jane направляют на Faji, добавив в параметры временный токен

На основе данных токена Jane информируют, кому и какие права она временно передаёт

Jane с её временным токеном возвращают на Beppa

Beppa в фоне обращается к Faji и, если авторизация прошла успешно, меняет временный токен на токен доступа, и с его помощью извлекает данные

Страница Jane обновляется, на ней отображаются доступные для печати снимки

Криптография В протоколе OAuth приняты меры по обеспечению криптографической надёжности, однако авторы рекомендуют передавать каждую конкретную реализацию на анализ экспертам. Реальные имена и пароли по сети не передаются. Передаваемые данные подписываются либо симметричным ключом (HMAC) либо несимметричным (RSA) Для предотвращения атак типа запись-повтор, используется внедрение в подпись даты и/или уникального идентификатора запроса.

Другие проблемы с безопасностью Токен и секрет, хранящиеся на сервере, достаточно защищены, однако в случае взлома сервера могут быть использованы злоумышленниками Токен и секрет, встроенные в приложение, тиражируются вместе с приложением и ненадёжны по определению Сервис может делить выдаваемые токены по уровням доверия и ограничивать доступ к API для ненадёжных клиентов.

Заключение Протокол неплохо обкатан и используется в Google и Twitter Использование криптографии делает его достаточно устойчивым к взлому Есть библиотеки для разных языков, в том числе для perl, php, python Если хочется разработать собственное API для удалённого персонифицированного доступа к сервису – стоит вспомнить про OAuth

Ссылки - популярное изложение протокола (англ.) - пример применения в PHP (рус.) - общедоступный интерфейс регистрации приложений на сервере rutwit.ruhttp://rutwit.ru/apps/new