Выбор ответа Junior Безопасность мобильных приложений обновлено
Зачем R8 и обфускация
Вопрос
Что даёт R8 (минификация и обфускация) в релизной сборке Android?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Удаляет неиспользуемый код, сокращает имена классов и методов, уменьшает размер, мешает реверсу. R8 делает приложение меньше и быстрее и затрудняет чтение декомпилированного кода, но не делает его невозможным.
Варианты ответа
- Шифрует весь байткод ключом подписи, так что его невозможно декомпилировать без этого ключа
- Защищает сетевой трафик: обфусцированные имена методов не видны в перехваченных запросах
- Удаляет неиспользуемый код, сокращает имена классов и методов, уменьшает размер, мешает реверсуправильный ответ
- Заменяет подпись приложения: Google Play проверяет целостность по карте обфускации
Разбор
R8 делает приложение меньше и быстрее и затрудняет чтение декомпилированного кода, но не делает его невозможным. Нужны правила keep для рефлексии и сериализации, иначе в релизе будут крэши. Трафик защищает TLS, подпись это отдельный механизм. На iOS бинарник уже машинный код, но строки и имена Swift-типов всё равно видны.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Предыдущий вопрос
Угрозы и защиты мобильного приложения
Следующий вопрос
Certificate pinning: плюсы и риски
Ещё по теме «Безопасность мобильных приложений»
- Биометрия для входа
- Защита экрана с чувствительными данными
- Безопасное хранение данных на устройстве
- Где хранить токены на Android
- Логирование и персональные данные
- OWASP MASVS
- OAuth в мобильном приложении
- Код-ревью: хранение сессии и вход (Swift)