Форум — Ответы     (  К темам )
 ?  Fantom: Алгоритмы — защиты целостности файла? (17-04-2003 12:53:17)
Уважаемые коллеги!
Значит нужны идеи по следующей теме:
Необходимо защитить файл (например, обычный текстовый) от изменения пользователем! Т.е. при определенных условиях я должен знать — лазил ли кто нить в него руками и не менял ли чего?
Можно выставлять контрольную сумму файла, писать ее в реестр, считывать и работать... но тут сразу много вопросо, каким алгоритмом подсчитать эту контрольную сумму (с учетом того, что в файл мона зайти и поменять один символ на другой ну и т.д.), и где и как ее хранить, дабы никто не мог до нее добраться?
Если кто работал по данной теме — киньте идею плиз.

Заранне благодарен за помощь!
 Alexander (17-04-2003 16:22:00)
Где ее хранить — это сам думай. у юзера правов столько же, сколько у тебя, он может сохранить реестр и сравнить потом изменения, так что найдет :)
А считать сумму — обычная циклическая сумма, например 4-байтное число s, берешь из файла по 4 байта b (если в конце остается меньше — добиваешь справа нулями) и пока файл не кончился s += b;
Можешь добавить какой-нибудь сдвиг:
for (i=0;...
s += (b << (i % 24)) ;

где под << я подразумеваю циклический побитный сдвиг.
 Георгий (18-04-2003 12:39:20)
для оценки алгоритмов зашиты необходимо определиться с категорией пользователей, от которых хочется защититься:
1. глупые (никого не хочу обидеть, но это типа домохозяек)
2. не опытные (это когда есть "учебный" или "компьютер для бухгалтерии и интернета")
3. нормальные (обычно могут переустановить ОС и поставить драйвера для железок, подробности функционирования железа и ПО не знают, но знают где и что надо нажать, чтоб получить нечто вроде желаемого результата)
4. опытные (знают что такое файл, реестр, процессор, но в програмировании не понимают)
5. "очень" опытные (они же кулхацкеры) — аналог 4, но обладают большим кол-вом свободного времени и энтузиазмом — потенциально опасны
6. нормальные специалисты — способны отслеживать изменения в системе и делать на основе этого выводы, опасны, но только в том случае если этого будут требовать обстоятельства
7. "программисты" — сами пишут программы и системы защиты — как ни странно опасность низкая — понимают, что если "взломом" зашиты они другого программиста оставят без денег, то сами могут очутиться в аналогичной ситуации
8. "хакеры" — аналог "программистов", но практически лишены моральных устаев — за $$$$ способны разобраться со многими программами, а за $$$$$ или $$$$$$ практически любая защита падёт перед ними
9. "специалисты" — наше управление "Р", работники банков, специализирующиеся на системах защиты информации, разработчики антивирусов — все способны проанализировать практически любую программу, даже аппаратные ключи не спасают от них — защита одна — не попасть в область их интересов. практически не хулиганят благодаря высокой оплате рабочего времени.

и так от кого будем защищаться?
 Fantom (18-04-2003 13:28:35)
Берем по максимуму!
А что полностью защитится нельзя ну эт понятно :)
 Георгий (18-04-2003 15:14:01)
1. использую обычное шифрование
2. использую цифровую подпись — в конец текстового файла пиши число явл. функцией от содержимого файла, тогда при изменения файла не твоей программой функция не совпадёт. едснственная сложность подобрать функцию с хорошим разбросом значений