Как подпись PHAR предотвращает несанкционированное использование файлов?

Мне интересно, можно ли повторно использовать подпись файла PHAR. Как описано в руководстве , каждый файл имеет манифест, который содержит много вещей, которые могут быть подделаны, и 4 байта контрольной суммы CRC32, что является плохим выбором (md5 или sha1 будет очень безопасным), но может быть сфальсифицированы чем другие вещи. У меня есть сомнения относительно правильности контрольной суммы, используемой при создании подписи для проверки. Я имею в виду, что медленное создание контрольной суммы при каждом включении файла phar, но добавление кэша манифеста, в котором содержится контрольная сумма, не является вариантом, если вы хотите оставаться в безопасности (поскольку относительно легко изменить этот кеш, если он сохраняется в файле phar). Вы знаете, как пакеты phar быстро решают эту проблему?

Solutions Collecting From Web of "Как подпись PHAR предотвращает несанкционированное использование файлов?"

Документацию довольно сложно выполнить, а в некоторых местах устарели, но проверка выглядит следующим образом:

  • все файлы, даже в формате Tar или Zip, содержат манифест с проверкой CRC для базовой самооценки; это не является защитой от несанкционированного доступа, но обнаруживает такие вещи, как неполные загрузки
  • файлы в формате PHAR могут также содержать подпись в одном из нескольких форматов, выбранных создателем
  • с PHAR 2.0 (версия PHP непонятна), сигнатура может также использовать пару открытых и открытых ключей OpenSSL
  • эта подпись рассчитана на все содержимое архива , независимо от манифеста, поэтому можно доверять, чтобы обнаружить фальсификацию, если он или открытый ключ распределяется по доверенному каналу

Ваш вопрос говорит о скорости процесса подписания и проверки, и это ключевая часть вашего подозрения, что может играть небезопасный алгоритм. Википедия суммирует производительность SHA-256/512 как 200-300 Мбайт / секунду на недорогом 64-битном процессоре. Поскольку архив PHAR вряд ли будет иметь размер 200 Мбайт, а так как проверка подписи выполняется по требованию, а не при каждом выполнении (по крайней мере, я так думаю), доля секунды для хэша весь файл вряд ли будет вопрос. (Создание подписи также может быть отложено до тех пор, пока не будут добавлены все файлы, поэтому снова не требуется более высокая скорость).