Невидимка вк авторизация: vkontakte api — VK api — Как скрыть статус «online» авторизированного пользователя?

Иммобилайзер StarLine i96CAN: защитник-невидимка

by StarLine_news, 12.12.2018

StarLine i96 CAN — умный и надежный страж автомобиля. Он распознаёт владельца по беспроводной технологии Bluetooth Smart и защищает от угона, блокируя двигатель при попытке начать движение без авторизации.

Умное разрешение поездки

Собираетесь в путь? Авторизуйтесь по Bluetooth Smart с помощью StarLine метки или смартфона с приложением StarLine Ключ. Либо вводя индивидуальный PIN-код штатными кнопками автомобиля. Для еще большей надежности рекомендуется комбинировать указанные способы. Приводим один из надежных вариантов:

Безопасная блокировка двигателя

Лишите угонщика наживы! Иммобилайзер отслеживает запуск двигателя по бортовому напряжению. Благодаря технологии iCAN, двигатель будет надежно заблокирован по цифровой шине.

Даже если злоумышленник повредит CAN-шину, иммобилайзер заблокирует двигатель в момент запуска с помощью кодового реле StarLine R4, по аналоговой цепи. Возможность подбора кодовой посылки исключена!

Хотите сохранить дистанционный запуск на своем автомобиле? Умный StarLine i96CAN позаботится об этом: блокировка двигателя включится только при начале движения или при переключении АКПП, или при увеличении оборотов двигателя. Хозяину — помогаем, угонщику — мешаем!

Защита от силового захвата

Забежали в ближайший магазин и забыли в автомобиле штатный ключ, а этим воспользовался угонщик? Вам поможет отложенная дополнительная авторизация: она произойдет сразу после начала движения. Не найдя метку или смартфон в зоне контроля, иммобилайзер безопасно заблокирует двигатель.

Защита диагностической шины

Не дайте угонщику прописать свой штатный ключ или «закоротить» CAN-шину! StarLine i96 CAN защищает автомобиль от несанкционированного доступа к диагностической шине вашего автомобиля. Блокируйте этот разъем всегда кроме сервисного режима или только в режиме «Охрана».

Защита при краже штатного ключа

Если у вас в автомобиле есть функция бесключевого доступа Keyless, попросите мастера-установщика ввести еще один уровень защиты — блокировку штатного радиоканала по CAN. Она активируется при вашем удалении от автомобиля. Злоумышенника ждет разочарование: завести автомобиль украденным штатным ключом в отсутствие Bluetooth метки будет невозможно.

Ваша экономия на КАСКО

Выбрав StarLine i96 CAN для своего автомобиля, вы сэкономите на КАСКО до 20% по риску «Угон/Хищение» в страховой компании «Ингосстрах». 

Защита — МАСТЕРски!

Все нюансы нужных вам настроек обсудите со специалистом по установке. Активируйте режим «Свободные руки»; выберите оптимальное условие включения блокировки двигателя; отключите звуковую индикацию в отсутствие метки, если хотите сделать присутствие иммобилайзера незаметным.

С программой StarLine Мастер и вариативностью подключения  настройка и обновление иммобилайзера — просты и удобны. Ваши пожелания исполнятся в считанные минуты!

С версией программного обеспечения 1.6.0 доступно еще больше умных возможностей для вашей безопасности.Подробности — здесь. Проконсультируйтесь у своего мастера-установщика!

Охрана еще умнее
Подключите иммобилайзер к маяку, например, охранно-мониторинговому StarLine M17 — и вы получите полноценный охранный комплекс, который сообщит на ваш смартфон о попытке покушения на автомобиль.

 

КОМПОНЕНТStarLine
i96 CAN
StarLine
i96 CAN LUX
StarLine
i96 CAN ECO
StarLine
i96 CAN SMART
Метка Bluetooth Smart
2 шт.
2 шт.1 шт.
Авторизация по смартфону
Авторизация штатными кнопками
Внешнее реле блокировки
Контроль запуска двигателя по напряжению при отключении CAN
Кодовое реле StarLine R4 
Беспроводной подкапотный блок StarLine R6 
Рекомендованная розничная цена10 750 Р12 350 Р7 400 Р6 250 Р

*Стоимость актуальна на дату публикации

StarLine надежно защищает с умом

StarLine Победит

Category : Новинки

Александра Степанова | RB.

RU — новые технологии, бизнес и карьера в цифровой экономике

Редактор — RB

Найдено

124 материала данного автора Читать далее

И как наблюдение за показателями влияет на здоровье

Читать далее

Читать далее

Встроенные программы в телефонах и компьютерах становятся все совершеннее

Читать далее

Читать далее

Это разработка специалистов из Facebook и Университета Мэриленда

Читать далее

Читать далее

Как научиться «читать» людей по их привычкам

Читать далее

Читать далее

Обычные электронные письма могут быть очень эффективными

Читать далее

Читать далее

Их можно перенести в Google Фото за несколько кликов

Читать далее

Читать далее

Советы для начинающих инвесторов

Читать далее

Читать далее

Человечество еще никогда не разрабатывало прививки с такой скоростью

Читать далее

Читать далее

Дейтинг-приложение Nanaya работает на основе уникального алгоритма

Читать далее

Читать далее

Ситуации в рабочих чатах часто напоминают ссоры старшеклассников

Читать далее

Показать еще

Авторизация
С помощью социальной сети
Или с помощью e-mail и пароля

E-mail

Пароль

Регистрация Забыли пароль?

Регистрация на Rusbase

Имя

Фамилия

E-mail

Пароль

Нажимая на кнопку «Зарегистрироваться» я соглашаюсь с условиями пользовательского соглашения

Вход

Если вы забыли пароль, мы вышлем вам его на электронную почту

Ваш email

Вход

Броня и характеристики ВК 30.

01 (Н) | Веб-приложение Armor Inspector

реклама предназначена только для участников, не делающих пожертвований, узнайте, почему

цель

объявления предназначены только для участников, не делающих пожертвования, узнайте, почему

страна

объявления предназначены только для участников, не делающих пожертвования, узнайте, почему

информация

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

Инспектор брони — это приложение для игры World of Tanks, включая версии для ПК, Blitz и Console. Armor Inspector доступен онлайн, на мобильных устройствах iOS/Android и на ПК.

Armor Inspector может показать вам модели толщины брони (модели коллизий World of Tanks), отобразить расположение экипажа и модулей, включая боеукладки, топливные баки, двигатели. Он имеет калькулятор пробития, который поможет вам понять, почему и как вы можете пробить вражеский танк.

В приложении также больше функций, помимо калькулятора пера и расположения модулей. Приложение может отображать визуальные модели World of Tanks, полные характеристики танков, может отображать и оценивать урон от фугасных боеприпасов, может оценивать урон от тарана и многое другое. С помощью Armor Inspector вы можете сравнить танки WoT и визуально проверить разницу в броне и спецификациях.

как использовать инспектор брони

Слева есть меню, где вы можете выбрать режим приложения.

Рентген позволяет увидеть модели столкновений WoT, расположение модулей WoT и визуальные модели WoT. Здесь вы можете проверить толщину каждой броневой пластины.

Противостояние поможет вам изучить механику проникновения в WoT. Здесь вы можете выбрать стрелка и целевые танки, а также имитировать выстрел в любую заданную точку. Приложение показывает все уязвимые места танка в интерактивном режиме.

Столкновение предназначено для измерения того, сколько урона вы можете нанести (и получить) при таране.

Не забудьте указать версию игры в Настройках, будь то ПК, Блиц или Консоль. Броня

VK 30.01 (H) и информация на этой странице

С помощью веб-приложения Armor Inspector выше вы можете узнать схему брони VK 30.01 (H) , уязвимые места и характеристики.

Перейдите в меню «Рентген», чтобы проверить VK 30.01 (H) модель столкновения , толщину каждой броневой пластины и характеристики. Полные спецификации VK 30.01 (H) также доступны в таблице рядом с веб-приложением. Используйте , сравните 9Кнопка 0040 на сравните бак VK 30.01 (H) с любым другим баком wot.

Используйте меню «Противостояние», чтобы посмотреть модель живой брони VK 30.01 (H) относительно любого выбранного вами стрелкового танка. ВК 30.01 (Н) слабые места отображаются красным и зеленым цветом. Расстояние съемки регулируется увеличением и уменьшением масштаба.

это бесплатно?

Основные инструменты можно попробовать бесплатно. Однако мы два игрока, и мы никоим образом не поддерживаем Wargaming, и должны сами извлекать и находить всю информацию. Это стоило нам огромного количества времени и денег, чтобы сделать это приложение для вас, а также это стоило нам денег, чтобы управлять этим веб-сайтом и предоставлять данные HD для приложения.

Рентгеновский режим доступен всем бесплатно. В «Конфронтации» танки высокого уровня заблокированы. В режиме столкновения некоторые страны заблокированы.

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

У меня есть вопрос

Вы можете разместить свой вопрос на нашем дискорд-канале.

Объявления

предназначены только для участников, не делающих пожертвования, узнайте, почему

Безопасность мобильного OAuth 2.0 / Хабр

Популярность мобильных приложений продолжает расти. Как и протокол OAuth 2.0 в мобильных приложениях. Недостаточно внедрить стандарт, как сделать безопасным протокол OAuth 2.0.

Нужно учитывать специфику мобильных приложений и применять некоторые дополнительные механизмы безопасности.

В этой статье я хочу поделиться концепциями мобильных атак OAuth 2.0 и механизмов безопасности, используемых для предотвращения таких проблем. Описанные концепции не новы, но структурированной информации по данной теме не хватает. Основная цель статьи – восполнить этот пробел.

OAuth 2.0 — это протокол авторизации , который описывает способ для клиентской службы получить безопасный доступ к ресурсам пользователя у поставщика услуг. Благодаря OAuth 2.0 пользователю не нужно вводить свой пароль за пределами поставщика услуг: весь процесс сводится к нажатию кнопки «Я согласен предоставить доступ к…».

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

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

Но аутентификация была только началом. Во времена мобильных приложений и прославления конверсий доступ к приложению с помощью всего одной кнопки звучал приятно. Разработчики адаптировали OAuth 2.0 для мобильного использования. Конечно, мало кто беспокоился о безопасности и специфике мобильных приложений: мол, и в продакшн пошли! Опять же, OAuth 2.0 плохо работает за пределами веб-приложений: одни и те же проблемы возникают как в мобильных, так и в настольных приложениях.

Итак, давайте разберемся, как сделать мобильный OAuth 2.0 безопасным.

Есть две основные проблемы безопасности мобильного OAuth 2.0:

  1. Ненадежный клиент. Некоторые мобильные приложения не имеют бэкенда для OAuth 2. 0, поэтому клиентская часть потока протокола идет на мобильное устройство.
  2. Перенаправления из браузера в мобильное приложение ведут себя по-разному в зависимости от настроек системы, порядка установки приложений и прочей магии.
Давайте подробно рассмотрим эти вопросы.

Мобильное приложение является публичным клиентом
Чтобы понять корни и последствия первой проблемы, давайте посмотрим, как работает OAuth 2.0 в случае взаимодействия сервер-сервер, а затем сравним его с OAuth 2.0 в случае взаимодействия клиент-сервер.

В обоих случаях все начинается с того, что клиентский сервис регистрируется на сервисе провайдера и получает

client_id и , в некоторых случаях , секрет_клиента. client_id является общедоступным значением и требуется для идентификации службы клиента, в отличие от значения client_secret , которое является частным. Подробнее о процессе регистрации можно прочитать в RFC 7591.

На схеме ниже показано, как работает OAuth 2.0 при межсерверном взаимодействии.


Источник изображения: https://tools.ietf.org/html/rfc6749#section-1.2

Протокол OAuth 2.0 можно разделить на три основных этапа:

  1. [шаги A-C] Получите код авторизации (далее код ).
  2. [шаги D-E] Обмен с кодом на access_token .
  3. Получить ресурс через access_token .

Подробно рассмотрим процесс получения code value:

  1. [Шаг A] Клиент перенаправляет пользователя к поставщику услуг.
  2. [Шаг B] Поставщик услуг запрашивает у пользователя разрешение на предоставление клиенту данных (стрелка B вверх). Пользователь предоставляет доступ к данным (стрелка B вправо).
  3. [Шаг C] Поставщик услуг возвращает код в браузер пользователя, который перенаправляет код клиенту.
Давайте поговорим подробнее о процессе получения access_token :

  1. [Шаг D] Клиентский сервер отправляет запрос на получение access_token . Code , client_secret и redirect_uri включены в запрос.
  2. [Шаг E] В случае действительного код , client_secret
    и redirect_uri , access_token предоставляется.
Запрос access_token выполняется по схеме server-to-server: поэтому, как правило, злоумышленнику необходимо взломать сервер службы клиента или сервер поставщика услуг, чтобы украсть access_token .

Теперь рассмотрим мобильную схему OAuth 2.0 без бэкенда (взаимодействие клиент-сервер).


Происхождение картинки: https://tools.ietf.org/html/rfc8252#section-4.1

Основная схема разбита на такие же основные шаги:

  1. [шаги 1-4 на картинке] Получаем код .
  2. [шаги 5-6 на картинке] Обмен кода на access_token
  3. Получить доступ к ресурсу через access_token
Однако в этом случае мобильное приложение имеет еще и серверные функции; следовательно, client_secret будет встроен в приложение. В результате client_secret нельзя скрыть от злоумышленника на мобильных устройствах. Встроенное значение client_secret можно извлечь двумя способами: путем анализа трафика между приложением и сервером или путем обратного проектирования. И то, и другое можно легко реализовать, поэтому client_secret бесполезен на мобильных устройствах.

Вы можете спросить: «Почему бы нам сразу не получить access_token ?» Вы можете подумать, что этот дополнительный шаг не нужен. Кроме того, существует схема неявного предоставления, которая позволяет клиенту получить access_token сразу. Несмотря на то, что в некоторых случаях его можно использовать, неявное предоставление не будет работать для безопасного мобильного OAuth 2. 0.

Перенаправление на мобильные устройства
Как правило, для перенаправления из браузера в приложение используются настраиваемая схема URI и механизмы AppLink. Ни один из этих механизмов не может быть таким безопасным, как перенаправление браузера само по себе.

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

Все упрощается, когда каждая схема на устройстве соответствует одному приложению. Но что, если два приложения прописывают одну и ту же схему на одном устройстве? Как операционная система решает, какое приложение открыть при обращении через пользовательскую схему URI? Android покажет окно с выбором приложения и ссылкой для перехода. В iOS нет процедуры для этого, поэтому можно открыть любое приложение. В любом случае, у злоумышленника есть шанс перехватить код или access_token.

В отличие от пользовательской схемы URI, AppLink гарантирует открытие нужного приложения, но у этого механизма есть несколько недостатков:

  1. Каждый клиент сервиса должен пройти процедуру верификации.
  2. Пользователи Android могут отключить AppLink для определенного приложения в настройках.
  3. Версии Android старше 6.0 и версии iOS старше 9.0 не поддерживают AppLink.
Все эти недостатки AppLink увеличивают кривую обучения для потенциальных клиентов службы и могут привести к сбою OAuth 2.0 для пользователей при некоторых обстоятельствах. Вот почему многие разработчики не выбирают механизм AppLink в качестве замены переадресации браузера в протоколе OAuth 2.0.

Проблемы с мобильным OAuth 2.0 привели к некоторым специфическим атакам. Давайте посмотрим, что они из себя представляют и как они работают.

Атака с перехватом кода авторизации
Рассмотрим ситуацию, когда на пользовательском устройстве установлено легитимное приложение (клиент OAuth 2. 0) и вредоносное приложение, зарегистрировавшее ту же схему, что и легитимное. На картинке ниже показана схема атаки.


Происхождение изображения https://tools.ietf.org/html/rfc7636#section-1

Вот такая проблема: на четвертом шаге браузер возвращает код в приложении через Custom URI Scheme и, следовательно, код может быть перехвачен вредоносным приложением (поскольку оно прописано по той же схеме, что и легитимное приложение). Затем вредоносное приложение меняет code на access_token и получает доступ к данным пользователя.

Какая защита? В некоторых случаях можно использовать межпроцессное взаимодействие; мы поговорим об этом позже. В общем, вам нужна схема Proof Key for Code Exchange. Это описано на схеме ниже.


Источник изображения: https://tools.ietf.org/html/rfc7636#section-1.1

Клиентский запрос имеет несколько дополнительных параметров: code_verifier , code_challenge (в схеме 9010 9 t(code_verifier) ​​ ) и code_challenge_method (на схеме t_m ).

Code_verifier — это случайное число с минимальной длиной 256 бит, которое используется только один раз. Итак, клиент должен сгенерировать новый code_verifier 9.0110 для каждого запроса кода .

Code_challenge_method — это имя функции преобразования, чаще всего SHA-256.

Code_challenge — это code_verifier , к которому было применено преобразование code_challenge_method и который закодирован в URL Safe Base64.

Преобразование code_verifier в code_challenge необходимо для отражения векторов атаки на основе перехвата code_verifier (например, из системных логов устройства) при запросе код .

В случае, если пользовательское устройство не поддерживает SHA-256, клиенту разрешено использовать простое преобразование code_verifier . Во всех остальных случаях необходимо использовать SHA-256.

Вот как работает эта схема:

  1. Клиент генерирует code_verifier и запоминает его.
  2. Клиент выбирает code_challenge_method и получает code_challenge от code_verifier .
  3. [Шаг А] Клиент запрашивает код , к запросу добавляются code_challenge и code_challenge_method .
  4. [Шаг B] Поставщик сохраняет code_challenge и code_challenge_method на сервере и возвращает code клиенту.
  5. [Шаг C] Клиент запрашивает access_token с добавленным к нему code_verifier .
  6. Провайдер получает code_challenge из входящего code_verifier , а затем сравнивает его с сохраненным code_challenge .
  7. [Шаг D] Если значения совпадают, провайдер предоставляет клиенту access_token .
Чтобы понять, почему code_challenge предотвращает перехват кода, давайте посмотрим, как выглядит поток протокола с точки зрения злоумышленника.

  1. Во-первых, законные запросы приложений код ( code_challenge и code_challenge_method отправляются вместе с запросом ).
  2. Вредоносное приложение перехватывает код (но не code_challenge , поскольку кода _challenge нет в ответе).
  3. Вредоносное приложение запрашивает access_token (с действительным кодом , но без действительного code_verifier ).
  4. Сервер замечает несоответствие code_challenge и выдает сообщение об ошибке.
Обратите внимание, что злоумышленник не может угадать code_verifier (случайное 256-битное значение!) или найти его где-то в логах (поскольку первый запрос фактически передал code_challenge ).

Итак, code_challenge отвечает на вопрос поставщика услуг: « access_token запрашивается тем же клиентом приложения, который запрашивал code , или другим?».

OAuth 2.0 CSRF
OAuth 2.0 CSRF относительно безвреден, когда для авторизации используется OAuth 2.0. Совсем другая история, когда для аутентификации используется OAuth 2.0. В этом случае OAuth 2.0 CSRF часто приводит к захвату аккаунта.

Подробнее об атаке CSRF в соответствии с OAuth 2.0 поговорим на примере клиента приложения такси и провайдера provider.com. Сначала злоумышленник на своем устройстве входит в учетную запись [email protected] и получает код для такси. Затем он прерывает процесс OAuth 2.0 и генерирует ссылку:

 com.taxi.app://oauth?
код = b57b236c9bcd2a61fcd627b69ae2d7a6eb5bc13f2dc25311348ee08df43bc0c4 
Затем злоумышленник отправляет эту ссылку своей жертве, например, в виде письма или текстового сообщения от службы такси. Жертва переходит по ссылке, открывается приложение такси и получает access_token . В итоге они попадают в аккаунт
такси злоумышленника . Не подозревая об этом, жертва использует этот аккаунт: совершает поездки, вводит личные данные и т. д.

Теперь злоумышленник может в любое время войти в учетную запись такси жертвы, так как она привязана к [email protected] . Атака входа в систему CSRF позволила злоумышленнику украсть учетную запись.

Атаки CSRF обычно отбиваются с помощью токена CSRF (его также называют state ), и OAuth 2.0 не является исключением. Как использовать токен CSRF:

  1. Клиентское приложение генерирует и сохраняет токен CSRF на мобильном устройстве клиента.
  2. Клиентское приложение включает токен CSRF в код запрос доступа.
  3. Сервер возвращает тот же токен CSRF с кодом в ответе.
  4. Клиентское приложение сравнивает входящие и сохраненные токены CSRF. Если их значения совпадают, процесс продолжается.
Требования к токену CSRF: одноразовый номер должен быть не менее 256 бит и получен из хорошего источника псевдослучайных последовательностей.

Вкратце, токен CSRF позволяет клиенту приложения ответить на вопрос: «Это я инициировал access_token запрос или кто-то пытается меня обмануть?».

Жестко закодированный секрет клиента
Мобильные приложения без серверной части иногда хранят жестко запрограммированные значения client_id и client_secret . Конечно, их можно легко извлечь с помощью приложения обратного проектирования.

Влияние раскрытия client_id и client_secret сильно зависит от того, насколько поставщик услуг доверия доверяет определенному client_id , client_secret пара. Одни используют их только для того, чтобы отличить одного клиента от другого, в то время как другие открывают скрытые конечные точки API или устанавливают более мягкие ограничения скорости для некоторых клиентов.

В статье «Почему ключи и секреты API OAuth небезопасны в мобильных приложениях» более подробно рассматривается эта тема.

Вредоносное приложение, действующее как законный клиент
Некоторые вредоносные приложения могут имитировать легитимные приложения и отображать экран согласия от их имени (экран согласия — это экран, на котором пользователь видит: «Я согласен предоставить доступ к…»). Пользователь может нажать «разрешить» и предоставить вредоносному приложению свои данные.

Android и iOS предоставляют механизмы перекрестной проверки приложений. Поставщик приложения может убедиться, что клиентское приложение является законным, и наоборот.

К сожалению, если механизм OAuth 2.0 использует поток через браузер, защититься от этой атаки невозможно.

Другие атаки
Мы более подробно рассмотрели атаки, эксклюзивные для мобильного OAuth 2.0. Однако не будем забывать об оригинальной подмене OAuth 2.0: redirect_uri , перехвате трафика через незащищенное соединение и т. д. Подробнее об этом можно прочитать здесь.

Мы узнали, как работает протокол OAuth 2.0 и какие у него есть уязвимости на мобильных устройствах. Теперь давайте соберем отдельные части вместе, чтобы получить безопасную мобильную схему OAuth 2.0.

Хорошо, плохо OAuth 2.0
Давайте начнем с правильного способа использования экрана согласия. Мобильные устройства имеют два способа открытия веб-страницы в мобильном приложении.

Первый способ — через пользовательскую вкладку браузера (слева на картинке). Примечание : Пользовательская вкладка браузера для Android называется Chrome Custom Tab, а для iOS — SafariViewController. В приложении отображается только вкладка браузера: визуального переключения между приложениями нет.

Второй способ - через WebView (справа на картинке) и я считаю его плохим по отношению к мобильному OAuth 2.0.

WebView — встроенный браузер для мобильного приложения.

" Встроенный браузер " означает, что доступ к файлам cookie, хранилищу, кешу, истории и другим данным Safari и Chrome запрещен для WebView. Верно и обратное: Safari и Chrome не могут получить доступ к данным WebView.

" Браузер мобильного приложения " означает, что мобильное приложение, которое запускает WebView, имеет полный доступ к файлам cookie, хранилищу, кешу, истории и другим данным WebView.

А теперь представьте: пользователь нажимает «войти с…», и WebView вредоносного приложения запрашивает его логин и пароль у поставщика услуг.

Эпический фейл:

  1. Пользователь вводит свой логин и пароль от учетной записи поставщика услуг в приложении, которое может легко украсть эти данные.
  2. OAuth 2.0 изначально был разработан для , чтобы не вводить логин и пароль поставщика услуг.

    Пользователь привык вводить свой логин и пароль где угодно, тем самым увеличивая возможность рыбалки.
Учитывая все минусы WebView, напрашивается очевидный вывод: используйте настраиваемую вкладку браузера для экрана согласия.

Если у кого-то есть аргументы в пользу WebView вместо Custom Tab Browser, буду признателен, если вы напишете об этом в комментариях.

Безопасная мобильная схема OAuth 2.0
Мы собираемся использовать схему предоставления кода авторизации, так как она позволяет нам добавить code_challenge , а также состояние и защита от атаки с перехватом кода и OAuth 2.0 CSRF.


Источник изображения: https://tools.ietf.org/html/rfc8252#section-4.1

Код запроса доступа (шаги 1-2) будет выглядеть следующим образом:

 https://o2.mail.ru/code?
redirect_uri=com.mail.cloud.app%3A%2F%2Foauth&
состояние = 927489cb2fcdb32e302713f6a720397868b71dd2128c734181983f367d622c24& code_challenge = ZjYxNzQ4ZjI4YjdkNWRmZjg4MWQ1N2FkZjQzNGVkODE1YTRhNjViN jJjMGY5MGJjNzdiOGEzMDU2ZjE3NGFiYw%3D%3D&
code_challenge_method=S256&
область = электронная почта% 2Cid &
response_type=код&
client_id=984a644ec3b56d32b0404777e1eb73390c 
На шаге 3 браузер получает ответ с переадресацией:

 com.mail.cloud.app://oаuth?
код = b57b236c9bcd2a61fcd627b69ae2d7a6eb5bc13f2dc25311348ee08df43bc0c4&
состояние = 927489cb2fcdb32e302713f6a720397868b71dd2128c734181983f367d622c24 
На шаге 4 браузер открывает пользовательскую схему URI и передает токен CSRF клиентскому приложению.
access_token запрос (шаг 5):

 https://o2.mail.ru/token?
code_verifier = e61748f28b7d5daf881d571df434ed815a4a65b62c0f90bc77b8a3056f174abc&
код = b57b236c9bcd2a61fcd627b69ae2d7a6eb5bc13f2dc25311348ee08df43bc0c4&
client_id=984a644ec3b56d32b0404777e1eb73390c 
Последний шаг приносит ответ с access_token .

Эта схема в целом безопасна, но в некоторых особых случаях OAuth 2.0 может быть проще и безопаснее.

Android IPC
В Android есть механизм двунаправленной передачи данных между процессами: IPC (межпроцессное взаимодействие). IPC лучше пользовательской схемы URI по двум причинам:

  1. Приложение, открывающее канал IPC, может подтвердить подлинность открываемого приложения с помощью своего сертификата. Верно и обратное: открытое приложение может подтвердить подлинность открывшего его приложения.
  2. Если отправитель отправляет запрос по каналу IPC, он может получить ответ по тому же каналу. Вместе с перекрестной проверкой (пункт 1) это означает, что ни один посторонний процесс не может перехватить access_token .

Таким образом, мы можем использовать Implicit Grant для упрощения схемы мобильного OAuth 2.0. № code_challenge и state также означают меньшую поверхность атаки. Мы также можем снизить риск того, что вредоносные приложения будут действовать как законный клиент, пытаясь украсть учетные записи пользователей.

SDK для клиентов
Помимо реализации этой безопасной мобильной схемы OAuth 2.0, провайдер должен разработать SDK для своих клиентов. Это упростит реализацию OAuth 2.0 на стороне клиента и одновременно уменьшит количество ошибок и уязвимостей.

Позвольте мне подытожить это для вас. Вот (основной) 9Контрольный список 0079 для безопасного OAuth 2.0 для поставщиков OAuth 2.0:

  1. Прочная основа имеет решающее значение. В случае мобильного OAuth 2.0 основой является схема или протокол, выбранный для реализации. Легко допустить ошибку при реализации собственной схемы OAuth 2.0. Другие уже получили удары и усвоили урок; нет ничего плохого в том, чтобы учиться на их ошибках и выполнять безопасную реализацию за один раз. Самая безопасная схема мобильного OAuth 2.0 описана в Как сделать это безопасно ?
  2. Access_token и другие конфиденциальные данные должны храниться в связке ключей для iOS и во внутреннем хранилище для Android. Эти хранилища были специально разработаны именно для этого. Content Provider можно использовать в Android, но он должен быть надежно настроен.
  3. Client_secret бесполезен , если только он не хранится в бэкенде. Не отдавайте его публичным клиентам.
  4. Не использовать WebView для экрана согласия; используйте пользовательскую вкладку браузера.
  5. Для защиты от перехвата кода используйте code_challenge .
  6. Для защиты от CSRF OAuth 2.0 используйте состояние .
  7. Использовать HTTPS везде , переход на HTTP запрещен. Вот 3-минутная демонстрация, объясняющая, почему (на примере вознаграждения за обнаружение ошибок).
  8. Следуйте стандартам криптографии (выбор алгоритма, длины токенов и т. д.). Вы можете скопировать данные и выяснить, почему это сделано именно так, но не запускайте собственную крипту.
  9. Код должен использоваться только один раз, с коротким сроком службы.
  10. Со стороны клиента приложения проверьте, что вы открываете для OAuth 2,0; а со стороны поставщика приложений проверьте, кто открывает вас для OAuth 2.0.
  11. Помните о распространенных уязвимостях OAuth 2.0. Мобильный OAuth 2.0 расширяет и дополняет исходный, поэтому redirect_uri проверяют на точное совпадение и другие рекомендации для исходного OAuth 2,0 остаются в силе.
  12. Вы должны предоставить своим клиентам SDK. У них будет меньше ошибок и уязвимостей, и им будет проще внедрить ваш OAuth 2. 0.


  1. «Уязвимости мобильного OAuth 2.0» https://www.youtube.com/watch?v=vjCF_O6aZIg
  2. Исследование условий гонки OAuth 2.0 https://hackerone.com/reports/55140
  3. Почти все об OAuth 2.0 в одном месте https://oauth.net/2/
  4. Почему ключи и секреты API OAuth небезопасны в мобильных приложениях https://developer.okta.com/blog/2019/01/22/oauth-api-keys-arent-safe-in-mobile-apps
  5. [RFC] OAuth 2.0 для собственных приложений https://tools.ietf.org/html/rfc8252
  6. [RFC] Ключ подтверждения для обмена кодами публичными клиентами OAuth https://tools.ietf.org/html/rfc7636
  7. [RFC] Модель угроз OAuth 2.0 и вопросы безопасности https://tools.ietf.org/html/rfc6819
  8. [RFC] Протокол динамической регистрации клиентов OAuth 2.0 https://tools.ietf.org/html/rfc7591
  9. Google OAuth 2.0 для мобильных и настольных приложений https://developers.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Закрыть
Menu