2013-03-04 2 views
3

Согласно сайтам, например apache подписание файла (генерирование контрольной суммы) с использованием GPG более безопасно, чем простой старый MD5. Я не понимаю, почему большинство людей используют MD5. Могут ли некоторые объяснить реальные различия в простом техническом английском?MD5 vs подпись GPG

ответ

4

Контрольная сумма MD5 может быть сгенерирована любым, кто имеет доступ к файлу. Злоумышленник, который врывается на сайт или выполняет атаку «человек в середине», может легко изменить контрольную сумму MD5, чтобы он соответствовал скомпрометированному файлу.

Подпись GPG, с другой стороны, может (теоретически) генерироваться только владельцем соответствующего закрытого ключа. Если подписант находится в вашей сети доверия, подпись проверяет целостность содержимого файла и демонстрирует, что владелец ключа передает данные о содержимом файла.

Кроме того, MD5 начал проявлять некоторые недостатки за последние несколько лет; GPG имеет тенденцию использовать более современные алгоритмы.

Вероятно, контрольные суммы MD5 по-прежнему используются, потому что им легче. (SHA-1 лучше, чем MD5, и становится все более распространенным.)

ОБНОВЛЕНИЕ (4 года спустя): MD5 теперь должен считаться небезопасным, и были продемонстрированы отдельные файлы с идентичными контрольными суммами SHA-1. Есть лучшие алгоритмы контрольной суммы, но я не буду рекомендовать конкретный; Я подозреваю, что этот ответ по-прежнему будет здесь после того, как они будут сломаны.

+0

Хмм ... Я думаю, что время, когда мы все переключаемся на gpg – LogicalConfusion

+1

@LogicalConfusion: GPG и MD5 имеют разные цели. MD5 - это всего лишь отпечаток пальца для данного файла, а иногда это все, что вам нужно. Подпись GPG/PGP должна быть сделана владельцем определенного ключа - и она не может быть проверена, если у вас нет доступа к этому открытому ключу. Это не так уж плохо, если открытый ключ находится на публичных серверах, но это дополнительные накладные расходы, которые вам не всегда нужны. Известно, что MD5 составляет несколько недель; SHA1 лучше, а новые алгоритмы еще лучше. –

+0

Например, Git использует контрольные суммы SHA1 для идентификации контента; не было бы особого преимущества при использовании GPG/PGP. И вы всегда можете PGP-подписывать файл, содержащий контрольные суммы SHA1 (или SHA-whatever). (Фактически Git поддерживает подписание тегов GPG.) –

Смежные вопросы