Иммобилайзер 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 шт. | 1 шт. | ||
Авторизация по смартфону | ||||
Авторизация штатными кнопками | ||||
Внешнее реле блокировки | ||||
Контроль запуска двигателя по напряжению при отключении CAN | ||||
Кодовое реле StarLine R4 | ||||
Беспроводной подкапотный блок StarLine R6 | ||||
Рекомендованная розничная цена | 10 750 Р | 12 350 Р | 7 400 Р | 6 250 Р |
*Стоимость актуальна на дату публикации
StarLine надежно защищает с умом
StarLine Победит
Category : Новинки
Александра Степанова | RB.
RU — новые технологии, бизнес и карьера в цифровой экономикеРедактор — RB
Найдено
124 материала данного автора Читать далееИ как наблюдение за показателями влияет на здоровье
Читать далее Читать далееВстроенные программы в телефонах и компьютерах становятся все совершеннее
Читать далее Читать далееЭто разработка специалистов из Facebook и Университета Мэриленда
Читать далее Читать далееКак научиться «читать» людей по их привычкам
Читать далее Читать далее 09.2020″> 03 сентября 2020Обычные электронные письма могут быть очень эффективными
Читать далее Читать далееИх можно перенести в Google Фото за несколько кликов
Читать далее Читать далееСоветы для начинающих инвесторов
Читать далее Читать далееЧеловечество еще никогда не разрабатывало прививки с такой скоростью
Читать далее Читать далееДейтинг-приложение Nanaya работает на основе уникального алгоритма
Читать далее Читать далееСитуации в рабочих чатах часто напоминают ссоры старшеклассников
Читать далееПоказать еще
Авторизация
С помощью социальной сети
Или с помощью e-mail и пароля
Регистрация на Rusbase
Имя
Фамилия
Нажимая на кнопку «Зарегистрироваться» я соглашаюсь с условиями пользовательского соглашения
Если вы забыли пароль, мы вышлем вам его на электронную почту
Ваш 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 в случае взаимодействия сервер-сервер, а затем сравним его с OAuth 2.0 в случае взаимодействия клиент-сервер. В обоих случаях все начинается с того, что клиентский сервис регистрируется на сервисе провайдера и получает
и ,
в некоторых случаях , секрет_клиента. client_id
является общедоступным значением и требуется для идентификации службы клиента, в отличие от значения client_secret
, которое является частным. Подробнее о процессе регистрации можно прочитать в RFC 7591.
На схеме ниже показано, как работает OAuth 2.0 при межсерверном взаимодействии.
Источник изображения: https://tools.ietf.org/html/rfc6749#section-1.2
Протокол OAuth 2.0 можно разделить на три основных этапа:
- [шаги A-C] Получите
код авторизации
(далеекод
). - [шаги D-E] Обмен
с кодом
наaccess_token
. - Получить ресурс через
access_token
.
Подробно рассмотрим процесс получения code
value:
- [Шаг A] Клиент перенаправляет пользователя к поставщику услуг.
- [Шаг B] Поставщик услуг запрашивает у пользователя разрешение на предоставление клиенту данных (стрелка B вверх). Пользователь предоставляет доступ к данным (стрелка B вправо).
- [Шаг C] Поставщик услуг возвращает
код
в браузер пользователя, который перенаправляеткод
клиенту.
access_token
:- [Шаг D] Клиентский сервер отправляет запрос на получение
access_token
.Code
,client_secret
иredirect_uri
включены в запрос. - [Шаг 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-4 на картинке] Получаем
код
. - [шаги 5-6 на картинке] Обмен
кода
наaccess_token
- Получить доступ к ресурсу через
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 гарантирует открытие нужного приложения, но у этого механизма есть несколько недостатков:
- Каждый клиент сервиса должен пройти процедуру верификации.
- Пользователи Android могут отключить AppLink для определенного приложения в настройках.
- Версии Android старше 6.0 и версии iOS старше 9.0 не поддерживают AppLink.
Атака с перехватом кода авторизации
Рассмотрим ситуацию, когда на пользовательском устройстве установлено легитимное приложение (клиент 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.
Вот как работает эта схема:
- Клиент генерирует
code_verifier
и запоминает его. - Клиент выбирает
code_challenge_method
и получаетcode_challenge
отcode_verifier
. - [Шаг А] Клиент запрашивает
код
, к запросу добавляютсяcode_challenge
иcode_challenge_method
. - [Шаг B] Поставщик сохраняет
code_challenge
иcode_challenge_method
на сервере и возвращаетcode
клиенту. - [Шаг C] Клиент запрашивает
access_token
с добавленным к немуcode_verifier
. - Провайдер получает
code_challenge
из входящегоcode_verifier
, а затем сравнивает его с сохраненнымcode_challenge
. - [Шаг D] Если значения совпадают, провайдер предоставляет клиенту
access_token
.
code_challenge
предотвращает перехват кода, давайте посмотрим, как выглядит поток протокола с точки зрения злоумышленника.- Во-первых, законные запросы приложений
код
(code_challenge
иcode_challenge_method
отправляются вместе с запросом ). - Вредоносное приложение перехватывает
код
(но неcode_challenge
, поскольку кода_challenge
нет в ответе). - Вредоносное приложение запрашивает
access_token
(с действительным кодомcode_verifier
). - Сервер замечает несоответствие
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:
- Клиентское приложение генерирует и сохраняет токен CSRF на мобильном устройстве клиента.
- Клиентское приложение включает токен CSRF в
код
запрос доступа. - Сервер возвращает тот же токен CSRF с кодом
- Клиентское приложение сравнивает входящие и сохраненные токены CSRF. Если их значения совпадают, процесс продолжается.
Вкратце, токен 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 вредоносного приложения запрашивает его логин и пароль у поставщика услуг.
Эпический фейл:
- Пользователь вводит свой логин и пароль от учетной записи поставщика услуг в приложении, которое может легко украсть эти данные.
- OAuth 2.0 изначально был разработан для , чтобы не вводить логин и пароль поставщика услуг.
Пользователь привык вводить свой логин и пароль где угодно, тем самым увеличивая возможность рыбалки.
Если у кого-то есть аргументы в пользу 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 по двум причинам:- Приложение, открывающее канал IPC, может подтвердить подлинность открываемого приложения с помощью своего сертификата. Верно и обратное: открытое приложение может подтвердить подлинность открывшего его приложения.
- Если отправитель отправляет запрос по каналу 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:- Прочная основа имеет решающее значение. В случае мобильного OAuth 2.0 основой является схема или протокол, выбранный для реализации. Легко допустить ошибку при реализации собственной схемы OAuth 2.0. Другие уже получили удары и усвоили урок; нет ничего плохого в том, чтобы учиться на их ошибках и выполнять безопасную реализацию за один раз. Самая безопасная схема мобильного OAuth 2.0 описана в Как сделать это безопасно ?
-
Access_token
и другие конфиденциальные данные должны храниться в связке ключей для iOS и во внутреннем хранилище для Android. Эти хранилища были специально разработаны именно для этого. Content Provider можно использовать в Android, но он должен быть надежно настроен. -
Client_secret
бесполезен , если только он не хранится в бэкенде. Не отдавайте его публичным клиентам. - Не использовать WebView для экрана согласия; используйте пользовательскую вкладку браузера.
- Для защиты от перехвата кода используйте
code_challenge
. - Для защиты от CSRF OAuth 2.0 используйте
состояние
. - Использовать HTTPS везде , переход на HTTP запрещен. Вот 3-минутная демонстрация, объясняющая, почему (на примере вознаграждения за обнаружение ошибок).
- Следуйте стандартам криптографии (выбор алгоритма, длины токенов и т. д.). Вы можете скопировать данные и выяснить, почему это сделано именно так, но не запускайте собственную крипту.
-
Код
должен использоваться только один раз, с коротким сроком службы. - Со стороны клиента приложения проверьте, что вы открываете для OAuth 2,0; а со стороны поставщика приложений проверьте, кто открывает вас для OAuth 2.0.
- Помните о распространенных уязвимостях OAuth 2.0. Мобильный OAuth 2.0 расширяет и дополняет исходный, поэтому
redirect_uri
проверяют на точное совпадение и другие рекомендации для исходного OAuth 2,0 остаются в силе. - Вы должны предоставить своим клиентам SDK. У них будет меньше ошибок и уязвимостей, и им будет проще внедрить ваш OAuth 2. 0.
- «Уязвимости мобильного OAuth 2.0» https://www.youtube.com/watch?v=vjCF_O6aZIg
- Исследование условий гонки OAuth 2.0 https://hackerone.com/reports/55140
- Почти все об OAuth 2.0 в одном месте https://oauth.net/2/
- Почему ключи и секреты API OAuth небезопасны в мобильных приложениях https://developer.okta.com/blog/2019/01/22/oauth-api-keys-arent-safe-in-mobile-apps
- [RFC] OAuth 2.0 для собственных приложений https://tools.ietf.org/html/rfc8252
- [RFC] Ключ подтверждения для обмена кодами публичными клиентами OAuth https://tools.ietf.org/html/rfc7636
- [RFC] Модель угроз OAuth 2.0 и вопросы безопасности https://tools.ietf.org/html/rfc6819
- [RFC] Протокол динамической регистрации клиентов OAuth 2.0 https://tools.ietf.org/html/rfc7591
- Google OAuth 2.0 для мобильных и настольных приложений https://developers.