Форум - Ответы     (  К темам )
 ?  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. использую цифровую подпись - в конец текстового файла пиши число явл. функцией от содержимого файла, тогда при изменения файла не твоей программой функция не совпадёт. едснственная сложность подобрать функцию с хорошим разбросом значений


support@cbuilder.ru