Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 26.03.2020
Сообщений: 5

Возможна ли безопасность данных в моб. приложении

26.03.2020, 10:57. Показов 2187. Ответов 10

Студворк — интернет-сервис помощи студентам
Всем привет.

Посетил меня вопрос и после прочтения всякого чтива по теме чёткого ответа не нашёл, посему интересно мнение/знание профи. В программировании чего-то понимаю (vba, vb, си++, делфи, php, js и пр.), но пока не на мобильных устройствах, посему и нужна помощь в получении ответа.

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

Среда:
1. Вроде для такого приложения не пойдут языки типа Java, Kotlin и пр, которые декомпелируются легко и не принуждённо, и как минимум можно найти место в декомпелированном коде, где можно вставить перехват расшифрованных данных (и далее их выгрузку).
2. Посему вроде нужно не интерпритаторы, а компиляторы, т.е. языки, которые юзаются для мобильных устройств, типа С++ или С#.
3. Плюс, на локале под Виндами можно перевести формат EXE (который можно декомпелировать, как минимум увидев структуру с читаемыми шагами выполнения) в COM, т.е. по сути в машинный код, что ломать на много сложнее.

Вопросы:
1. Можно ли как то 100% обезопасить данные (расшифрованные в приложении)? Случай когда взломом и расшифровкой займётся АНБ (в Штатах) не рассматриваем.
2. Возможно ли под Андроидом и Ios перевод кода аналогично EXE -> COM?
3. Решается ли под Андроидом и Ios задача безопасности данных, расшифровываемых в моб. приложении, и если решается, то как?

Заранее спасибо за ответы и ссылки.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.03.2020, 10:57
Ответы с готовыми решениями:

Передача данных (моб. трафик)
Доброго времени суток. Случилась у меня непонятная проблема, в настройках во вкладке "Передача данных" пропала линия...

Возможна ли работа базы данных 1С в Qt?
Приветствую. Возможно название не правильно сформулировано, но все же. Моему отцу на предприятие нужна программа, в которой есть работа...

Выборка ошибочных данных, возможна?
Приветствую. :) Имеется таблица: ----------------------------------------------- ONUM | AMT | ODATE ...

10
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
26.03.2020, 11:10
1. Да, не хранить такие данные в приложении.
2-3. Обычно, мобильные приложения делаются "тонкими" клиентами и код не содержит ничего суперсекретного.

Добавлено через 26 секунд
Цитата Сообщение от alex1234321 Посмотреть сообщение
В программировании чего-то понимаю (vba, vb, си++, делфи, php, js и пр.)
)))
0
0 / 0 / 0
Регистрация: 26.03.2020
Сообщений: 5
27.03.2020, 07:21  [ТС]
ExFau$t
1. Да, не хранить такие данные в приложении.
Так я ж написал, что данные не хранятся в приложении - они в приложении используются. Хотя возможно вы имели в ввиду что сие одно и тоже.

ExFau$t
2-3. Обычно, мобильные приложения делаются "тонкими" клиентами и код не содержит ничего суперсекретного.
Полностью согласен, но у меня, будем считать, не обычный случай.
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
27.03.2020, 09:56
Тогда о каком "вскрытии" идёт речь, если данные используются только здесь и сейчас?
0
0 / 0 / 0
Регистрация: 26.03.2020
Сообщений: 5
28.03.2020, 13:39  [ТС]
Для пояснения задачи - на пальцах.

<--
Есть:
1. Программа вывода данных на моб. устройство – она одна (главный код один, но в тело могут быть вшиты открытые ключи, алгоритмы и пр. для расшифровки многочисленных файлов данных, зашифрованные закрытым (для конкретного моб. устройства конкретного пользователя) ключом).

2. Файлы данных, в которых предположим есть:
список-массив:
- Плитка (1,RGB), где RGB цветовой формат: Плитка (1, 1)= 23, Плитка (1, 2)=126, Плитка (1, 3)=56
- Плитка (2, …)
- Плитка (3, …)
...
- Плитка (100, …)

И далее карта (например, 200х200), как располагаются цвета:
1,42,1…
3,21,100…

2,90,15…
-->
Карта (из файла данных) выводится прогой на экран моб. устройства пользователя.

Данные из файла данных будут браться (-X->) прогой, с помощью алгоритма и ключа расшифровываться, и передаваться (-Y->) для вывода на экран пользователя.

<Файл данных> -X-> <прога = [ (ключ + дешифратор) -Y-> вывод на экран]>

Мысли:
1. Перенабирать инфу с экрана никто не будет, ибо карты могут быть размером от 100х100 до 1000х1000. Плюс, цветов в списке может быть 10…150 (из макс. кол-ва 6000). Плюс, таких файлов данных тысячи (быстрее десятки тысяч).

2. На сколько я понял (почитав малость) если писать прогу на Java, Kotlin и подобных, то в прогу можно легко вставить в место -Y-> вывод дешифрованных данных на диск (вставить так же как в листинг кода vba, php или js, даже если js обфускацированный), и затем на автомате прогнать/дешифровать все (тысячи, десятки тысяч, миллионы…) файлов данных.

3. Бороться с раскрытием данных можно своей виртуальной машиной с зашифрованной памятью, но это, мягко говоря, задача по сложнее чем просто/только написать приложение средней трудоёмкости.

Но на сколько сильно можно усложнить вскрытие оговорённых данных если писать прогу на C++ или C# (для моб. приложения) я не представляю и об этом я и спрашиваю. На сколько я знаю (по C++ на локале под Виндой), вставить такое вскрытие на потоке/автомате в откомпилированную прогу на C++ (особенно если EXE-ник сжат в COM) на много сложней чем в код на VBA или PHP.

Или, возможно, вы подскажите как легко (в сравнении с написанием приложения средней трудоёмкости) обеспечить контроль целостности приложения и среды исполнения оговариваемой проги на моб. устройстве.
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
28.03.2020, 16:29
Лучший ответ Сообщение было отмечено alex1234321 как решение

Решение

То есть предполагаемый злоумышленник заставил пользователя авторизоваться/получить ключ, завладел этим ключом, разобрал приложение, вставил какой-то код, собрал заново и начал по этому ключу что-то супер-секретное про этого юзера выкачивать?

Добавлено через 14 минут
Во-первых, если использовать современные средства подписи приложений и другие фичи от гугла, собрать подправленное приложение та ещё затея.
Во-вторых, собрав приложение заново он вынужден будет начинать новую сессию с новым ключом, то есть это может сделать только юзер, имеющий доступ, ну или в заложниках.
Ну и т.д.
Ну и наконец, тут есть профильные ветки по C++ или по ИБ, причём тут vba и php я вообще не понял.
Твоя проблема звучит так: вот я могу взять приложение сбера, войти за какого-то юзера и в момент вывода на экран персональной информации (перебрав исходники приложение и пересобрав его) вставить код для сохранения её в память на диске.
1
0 / 0 / 0
Регистрация: 26.03.2020
Сообщений: 5
22.04.2020, 15:14  [ТС]
Нужно было «отойти», посему мой ответ с задержкой.

Цитата Сообщение от ExFau$t Посмотреть сообщение
То есть предполагаемый злоумышленник заставил пользователя авторизоваться/получить ключ, завладел этим ключом, разобрал приложение, вставил какой-то код, собрал заново и начал по этому ключу что-то супер-секретное про этого юзера выкачивать?
В общем, да, но не совсем.

Приведу другую аналгию.
Вы покупаете электронный вариант газеты (для этого авторизация не нужна), т.е вы платите и получаете файл данных в каком то формате. Для просмотра этого файла вы скачитваете (например, так же с сайта продавца) средство просмотра – например (в зависимости от файла данных), или Адоб Ридер, или «Notepad++», или моя прога.
Средство просмотра является бесплатным, а вот газета/файл данных является уже платным.

Если файл данных (например, газета) не защищён, то гипотетически я (как покупатель) могу покупать все выпуски газеты и класть их на свой сайт и продавать их в два… три раза дешевле чем их создатель. Мой сайт, с которого я продаю, лежит на хостинге в Гондурасе. Если мой такой сайт закрывают под давлением чего/кого-нибудь, то я мгновенно открываю новый сайт и на мыла уже купивших отправляются сообщения что адрес сайта где можно купить газету дешевле изменился на «…»
Как владелец газеты я крайне не заинтересован, чтобы такая продажа моей газеты кем то была возможна, т.е. мне нужно каждый проданный выпуск газеты в электронном виде защитить. Сейчас, например, выпуски «Наша Версия» издательства «Совершенно секретно» не защищены и можно продавать их по описанной выше схеме.


Цитата Сообщение от ExFau$t Посмотреть сообщение
Ну и наконец, тут есть профильные ветки по C++ или по ИБ, причём тут vba и php я вообще не понял.
«vba и php» были упомянуты как пример – не более.

Цитата Сообщение от ExFau$t Посмотреть сообщение
Твоя проблема звучит так: вот я могу взять приложение сбера, войти за какого-то юзера и в момент вывода на экран персональной информации (перебрав исходники приложение и пересобрав его) вставить код для сохранения её в память на диске.
Не совсем так:
- в случае со Сбером вы авторизуетесь на сайте сбера с помощью логина/пароля + подтверждате вход ключём, полученном по смс – в моём гипотетическом случае никой аторизации не происходит, так как вы [ выбрали товар -> оплатили его в он-лайне -> скачали файл данных ] (для этой цепочки регистрация и авторизация не нужна);
- в случае со Сбером вы не получаете какой то товар, а вы только им управляете, перекладывая товар из одной корзины в другую в пределах своего акаунта, или если отправляете товар/деньги/ценность третьей стороне, то опять подтверждаете перевод смс-кой – в моём случае вы получаете на свой винт и товар (файл данных), и прогу его просмотра, и дальше можете использовать их без контрольно для продавца товара;
- в случае со Сбером вы можете просматривать только в он-лайне при подключении к сайту Сбера – в моём случае вы можете просматривать товар в офф-лайне.

-----------------
В случае газеты вы (как создатель/продавец газеты) можете блокировать неконтролируемое распространение газеты если перед передачей газеты (файла данных) и средства её просмотра вы, например, с начало получите «снимок» устройства покупателя (название и параметры оси, экрана, средства хранения данных и пр.), создадите средство просмотра конкретной газеты под это конкретное устройство и разрешаете открывать конкретный файл данных только на этом устройстве. Но это имеет смысл если нельзя в эту прогу просмотра внедрить в нужное место вывод уже расшифрованных данных.

И мой вопрос – существует ли какой то способ под Андроидом не дать внедрить в прогу просмотра в нужное место вывод расшифрованных данных.
Если писать прогу просмотра на java, kotlin, vb (в этом случае производится трансляция vb кода в java) и подобных, то такое внедрение (вывода расшифрованных данных) делается легко.
0
Модератор
Эксперт Java
 Аватар для alecss131
2850 / 1358 / 405
Регистрация: 11.08.2017
Сообщений: 4,332
Записей в блоге: 2
22.04.2020, 20:50
Лучший ответ Сообщение было отмечено alex1234321 как решение

Решение

Если делать "снимок" устройства то надо предупреждать пользователя и это все же сбор данных и мне кажется это будет отпугивать пользователей и мало кто согласится.
Даже если писать в нативе на плюсах то все тоже вскрывается без особых проблем знающими людьми. Никаких сом файлов не используется, достаточно простого дебагера и знания асемблера. По крайнем мере на винде так, под андроидом думаю похоже. Так что узнать алгоритм даже в программе на плюсах не сложно. Защитит, а точнее усложнит только грамотная виртуальная машина по типу vmp из denuvo, некоторые игры на андроиде ее используют вроде, все остальное есть сломанное.
А вообще вы слишком сильно зациклены на безопасности.
Не заморачивайтесь с защитой а просто введите онлайн привязку, тогда и на джаве код пойдет. Мне кажется вы слишком преувеличиваете значимость своих данных и вряд ли кому захочется ломать. Скажу что без знаний даже декомпилированную на джаве программу сложно сломать без навыка, особенно с грамотной обфускацией.
Чем экстравагантней защита тем больше шансов попасть на людей которые будут ломать ради взлома.
1
0 / 0 / 0
Регистрация: 26.03.2020
Сообщений: 5
24.04.2020, 03:42  [ТС]
Цитата Сообщение от alecss131 Посмотреть сообщение
Если делать "снимок" устройства то надо предупреждать пользователя и это все же сбор данных и мне кажется это будет отпугивать пользователей и мало кто согласится.
Умного юзера это отпугивать не будет (когда он понимает кто это делает и за чем), а не умный и не ценен (с ним гемора и проблем будет больше чем "удовольствия").

Цитата Сообщение от alecss131 Посмотреть сообщение
По крайнем мере на винде так, под андроидом думаю похоже.
Под андроидом, как я понял из прочитанного, её проще.

Цитата Сообщение от alecss131 Посмотреть сообщение
...усложнит только грамотная виртуальная машина по типу vmp из denuvo
Эх, думал что обойдусь малой кровью, но похоже придётся ознакомится с этим. Странно что эта проблема не решена до сих пор... очень странно...

Цитата Сообщение от alecss131 Посмотреть сообщение
А вообще вы слишком сильно зациклены на безопасности. Мне кажется вы слишком преувеличиваете значимость своих данных и вряд ли кому захочется ломать.
Лучше перебдить, чем сэкономить 10...50% работы и потом в итоге потерять всё 100%. Опять же скупой платит дважды... а бывает и трижды, и т.д.

Цитата Сообщение от alecss131 Посмотреть сообщение
Не заморачивайтесь с защитой а просто введите онлайн привязку, тогда и на джаве код пойдет.
Не, в рассматриваемом мною случае он-лайн привязка крайне не желательна - это уменьшит ценность продукта в разы, уменьшив так же (если не больше) размер его рынка, а это в свою очередь сделает его рыночно не устойчивым и не рентабельным.

Цитата Сообщение от alecss131 Посмотреть сообщение
Скажу что без знаний даже декомпилированную на джаве программу сложно сломать без навыка, особенно с грамотной обфускацией. Чем экстравагантней защита тем больше шансов попасть на людей которые будут ломать ради взлома.
Я не говорю о тех кто ломает ради взлома - я говорю о тех кто будет ломать за бабки и не малые, так как у нас разговор "в принципе".

Спасибо за ответы.
Удачи.
0
14 / 10 / 5
Регистрация: 26.02.2017
Сообщений: 92
25.04.2020, 20:34
мне нужно каждый проданный выпуск газеты в электронном виде защитить.
Как все запущено...
Я газету купил? Купил. Я должен иметь возможность ее прочитать? Конечно. И тут все эти заморочки с шифрованием становятся абсолютно бесполезными, ибо принтскрин еще никто не отменял.
0
22 / 20 / 5
Регистрация: 29.02.2016
Сообщений: 590
27.04.2020, 20:54
Передача данных через ssl
Если шифрование, то всё равно алгоритм шифрования декомпильнуть будет невозможно, если приложение само по себе обфукснуто и зашифровано. А когда приложение выкладывается в маркет, оно обязано быть обфукснутым и зашифрованным.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.04.2020, 20:54
Помогаю со студенческими работами здесь

Возможна ли связка между 1с (как источник данных) и access 2003 (как обработчик этих данных)
Хочу сделать 1с как источник данных, но не знаю как подключить к акцесу, кто может объяснить как, без участия кода. 1с 8.3

Архиватор данных - возможна ли оптимизация программы?
Привет! На С++ делаю конвертер видео в различные форматы. На входе несколько выбранных видеофайлов, на выходе столько же...

Возможна ли работа с базой данных в Eclipse
Есть ли какой нибудь плагин к Eclipse для работы с базами данных? Например создание и редактирование таблиц, выполнение SQL запросов и т....

Возможна ли передача данных по Wi-Fi и интернету между Java и C#?
Нужно передавать данные о файлах между Android и Windows. Сам уверен, что это возможно, но на всякий случай решил спросить.

Безопасность данных
Здравствуйте, программисты! У меня к вам такой вопрос: правильно ли я обеспечиваю безопасность данных пользователя? А обеспечиваю я ее...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru