Использование phpspreadsheet для хеширования MD5 - PullRequest
0 голосов
/ 06 декабря 2018

Этот вопрос предназначен для разработчиков phpexcel / phpspreadsheet.

В настоящее время мы используем библиотеку на нашем веб-сайте для создания файлов Excel (очевидно) и в настоящее время в процессе получения сертификата SOC2;что требует, чтобы мы запустили весь наш код и сторонний код в сканер безопасности.

Сканер возвращает 36 уязвимостей, каждая из которых "Использование сломанного или рискованного криптографического алгоритма";в результате простого использования вызова функции MD5.

Итак, мой вопрос: почему хеширование использует MD5 и почему мы его хешируем?Если я смогу лучше понять, что происходит, я могу попробовать изменить механизм хеширования или хотя бы объяснить, почему это на самом деле не представляет угрозы для безопасности.

Ответы [ 2 ]

0 голосов
/ 09 декабря 2018

Как уже отмечал DFriend, использование md5() в PHPExcel / PHPSpreadsheet не (за одним исключением) не используется в криптографических целях.Он используется для генерации квазиуникальных хешей / контрольных сумм для быстрого сравнения значений объектов.

Единственное исключение - проверка любого пароля Xls, поскольку MS Excel сам использует хеширование md5 в качестве части проверки пароля.,Для получения сертификата SOC2 вам необходимо получить его в Microsoft.

0 голосов
/ 08 декабря 2018

Я не один из разработчиков phpspreadsheet, но у меня есть некоторые замечания о том, как он использует функцию md5.

ИМО, сообщенные уязвимости являются ложными срабатываниями.Это правда, что использование md5() для защиты данных (особенно паролей) не подходит.Но есть и другие варианты использования хеш-значения помимо безопасности. Кажется, сканирование кода предполагает, что md5 используется в криптографических целях.Это не.

Просто взгляните на исходный код, чтобы увидеть, где используется md5().Прежде всего, он используется для создания хэша объектов с несколькими значениями свойств, чтобы можно было легко сравнивать объекты и все значения их свойств.Я не нашел никакого использования этого, которое включало бы пароль или другую связанную с безопасностью задачу.

Объекты стиля (т. Е. Границы, цвета, выравнивание и т. Д.) Являются общей целью хеширования md5.Рассмотрим «граничный» объект.Гораздо проще сравнивать хэш комбинированных значений сверху, справа, снизу, слева и диагонали, чем просматривать свойства по одному для сравнения значений с тем же свойством в другом объекте.

Все, что сказаноЯ не утверждаю, что phpspreadsheet является криптографически безопасным или что каждое использование md5 подходит.Я не проверял каждое использование md5.Но я думаю, что есть основания утверждать, что отчет не совсем точен.

...