Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Защита данных от хака, Защита данных от хака 
:(
    Опции темы
Pcrepair
Дата 7.6.2013, 19:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 209
Регистрация: 16.1.2011

Репутация: нет
Всего: нет



Добрый день. Есть необходимость защитить данные типа строка(HTML-код) от удаления или подмены

Например такой способ:
1. шифруем строку(до программы), делаем ее хеш и размещаем гдето в программе в виде констант1 и 2
2. функция, которой нужны данные заключенные в константе1 (HTML-код), вызывает специальную функцию, которая:
- получает константу1 и делает ее хеш
- получает константу2(ранее сделанный хеш) и сравнивает хеши
если хеш1 = хеш2 тогда
спец.функция расшифровывает константу1(ключ встроен в функцию) и передает параметр в вызвавшую функцию и записывает значение TRUE в ГлобПерем
иначе (хеши различны)
спец.функция возвращает FALSE в ГлобПерем

все основные процедуры программы в начале кода имеют обращение к этой ГлобПерем и если она FALSE идут в Exit(не выполняют свой код), что приведет к сбою в работе программы

Вопрос: в достаточной ли мере подобный подход затруднит работу взломщиков? и вообще
--------------------
Сборник рабочего кода Процедур и Функций DelPhi     http://validcoderepo.narod.ru/
PM MAIL WWW   Вверх
kami
Дата 7.6.2013, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1806
Регистрация: 25.8.2007
Где: Санкт-Петербург

Репутация: 22
Всего: 72



Цитата(Pcrepair @  7.6.2013,  19:14 Найти цитируемый пост)
если хеш1 = хеш2 тогда

взломщик меняет на <> (или вообще убирает сравнение) и не парится

Добавлено через 4 минуты и 44 секунды
хотя... если шифровать асимметричным ключем...

Добавлено через 5 минут и 52 секунды
но в любом случае - это сравнение лишнее. Если строка неправильно расшифровывается - да пусть функции, использующие ее начинают валиться где угодно.
PM MAIL WWW   Вверх
Pcrepair
Дата 7.6.2013, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 209
Регистрация: 16.1.2011

Репутация: нет
Всего: нет



так ведь сравнение двух хешей и определяет, что дальше делать программе? или что?

ключ = строка
тут дело не в ключе. допустим кто то хочет заменить данные(в частности свой емейл подсунуть вместо моего)
в кнопке "Контакты" он видит мой емейл(данные кстати полностью доступны), дальнейшие действия кулхацкера:
- начинает искать в коде программе этот емейл(поскольку зашифрованно, он его просто не находит)
- начинает в отладчике вызывать форму в которой прописан емейл, идет до спец.функции, которая выдает константа1 в расшифрованном виде
- проходит мимо ГлобПерем, поскольку он ее и не ищет
- находит таки константа1. в зашифрованном виде(о том что все зашифрованно кулхацкер пока ничего не знает)
- вырезает константу1 в блокнот начинает смотреть где там что, ничего не находит
- возвращается к спец.функции и долго думает чего оно делает
- находит всетаки ключ с помощью которого функция расшифровывает константа1?????? если это возможно
- но код спец.функции дизаассемблировать нельзя, долго ломает голову над кодом функции, переберет все доступные
- все таки находит код(в принципе он там простой, хотя можно и усложнить)
- создает свою константу1 и влеивает ее в файл
- запускает прогамму и тут обнаруживает что ничего не работает(о передаче флага в ГлобПЕРЕМ ведь ничего неизвестно)
- начинает возится с спец.функцией воображая что там ошибка
...... и еще много ненужных телодвижений
в изнеможении стирает нафиг все и форматирует свой диск Ц

насколько такое реально?
--------------------
Сборник рабочего кода Процедур и Функций DelPhi     http://validcoderepo.narod.ru/
PM MAIL WWW   Вверх
kami
Дата 7.6.2013, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1806
Регистрация: 25.8.2007
Где: Санкт-Петербург

Репутация: 22
Всего: 72



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

Цитата(Pcrepair @  7.6.2013,  20:21 Найти цитируемый пост)
- проходит мимо ГлобПерем, поскольку он ее и не ищет

блаженны верующие smile А ничего, что у вас в куче методов будет прописано "если Глобальная Переменная, то..."

Цитата(Pcrepair @  7.6.2013,  20:21 Найти цитируемый пост)
долго думает чего оно делает

Зачем долго думать, если можно просто получить результат?
Цитата(Pcrepair @  7.6.2013,  20:21 Найти цитируемый пост)
находит всетаки ключ с помощью которого функция расшифровывает константа1?????? если это возможно

А чего невозможного, если ключ прописан в константе?
Цитата(Pcrepair @  7.6.2013,  20:21 Найти цитируемый пост)
но код спец.функции дизаассемблировать нельзя,

Почему?
Цитата(Pcrepair @  7.6.2013,  20:21 Найти цитируемый пост)
создает свою константу1 и влеивает ее в файл

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

Это сообщение отредактировал(а) kami - 7.6.2013, 20:42
PM MAIL WWW   Вверх
Pcrepair
Дата 7.6.2013, 20:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 209
Регистрация: 16.1.2011

Репутация: нет
Всего: нет



ну все зависит от уровня взломщика
задача - обломать 99% кулхацкеров в попытке что то изменить в программе
остальные 1% реальные хакеры, способные это сделать не будут это делать, у них заботы поважнее
--------------------
Сборник рабочего кода Процедур и Функций DelPhi     http://validcoderepo.narod.ru/
PM MAIL WWW   Вверх
kami
Дата 7.6.2013, 20:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1806
Регистрация: 25.8.2007
Где: Санкт-Петербург

Репутация: 22
Всего: 72



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

Это сообщение отредактировал(а) kami - 7.6.2013, 20:57
PM MAIL WWW   Вверх
БелАмор
Дата 7.6.2013, 22:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 209
Регистрация: 10.6.2010
Где: Россия

Репутация: 7
Всего: 17



Цитата(kami @  7.6.2013,  21:55 Найти цитируемый пост)
Но если какая-либо из функций может привести к исключению (либо ошибке в вычислениях), если строка "не родная", то стоит (даже очень стОит) убрать проверки "если ГлобальнаяПеременная то". И вообще тогда убрать эту глобальную переменную. Неявное возникновение ошибки (неправильного результата) будет гораздо предпочтительнее.


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

PM   Вверх
Pcrepair
Дата 7.6.2013, 22:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 209
Регистрация: 16.1.2011

Репутация: нет
Всего: нет



программа вообщето бесплатная, так что принцип "как есть" торжествует в полной мере
--------------------
Сборник рабочего кода Процедур и Функций DelPhi     http://validcoderepo.narod.ru/
PM MAIL WWW   Вверх
БелАмор
Дата 7.6.2013, 22:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 209
Регистрация: 10.6.2010
Где: Россия

Репутация: 7
Всего: 17



Цитата(Pcrepair @  7.6.2013,  23:23 Найти цитируемый пост)
программа вообщето бесплатная, так что принцип "как есть" торжествует в полной мере 

Если человек скопировал хоть платную, хоть бесплатную программу со столетней флешки, в результате чего она скопировалась с ошибками, если на диске пользователя порезвился вирус, пишущий пару случайных байт в случайные места случайных файлов, то вы готовы ему устроить страшную мстю, только потому, что вы - Д'Артаньян, раздающий программы "как есть", а он - чудак, ломающий, по вашему мнению, вашу замечательную программу? Я думаю, что в таком случае - всё как раз наоборот - автор такой программы - не Д'Артаньян, а обыкновенный чудак...

PM   Вверх
northener
Дата 8.6.2013, 01:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1361
Регистрация: 2.9.2010

Репутация: 12
Всего: 20



Цитата(Pcrepair @  7.6.2013,  20:52 Найти цитируемый пост)
ну все зависит от уровня взломщика
задача - обломать 99% кулхацкеров в попытке что то изменить в программе

Вопрос в том, кого ты считаешь "кулхацкерами", а кого "реальными хакерами".
Общий принцип при защите таков - ты имеешь все шансы защитить ПО от того, кто имеет явно более низкие общие знания. Ты можешь заставить несколько помучиться того, кто имеет примерно твой уровень общих знаний. И у тебя нет никаких шансов защитить своё ПО от того, кто имеет более высокий уровень общих знаний.

P.S.
Про уровень "специальных" знаний я уже молчу. Ибо после прочтения:
Цитата(Pcrepair @  7.6.2013,  19:14 Найти цитируемый пост)
если хеш1 = хеш2 тогда

и 
Цитата(Pcrepair @  7.6.2013,  20:21 Найти цитируемый пост)
так ведь сравнение двух хешей и определяет, что дальше делать программе?

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


--------------------
Но только лошади летают вдохновенно.
Иначе лошади разбились бы мгновенно!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0507 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.