Size: a a a

2017 December 14

D

Dmitry in Android Guards
Либо слать временный ключ самому, либо подключить сдк стороннее.
Т.е. сервер присылает тебе какой-то ключ, ты на основании него какой-то ответ. И прятать функцию, которая ответ генерирует.
источник

EK

Evgeniy Kuznetsov in Android Guards
Dmitry
Либо слать временный ключ самому, либо подключить сдк стороннее.
Т.е. сервер присылает тебе какой-то ключ, ты на основании него какой-то ответ. И прятать функцию, которая ответ генерирует.
Что-то типа подписи челенджа от сервера?
источник

D

Dmitry in Android Guards
Да хоть xor от ключа отсылать. Я бы не заморачивался с подписями.
источник

D

Dmitry in Android Guards
Главное - алгоритм в новых версиях постоянно обновлять, чтобы ломать приложение было дороже, чем забить.
источник

EK

Evgeniy Kuznetsov in Android Guards
Что если генерировать пару в keystore, и вместе с авторизационным данными юзера отправлять публичный ключ на сервер. Он привяжется к этому юзеру. И потом, шифровать все данные закрытым ключём из keystore. Что плохого может случится? На 6+ вроде не всё так плохо с кейстором.
источник

D

Dmitry in Android Guards
Я напишу скрипт на питоне, который вместе с авторизационными данными отправит сгенерированные ключи и будет всё подписывать. Телефон с кейстором нафиг не нужен будет.
источник

D

Dmitry in Android Guards
Мы же апи защищаем, а не учетку конкретного пользователя.
источник

EK

Evgeniy Kuznetsov in Android Guards
Апи защищается тем, что неподписанные данные не будут приняты. Но ты прав, от пользователя таким способом не защититься.
источник

R

Rtem in Android Guards
Вот тебе решение, которое я считаю “приемлимым”: пишешь на крестах либу, в которой будет размешан твой зашифрованный ключ API (white-box aes тебе в помощь или свой колхоз). Эту же либу используешь для подписи запросов, т.е. ты шлешь в либу данные, а она тебе в ответ подпись. Эту подпись ты цепляешь к запросу. Сервак, естественно, знает по какому алгоритму все вычисляется и проводит ту же операцию с данными, сверяет подписи. И если они идентичны, то данные пришли от приложения (ну вы понимаете…)
источник

R

Rtem in Android Guards
Сразу скажу: да, это ломается. Точка =)
источник

R

Rtem in Android Guards
Человек попосил увеличение времени. Вот оно)
источник

R

Rtem in Android Guards
источник

EK

Evgeniy Kuznetsov in Android Guards
Rtem
Вот тебе решение, которое я считаю “приемлимым”: пишешь на крестах либу, в которой будет размешан твой зашифрованный ключ API (white-box aes тебе в помощь или свой колхоз). Эту же либу используешь для подписи запросов, т.е. ты шлешь в либу данные, а она тебе в ответ подпись. Эту подпись ты цепляешь к запросу. Сервак, естественно, знает по какому алгоритму все вычисляется и проводит ту же операцию с данными, сверяет подписи. И если они идентичны, то данные пришли от приложения (ну вы понимаете…)
Так эту либу можно достать из apk за 30 сек, и подписывать с помощью неё что угодно. Или не так?
источник

R

Rtem in Android Guards
Ага =)
источник

R

Rtem in Android Guards
Но тут есть нюанс
источник

R

Rtem in Android Guards
А хотя ладно. Нет нюансов =)
источник

R

Rtem in Android Guards
Но взломщику надо разбраться как это либа работает. Экспорты посмотреть и т.д.
источник

R

Rtem in Android Guards
Если ты мне щас скажешь: да это ж плевое дело. Угу плевое. Все плевое =) Поэтому тебе люди и говорят: все тлен)
источник

EK

Evgeniy Kuznetsov in Android Guards
Не скажу
источник

EK

Evgeniy Kuznetsov in Android Guards
Просто скажу спасибо)
источник