Каково значение контрольных сумм MD5, если потенциально можно было бы манипулировать самим хэшем MD5?


39

Загрузки на веб-сайтах иногда имеют контрольную сумму MD5, что позволяет людям подтвердить целостность файла. Я слышал, что это позволяет не только мгновенно идентифицировать поврежденные файлы до того, как они вызовут проблему, но и для того, чтобы любые вредоносные изменения могли быть легко обнаружены.

Я следую логике в том, что касается повреждения файлов, но если кто-то намеренно хочет загрузить вредоносный файл , он может сгенерировать соответствующую контрольную сумму MD5 и опубликовать ее на сайте загрузки вместе с измененным файлом. Это обмануло любого, кто загружал файл, и думал, что оно не изменилось.

Как контрольные суммы MD5 могут обеспечить какую-либо защиту от намеренно измененных файлов, если нет способа узнать, была ли скомпрометирована сама контрольная сумма?


3
Если мы полагаемся на то, что хост сайта замечает незначительные расхождения в метках времени вместо хеша MD5, действующего как печать подлинности ... тогда защита, обеспечиваемая контрольной суммой, в значительной степени испарилась.
Остин «Опасность» Пауэрс

4
@ BigChris Я не уверен, что вы имеете в виду, но это звучит неправильно. Криптографические алгоритмы хеширования, такие как MD5, полностью связаны с данными сообщений. Два случайных сообщения одинаковой длины почти наверняка будут иметь разные хэши.
Мэтт Нордхофф

3
@MattNordhoff точно. Если контрольная сумма MD5 не генерируется на основе данных файла, то что это он на основе?
Остин «Опасность» державы

2
Хеш-данные MD5 будут построены на данных, да, но для создания вредоносного файла с таким же хешем не потребуется слишком много усилий. Как уже было сказано, нет способа проверить, является ли файл вредоносным или нет. Читайте: mscs.dal.ca/~selinger/md5collision
Kinnectus

2
Иногда хеши публикуются на стороннем сервере, тогда как фактические загрузки размещаются на сторонних зеркалах и / или CDN.
el.pescado

Ответы:


89

Я слышал, что это позволяет [...] также обнаруживать любые вредоносные изменения.

Ну, тогда вы слышали неправильно. Контрольные суммы MD5 (или SHA или что-то еще) предоставляются (в частности, рядом со ссылками на скачивание ) только для проверки правильности загрузки. Единственное, что они хотят гарантировать, это то, что у вас тот же файл, что и на сервере. Ни больше ни меньше. Если сервер скомпрометирован, вы SOL. Это действительно так просто.


31
+1. Они в основном используются для защиты от случайного повреждения (ошибки передачи по сети, сбойные сектора на диске и т. Д.). Для защиты от злонамеренного повреждения контрольная сумма должна поступать из надежного неподключенного местоположения. То же самое с PGP / GPG / аналогичными подписанными сообщениями: они полностью гарантируют содержание, только если вы доверяете тому, откуда вы получили открытый ключ.
Дэвид Спиллетт

1
Вы также можете добавить к своему ответу, что разностные подписи устраняют это ограничение (при условии, что вы доверяете сертификату / сертифицирующему органу)
atk

2
Это даже хуже, чем это - если кто-то может подделать ваш трафик на / с сервера, то даже если сервер не взломан, они могут изменить как файл, так и контрольную сумму, которую вы получите.
cpast

3
Для расширения: Если это было гарантия того, что вы имели один и тот же файл, который был сервер, это было бы законная мера безопасности, потому что это означало бы , вы не должны доверять сеть. Это именно то, что делают MAC в TLS - докажите, что вы получили именно то, что отправил сервер, но TLS тоже ничего не может сделать с взломанным сервером. Если хороший хеш передается по доверенному соединению, он может обеспечить безопасность (которая получена из доверенного соединения); если он отправляется по тому же соединению, что и файл, то он бесполезен, потому что он не более защищен от несанкционированного доступа, чем сам файл.
cpast

2
Это не правильно. Иногда контрольные суммы предоставляются надежно, а загрузка - нет. Поскольку MD5 сломан, контрольные суммы MD5 безопасности слабее, чем более безопасные контрольные суммы, но до того, как MD5 был сломан, надежно предоставленный MD5 (например, тот, который был подписан или отправлен по HTTP), который соответствовал MD5 загрузки, был убедительным доказательством того, что полученная загрузка была тем, который сервер делал доступным. Я добавлю ответ с более подробной информацией ниже.
Мэтью Элви

15

Решение, используемое некоторыми системами управления пакетами, такими как dpkg, заключается в подписывании хеша : используйте хеш в качестве входных данных для одного из алгоритмов подписывания открытого ключа. См. Http://www.pgpi.org/doc/pgpintro/#p12.

Если у вас есть открытый ключ подписавшего, вы можете проверить подпись, что доказывает, что хеш не изменен. Это просто оставляет вам проблему с получением правильного открытого ключа заранее, хотя, если кто-то однажды вмешается в распространение ключа, ему также придется вмешаться во все, что вы можете проверить с помощью этого, иначе вы заметите, что происходит что-то странное.


9

Ваше предположение верно. Хотя есть исключение. Если сервер, предоставляющий файл, и страница, на которой находится хеш, не управляются одним и тем же объектом. В этом случае разработчик программного обеспечения может захотеть сказать: «Эй, люди скачивают это с этого места, но верят только, если hash = xxxx». (Это может быть полезно для CDN в качестве примера). Я думаю, это было причиной, почему кто-то сделал это в первую очередь. Чем другие просто следовали, думая, как круто было бы показать хэш. Даже не думая, насколько это полезно, даже файл и хеш не находятся в одном месте.

Сказав это, стоит того, что есть. Не думайте слишком много о безопасности, как уже говорили другие. Если и только если вы можете абсолютно доверять оригинальному хешу, тогда файл хорош. В противном случае злоумышленник с достаточной мотивацией и знаниями может изменить как файл, так и хэш, даже если они находятся на разных серверах и управляются разными объектами.


8

Иногда контрольные суммы предоставляются надежно, а загрузка - нет. Так как MD5 сломан , контрольные суммы MD5 безопасности слабее, чем более безопасные контрольные суммы, но до того, как MD5 был сломан, надежно предоставленный MD5 (например, тот, который был подписан с PGP или GPG или Gatekeeper, или извлечен по HTTPS), который соответствовал MD5 загрузка была убедительным доказательством того, что полученная загрузка была доступной для сервера.

Я писал о плачевном отсутствии надежных контрольных сумм в течение многих лет, здесь .

Пользователи не должны загружать ненадежные исполняемые файлы по ненадежным сетям и запускать их из-за риска атак MITM. См., Например, «Незащищенность в системах автоматического обновления» П. Руиссена, Р. Влотуиса.

Приложение 2014 года: Нет, это НЕ неправильно, «контрольные суммы, размещенные на веб-страницах, используются для обнаружения вредоносных изменений», потому что это роль, которую они могут выполнять. Они помогают защитить от случайного повреждения и, если они обслуживаются по протоколу HTTPS или с проверенной подписью (или, еще лучше, оба), помогают защитить от злонамеренного повреждения! Я получил контрольные суммы по HTTPS и проверил, что они совпадают с загрузками HTTP много раз.

В настоящее время двоичные файлы часто распространяются с подписанными, автоматически проверенными хешами, но даже это не совсем безопасно .

Выдержка из приведенной выше ссылки: «Приложение KeRanger было подписано с действующим сертификатом разработки приложений для Mac; следовательно, оно смогло обойти защиту Apple Gatekeeper». ... »С тех пор Apple аннулировала испорченный сертификат и обновила антивирусную сигнатуру XProtect, а Transmission Project удалил вредоносные программы установки со своего веб-сайта. Palo Alto Networks также обновила фильтрацию URL-адресов и предотвращение угроз, чтобы предотвратить воздействие KeRanger на системы. Технический анализ

Два инсталлятора Transmission, зараженные KeRanger, были подписаны законным сертификатом, выданным Apple. Разработчик перечислил этот сертификат турецкой компании с идентификатором Z7276PX673, который отличался от идентификатора разработчика, использовавшегося для подписи предыдущих версий установщика Transmission. В информации о подписи кода мы обнаружили, что эти установщики были созданы и подписаны утром 4 марта. "

Приложения 2016 года:

@ Cornstalks: Re. Ваш комментарий ниже: Неверно. Как в настоящее время отмечается в статье Википедии об атаках на столкновения, на которую вы ссылаетесь: «В 2007 году была обнаружена атака столкновения с выбранным префиксом на MD5», и «злоумышленник может выбрать два произвольно разных документа, а затем добавить различные вычисленные значения, которые в результате дают целое». документы, имеющие одинаковое значение хеш-функции. " Таким образом, даже если MD5 предоставляется безопасно и злоумышленник не может изменить его, злоумышленник все равно МОЖЕТ использовать атаку коллизии с выбранным префиксом с вредоносным ПО с выбранным префиксом, что означает, что MD5 НЕ безопасен для криптографических целей. Во многом это объясняется тем, что US-CERT заявил, что MD5 «следует считать криптографически взломанным и непригодным для дальнейшего использования».

Еще пара вещей: CRC32 - это контрольная сумма. MD5, SHA и т. Д. - это больше, чем контрольные суммы; они предназначены для надежных хэшей. Это означает, что они должны быть очень устойчивы к атакам столкновений. В отличие от контрольной суммы, защищенный хэш защищенного хэша защищает от атаки «человек посередине» (MITM), когда MITM находится между сервером и пользователем. Он не защищает от атаки, когда сам сервер подвергается риску. Чтобы защититься от этого, люди обычно полагаются на что-то вроде PGP, GPG, Gatekeeper и т. Д.


Мне нравится этот ответ, потому что он выдвигает на первый план основную часть контрольной суммы - это просто одна метрика из многих, чтобы проверить правильность содержимого файла. Если сама сеть ненадежна, не так уж сложно представить себе замену MD5-хешей и исправление двоичных файлов на лету (как мы уже видели на некоторых выходных узлах Tor) ... Конечно, MD5 не обеспечивает защиты от намеренно измененные файлы, потому что вы уже доверяете поставщику указанных файлов для начала.
Прорыв

2
MD5 не полностью сломлен: атака на него - это столкновительная атака , а не присоединение прообраза (что было бы намного, намного хуже). Если MD5 предоставляется безопасно и злоумышленник не может изменить его, то злоумышленник не может использовать атаку столкновением (и должен использовать атаку с прообразом), что означает, что MD5 все еще довольно безопасен для этой цели. MD5 заслуживает поэтапного отказа из-за его уязвимости коллизий, но у него нет (известной) уязвимости прообраза, поэтому он не полностью сломан. Просто наполовину сломан.
Кукурузные початки

+1! Но ... Является ли подписанный хеш действительно таким же безопасным ( надежным ), как и неподписанный хеш, полученный по протоколу https (ssl / tls)? Я думаю, что все еще предпочтительнее, чтобы сам хэш был подписан в любом случае ...
matpop

4

Именно по этой причине размещаемые контрольные суммы часто содержат заявление об отказе от ответственности «Это не может защитить от злонамеренного изменения файла». Итак, краткий ответ: «Они не могут обеспечить какую-либо защиту от намеренно измененного файла» (хотя, если страница доставляется по HTTPS, сам HTTPS защищает от модификации; если файл не доставляется по HTTPS, но контрольная сумма есть, тогда это может помочь некоторым, но это не распространенный случай). Тот, кто сказал вам, что контрольные суммы, размещаемые на веб-страницах, используются для обнаружения вредоносных изменений, был неправильным, потому что это не та роль, которую они могут выполнять; все, что они делают, это помогают защитить от случайной коррупции и ленивой вредоносной коррупции (если кто-то не потрудится перехватить страницу с контрольной суммой).

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


2
Хэши могут защитить от злонамеренных изменений, если кто-то знает из какого-то независимого источника, каким должен быть ожидаемый хэш надежной версии файла. Ценность наличия на веб-сайте списка хеш-значений его файлов заключается не в том, чтобы позволить людям, которые скачивают файлы с сайта, проверять хэш загруженного файла на том же сайте, а в том, чтобы позволить людям, которые знают из какого-либо другого источника. хеш файла, который они хотят , знать, будет ли соответствующий файл соответствовать ему, прежде чем они загрузят его. Кстати, одну вещь, которую я хотел бы увидеть ...
суперкат

... будет формой URL / URI, которая включает ожидаемое значение хеша (вероятно, SHA, а не MD5), и будет указывать, что браузер должен принимать файл, только если хеш совпадает с указанным. В тех случаях, когда многим людям потребуется доступ к одному и тому же большому файлу, предоставление всем этим людям URL-адреса через https: //, но их загрузка файла с прокси-сервера может быть более эффективной, чем использование ими всех https: // прямо из источника.
суперкат

@supercat Это то, что я имел в виду, «не позволяя людям связываться с контрольной суммой» - что-то должно быть безопасно передано, и если это контрольная сумма, то контрольная сумма может помочь защитить от злонамеренного вмешательства в файл.
cpast

Контрольная сумма MD5, передаваемая по некоторому пути, отличному от самого файла, обеспечит защиту от подделки, если файл не был специально создан для облегчения такой подделки. Напротив, что-то вроде CRC32 практически не обеспечивало бы защиту от взлома, даже если исходный источник файла был заслуживающим доверия, а CRC32 был доставлен надежно.
суперкат

4

Это действительно проблема. Отображение контрольных сумм на том же сайте, что и файл для загрузки, небезопасно. Человек, который может изменить файл, также может изменить контрольную сумму. Контрольная сумма должна отображаться через полностью разделенную систему, но это вряд ли возможно, потому что, как безопасно сообщить пользователю, где можно найти контрольную сумму.

Возможное решение - использование подписанных файлов.

(Кстати: MD5 нигде небезопасен и не должен больше использоваться.)


2

Как контрольные суммы MD5 могут обеспечить какую-либо защиту от намеренно измененных файлов, если нет способа узнать, была ли скомпрометирована сама контрольная сумма?

Вы совершенно правы. Таким образом, цель состоит в том, чтобы сделать ваше «если» неправильным - если мы знаем, что безопасный криптографический хеш файла не скомпрометирован, то мы знаем, что файл также не скомпрометирован.

Например, если вы разместите хэш-файл на своем веб-сайте, а затем создадите ссылку на копию файла на стороннем зеркальном сервере - обычная практика распространения устаревшего бесплатного программного обеспечения - ваши пользователи могут быть защищены от некоторых типов атак. Если зеркальный сервер является вредоносным или скомпрометирован, но с вашим сайтом все в порядке, зеркало не сможет подорвать ваш файл.

Если ваш веб-сайт использует HTTPS или вы подписываете хэш gpg, ваш файл также может быть (в основном) защищен от сетевых атак, таких как вредоносные точки доступа Wi-Fi, мошеннические выходные узлы Tor или NSA.


1
Что касается gpg: помните, что это имеет аналогичные проблемы, если вы не полностью доверяете открытому ключу, который не был заменен взломанным, и контент, подписанный закрытым ключом, соответствует этому.
Дэвид Спиллетт

1

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

Если вы хотите «привязать» файл к чему-то внешнему, например, к автору, машине и т. Д., Его необходимо подписать , используя процесс типа PKI с сертификатами. Автор файла и т. Д. Может подписать файл своим закрытым ключом, и вы можете проверить подписи открытым ключом, который должен быть общедоступным, сам подписан ЦС и доверять вам и автору и быть загружаемым, предпочтительно из несколько мест.

Изменение файла сделает подпись недействительной, так что это также можно использовать для проверки целостности файла.


1

Хэши указывают, отличается ли ваша версия файла («загрузка») от версии сервера. Они не дают никаких гарантий подлинности файла.

Цифровые подписи (асимметричное шифрование + хэш-функция) могут использоваться для проверки того, что файл не был изменен тем, у кого нет соответствующего закрытого ключа.

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

Что мешает мистеру "A.Hacker" просто изменить файл, а затем подписать его своим личным ключом?

Чтобы проверить файл, вам нужно сравнить его хеш с тем, который вы получили, расшифровав соответствующую цифровую подпись. Если вы считаете, что файл принадлежит «IMAwesome», то вы расшифровывает хеш, используя его ключ, и хеш не соответствует файлу, поскольку хеш был зашифрован с использованием ключа A.Hacker.

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

Но как мы можем получить открытый ключ IMAwesome? Как мы можем гарантировать, что когда мы получили его / ее ключ, на самом деле ключ А.Хакера не обслуживался скомпрометированным сервером или атакой «человек посередине»? Именно здесь появляются цепочки сертификатов и доверенные корневые сертификаты, ни один из которых не является полностью безопасным [1] решением проблемы, и оба из них, вероятно, должны быть хорошо объяснены в Википедии и других вопросах, касающихся SO.

[1] После проверки корневые сертификаты, поставляемые с операционной системой Microsoft на моем рабочем ПК, включают сертификат правительства США. Любой человек , имеющий доступ к соответствующему секретному ключу от кашля NSA кашля поэтому может служить содержание в моем веб - браузер , который передает «есть висячий замок в адресной строке» проверки. Сколько людей на самом деле потрудится нажать на замок и посмотреть , какая пара ключей используется для «защиты» соединения?


Требуется только один человек, который проверяет цепочку сертификатов, чтобы вызвать скандал. Если вы думаете, что АНБ будет использовать правительственный ключ CA для MITM вместо того, чтобы использовать один украденный из частного или, что еще лучше, иностранного центра сертификации (таким образом, предоставляя правдоподобную защиту), у меня есть мост, чтобы продать вас.
Чарльз Даффи

Я предлагал возможность использовать его для нацеливания MITM на конкретного пользователя. Что касается того, действительно ли это вероятно, это для людей из фольги, чтобы обсудить
Марк К Коуэн

Я не подвергаю сомнению, вероятен ли целевой MITM. Я подвергаю сомнению, вероятно ли быть достаточно небрежным, чтобы использовать легко отслеживаемый и атрибутированный ключ CA для его выполнения. В частности, для цели с достаточно высокой ценностью исходящий сетевой трафик должен регистрироваться достаточно подробно, чтобы включать метаданные вплоть до открытой части рукопожатия SSL, поэтому, даже если пользователь не смотрит, его сотрудники службы безопасности или автоматизированная инфраструктура может сделать это в ретроспективном анализе.
Чарльз Даффи

1

Как контрольные суммы MD5 могут обеспечить какую-либо защиту от намеренно измененных файлов, если нет способа узнать, не была ли контрольная сумма также не скомпрометирована?

Это действительно хороший вопрос. В целом, ваша оценка манипуляций с MD5 очень важна. Но я считаю, что ценность контрольных сумм MD5 при загрузке в лучшем случае поверхностна. Возможно, после загрузки файла вы можете сравнить имеющуюся у вас MD5 с веб-сайтом, но я склонен рассматривать параллельное хранилище MD5 как «квитанцию» или что-то хорошее, но не надежное. Таким образом, я, как правило, никогда не заботился о контрольных суммах MD5 из загруженных файлов, но я могу сказать из своего опыта создания специальных серверных процессов MD5.

В основном, что я сделал, когда клиент хочет проверить файловую систему для контрольных сумм MD5, - это чтобы они были сгенерированы в файлы CSV, которые отображают имя файла, путь, MD5 и другую информацию о файле - в формат структурированных данных, который я затем принял в базу данных для сравнения и хранения.

Итак, используя ваш пример, в то время как контрольная сумма MD5 может находиться рядом с файлом в своем собственном текстовом файле, контрольная сумма MD5 будет храниться в неподключенной системе базы данных. Поэтому, если кто-то каким-то образом взломает файловый ресурс для манипулирования данными, у этого злоумышленника не будет доступа к авторитетным записям MD5 или истории подключенных файлов.

Недавно я обнаружил замечательное программное обеспечение для архивирования библиотек под названием ACE Audit manager, которое в основном представляет собой Java-приложение, предназначенное для отслеживания изменений в файловой системе. Он регистрирует изменения через изменения MD5. И он работает по принципу, аналогичному моему специальному процессу - сохранению контрольных сумм в базе данных - но он продвигается дальше, но создает контрольную сумму MD5 контрольных сумм MD5, известную как хеш-дерево или дерево Меркле .

Допустим, у вас есть 5 файлов в коллекции. Затем эти 5 файлов в диспетчере аудита ACE получат еще одну - назовем ее «родительской» - контрольную сумму, которая является хешем, сгенерированным из 5 контрольных сумм MD5 каждого файла. Таким образом, если кто-то вмешается только в один файл, хэш для файла изменится, как и хэш для всей «родительской» коллекции.

В общем случае, вам нужно взглянуть на контрольные суммы MD5 и связанные с ними хэши целостности, если они не связаны с каким-либо непрямым хранилищем для самих хэшей MD5, они могут быть повреждены. И их ценность как инструмента долговременной целостности данных эквивалентна дешевому замку, который «бесплатно» предоставляется для нового места багажа; если вы серьезно относитесь к блокировке своего багажа, вы получите замок, который невозможно открыть в течение 5 секунд с помощью скрепки.


«Контрольная сумма MD5 контрольных сумм MD5» известна как дерево Меркля .
pjc50

@ pjc50 Спасибо! Отредактировал ответ для ссылки на это.
JakeGould

0

скорость

Часто люди обнаруживают, что гораздо быстрее (а) загрузить большой файл из ненадежной «соседней» сети доставки контента (CDN), зеркального сайта, торрент-пиров и т. Д., А также загрузить соответствующий файл короткой контрольной суммы (часто SHA256; устаревшее программное обеспечение). часто используется MD5) из нескольких надежных источников. Они считают, что это невыносимо медленно (б) загрузить весь большой файл напрямую из надежного источника.

Проверка

Часто этот человек обнаруживает, что все проверяется - источники (доверенные и недоверенные) согласовывают одну и ту же контрольную сумму и запускают shasum (или md5sum) с любым из этих коротких файлов контрольной суммы (не имеет значения, какой из них, когда все они идентичны) ) указывает, что большой файл имеет соответствующую контрольную сумму.

модификация

Вы правы в том, что, когда Мэллори злонамеренно изменяет большой файл, находящийся на каком-либо сайте загрузки, Мэллори будет также легко злонамеренно проверять контрольную сумму этого файла на том же сайте загрузки, чтобы запуск shasum (или md5sum) для этого вредоносного файла контрольной суммы кажется, чтобы проверить большой файл. Но этот файл контрольной суммы не является единственным файлом, который загрузчик должен использовать для проверки.

Когда загрузчик сравнивает этот вредоносный файл контрольной суммы с файлами контрольной суммы, загруженными из надежных источников, если исходная контрольная сумма проскальзывает хотя бы один раз, тогда загрузчик увидит, что все не проверяется, и узнает, что что-то пошло не так.

Как сказал ранее cpast, если надежная криптографическая контрольная сумма передается по доверенному соединению, она может обеспечить безопасность (которая получается из доверенного соединения).

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

«С точки зрения безопасности криптографические хеши, такие как MD5, позволяют аутентифицировать данные, полученные с небезопасных зеркал. Хеш MD5 должен быть подписан или получен из безопасного источника (страница HTTPS) организации, которой вы доверяете». - https://help.ubuntu.com/community/HowToMD5SUM

Криптографические контрольные суммы являются важной частью практических сигнатур с открытым ключом (как реализовано в GnuPG и другом OpenPGP-совместимом программном обеспечении). Подписи с открытым ключом имеют некоторые преимущества перед контрольными суммами.


0

Я слышал, что эта [контрольная сумма MD5] позволяет [...] также легко обнаруживать любые вредоносные изменения.

Ну, вы не слышали полностью неправильно . Цифровая подпись - это то, что используется для обнаружения злонамеренных изменений. По ряду важных причин хеширование является фундаментальной частью цифровой подписи, поскольку фактически подписывается только хеш , а не весь исходный файл.

При этом, если источник не предоставляет сигнатуру хэша и надежный способ его проверки , то вы правы, защита от преднамеренно измененных файлов не предоставляется , но хэш по- прежнему полезен в качестве контрольной суммы от случайного коррупция .

Вот пример из реального мира, который может прояснить все это. Следующий отрывок особенно важен по этому вопросу:

Для более старых выпусков архивированных CD были сгенерированы только контрольные суммы MD5 [...]. Для более новых выпусков используются более новые и криптографически более надежные алгоритмы контрольной суммы (SHA1, SHA256 и SHA512)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.