@Lamez

Задача. Возможна ли подпись исходного кода файла?

Итак есть некоторый файл index.php который какие-то простые функции сам по себе (является калькулятором например), и его функции не засекречены(open source project).
Это приложение лежит в открытом доступе в интернете и установить его может любой желающий.

Но его пользователи должны достоверно знать что файл не был изменен, и его поведение отвечает тому что было задано истинным разработчиком.

Возможно ли создать проверочный алгоритм который бы мог проверить целостность файла расположенного удаленно? Допустим даже если это такое-же приложение на php, которое средствами API должно проверить на целостность файл удаленно.
  • Вопрос задан
  • 2284 просмотра
Пригласить эксперта
Ответы на вопрос 4
kawabanga
@kawabanga
отдайте на гитхабе. И не парьте себе голову.
Ответ написан
Комментировать
@Lamez Автор вопроса
нашел полностью подходящую тему, жаль решение не найдено
www.linux.org.ru/forum/web-development/10085363
Ответ написан
Комментировать
IvanCher
@IvanCher
Мысли шире
Если есть доступ к исходнику, то подделать можно что угодно. Можете посмотреть в сторону обфускации, но это всё ровно не надежно будет.
Если нужно быть уверенным, что ничего в скрипте не менялось, то я вижу только 1 вариант.
Сам файл index.php должен просто перенаправлять запрос к Вам на скрипт по апи со всеми данными, вы обрабатываете их у себя и отвечаете скрипту index.php, index.php передает ответ от Вас пользователю.
Простым языком файл index.php, который может любой скачать и к себе установить должен в этом случае являться просто прокси к Вашему API.
Ответ написан
Комментировать
kumaxim
@kumaxim
Web-программист
Возможно мой вариант немного "говнокодистый", но на ум приходит только одна идея:
1)Читаем все содержимое файла
2)Соединяем это содержимое в одну строку: удаляем пробелы и переводы строк
3)Вычисляем значение хэша этой строки от любой хэш-функции(md5, sha1 и т.п.)
4)Сравниваем его с хэшем, который был вычислен ранее для 100% оригинального файла

Однако учтите момент с временем работы при длинных файлах. Если проверку будите реализовывать на php можете в дефолтный max_execution_time не уложиться.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы