| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Для новичков > Защита данных от хака |
| Автор: Pcrepair 7.6.2013, 19:14 |
| Добрый день. Есть необходимость защитить данные типа строка(HTML-код) от удаления или подмены Например такой способ: 1. шифруем строку(до программы), делаем ее хеш и размещаем гдето в программе в виде констант1 и 2 2. функция, которой нужны данные заключенные в константе1 (HTML-код), вызывает специальную функцию, которая: - получает константу1 и делает ее хеш - получает константу2(ранее сделанный хеш) и сравнивает хеши если хеш1 = хеш2 тогда спец.функция расшифровывает константу1(ключ встроен в функцию) и передает параметр в вызвавшую функцию и записывает значение TRUE в ГлобПерем иначе (хеши различны) спец.функция возвращает FALSE в ГлобПерем все основные процедуры программы в начале кода имеют обращение к этой ГлобПерем и если она FALSE идут в Exit(не выполняют свой код), что приведет к сбою в работе программы Вопрос: в достаточной ли мере подобный подход затруднит работу взломщиков? и вообще |
| Автор: kami 7.6.2013, 19:49 |
взломщик меняет на <> (или вообще убирает сравнение) и не парится Добавлено через 4 минуты и 44 секунды хотя... если шифровать асимметричным ключем... Добавлено через 5 минут и 52 секунды но в любом случае - это сравнение лишнее. Если строка неправильно расшифровывается - да пусть функции, использующие ее начинают валиться где угодно. |
| Автор: Pcrepair 7.6.2013, 20:21 |
| так ведь сравнение двух хешей и определяет, что дальше делать программе? или что? ключ = строка тут дело не в ключе. допустим кто то хочет заменить данные(в частности свой емейл подсунуть вместо моего) в кнопке "Контакты" он видит мой емейл(данные кстати полностью доступны), дальнейшие действия кулхацкера: - начинает искать в коде программе этот емейл(поскольку зашифрованно, он его просто не находит) - начинает в отладчике вызывать форму в которой прописан емейл, идет до спец.функции, которая выдает константа1 в расшифрованном виде - проходит мимо ГлобПерем, поскольку он ее и не ищет - находит таки константа1. в зашифрованном виде(о том что все зашифрованно кулхацкер пока ничего не знает) - вырезает константу1 в блокнот начинает смотреть где там что, ничего не находит - возвращается к спец.функции и долго думает чего оно делает - находит всетаки ключ с помощью которого функция расшифровывает константа1?????? если это возможно - но код спец.функции дизаассемблировать нельзя, долго ломает голову над кодом функции, переберет все доступные - все таки находит код(в принципе он там простой, хотя можно и усложнить) - создает свою константу1 и влеивает ее в файл - запускает прогамму и тут обнаруживает что ничего не работает(о передаче флага в ГлобПЕРЕМ ведь ничего неизвестно) - начинает возится с спец.функцией воображая что там ошибка ...... и еще много ненужных телодвижений в изнеможении стирает нафиг все и форматирует свой диск Ц насколько такое реально? |
| Автор: Pcrepair 7.6.2013, 20:52 |
| ну все зависит от уровня взломщика задача - обломать 99% кулхацкеров в попытке что то изменить в программе остальные 1% реальные хакеры, способные это сделать не будут это делать, у них заботы поважнее |
| Автор: kami 7.6.2013, 20:55 |
| тогда - пойдет. Но если какая-либо из функций может привести к исключению (либо ошибке в вычислениях), если строка "не родная", то стоит (даже очень стОит) убрать проверки "если ГлобальнаяПеременная то". И вообще тогда убрать эту глобальную переменную. Неявное возникновение ошибки (неправильного результата) будет гораздо предпочтительнее. |
| Автор: БелАмор 7.6.2013, 22:17 | ||
Хотел бы обратить внимание на то, что ни при каких обстоятельствах, что бы там ни подумала программа по поводу своего взлома, она не должна выдавать неправильные результаты, которые могут быть приняты за правильные. Она может вылетать с ошибкой, виснуть, разводить руками со словами "Обнаружена неизвестная ошибка", но ни при каких обстоятельствах не должна преднамеренно гадить. |
| Автор: Pcrepair 7.6.2013, 22:23 |
| программа вообщето бесплатная, так что принцип "как есть" торжествует в полной мере |
| Автор: БелАмор 7.6.2013, 22:48 | ||
Если человек скопировал хоть платную, хоть бесплатную программу со столетней флешки, в результате чего она скопировалась с ошибками, если на диске пользователя порезвился вирус, пишущий пару случайных байт в случайные места случайных файлов, то вы готовы ему устроить страшную мстю, только потому, что вы - Д'Артаньян, раздающий программы "как есть", а он - чудак, ломающий, по вашему мнению, вашу замечательную программу? Я думаю, что в таком случае - всё как раз наоборот - автор такой программы - не Д'Артаньян, а обыкновенный чудак... |
| Автор: northener 8.6.2013, 01:38 | ||||
Вопрос в том, кого ты считаешь "кулхацкерами", а кого "реальными хакерами". Общий принцип при защите таков - ты имеешь все шансы защитить ПО от того, кто имеет явно более низкие общие знания. Ты можешь заставить несколько помучиться того, кто имеет примерно твой уровень общих знаний. И у тебя нет никаких шансов защитить своё ПО от того, кто имеет более высокий уровень общих знаний. P.S. Про уровень "специальных" знаний я уже молчу. Ибо после прочтения: и
уже понятно, что твой уровень "специальных" знаний ниже плинтуса. Ибо все те, кого я считаю кулхацкерами "этот условный переход" находят за секунды. И про это слабое место в защите тебе уже сказали на (по крайней мере) двух форумах. |