где предпринимаются усилия по стандартизации метаданных целостности загрузки? (Appcasting?)

449
Jason S

Я все время скачиваю программное обеспечение с открытым исходным кодом и постоянно смущаюсь тем фактом, что, с одной стороны, многие сайты ( Apache, MySQL, Eclipse ) предоставляют информацию о целостности загрузки через хеши MD5 и / или цифровые подписи, особенно после загрузки зеркальных сайтов. вовлечены, которые потенциально уязвимы для хакерских атак, но формат этой информации о целостности загрузки удобочитаем, а не машиночитаем.

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

... почему что-то подобное не так широко распространено в сообществе открытого кода? Что нужно, чтобы запустить что-то подобное?

0

1 ответ на вопрос

2
frnknstn

Короткий ответ: есть стандартный метод, который называется подписью приложения . Более длинный ответ немного сложнее.

Что касается вашей идеи хеширования MD5, то существует по крайней мере один экспериментальный плагин Firefox, который вычисляет хэши загружаемых файлов. Затем вы можете вручную сравнить их. Кроме того, многие сайты предлагают загрузки текстовых файлов с предварительно вычисленными хэшами для их программного обеспечения. Затем вы можете принудительно проверить с помощью md5sum -c < hash filename >. Проблема всех этих методов заключается в том, что если злоумышленник сможет заменить загруженный вами файл, он, вероятно, сможет изменить хэши, перечисленные на веб-сайте.

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

Итак, почему мы не видим лучшего принятия этих методов? Ну, они уже довольно хорошо приняты, и в основном невидимы, когда они работают. Основные операционные системы и браузеры используют подписи, если они доступны по умолчанию. Кроме того, основные дистрибутивы Linux подписывают пакеты программного обеспечения и обновления, которые они предоставляют, используя эти методы. Тем не менее, когда дело доходит до мелких игроков, мы вряд ли увидим широкое принятие.

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

К сожалению, использование такого «самоподписанного» сертификата снижает доверие общественности к вашему программному обеспечению, а не повышает его. Если вы подписываетесь самостоятельно, ОС / браузер громко жалуется при попытке открыть пакет; даже громче, чем для абсолютно неподписанного файла. Поскольку браузер или операционная система не доверяют создателю программного обеспечения, они думают, что вам также не следует им доверять.

Отсюда хакерская жалоба: почему кто-то должен доверять какому-то безликому многонациональному центру сертификации больше, чем кому-то другому? Что они когда-либо делали, чтобы доказать, что они заслуживают большего доверия, чем все остальные?

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

Я не согласен с тем, что вы говорите, но (а) иногда загружаемые файлы представляют собой файлы, которые не являются приложениями (файлы .dll или скомпилированные библиотеки, файлы .xml и т. Д.), Поэтому они не могут быть подписаны. И (б), многие сайты используют хеши MD5 для проверки целостности зеркальных сайтов загрузки. Я просто хотел бы, чтобы хэш MD5 был отформатирован таким образом, чтобы его можно было прочитать на компьютере. Jason S 14 лет назад 0
Ну, любой файл может быть подписан, а не только исполняемые файлы. Например, на сайте apache любая загрузка сопровождается файлом .asc, который содержит подпись, например mysql.tar.gz.asc. Полагаю, что вы запрашиваете, так это плагин Firefox, который: -может распознавать и предлагать импортировать открытые ключи PGP, с которыми вы сталкиваетесь -автоматически пытается загружать файлы .md5 или .asc, когда бы вы ни начали загрузку, - проверять загрузку, когда она есть. завершено, или когда вы вручную загружаете файл подписи, автоматически проверяйте файлы, которые он подписывает frnknstn 14 лет назад 0

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