JAR-файл: цифровая подпись

Если файл JAR имеет цифровую подпись, становится ли подпись частью файла манифеста?


person Gina    schedule 06.05.2010    source источник


Ответы (2)


Почти. На самом деле подписывается не JAR-файл, а его содержимое.

Технически отдельные файлы в архиве JAR, которые должны быть подписаны, хэшируются с помощью подходящей хеш-функции (например, SHA-1). Хэш-значение указано в манифесте. Затем добавляется дополнительный файл (файл *.SF) в каталог META-INF/; этот файл содержит записи для каждого из подписанных файлов: каждая запись содержит хеш соответствующей записи в манифесте (так что это более или менее хеш хэша). *.SF также содержит запись, содержащую хэш основных заголовков манифеста. Наконец, сам файл *.SF подписывается, в результате чего создается файл *.RSA или *.DSA (сам в каталоге META-INF/), который следует за CMS (ранее известный как "PKCS#7"). CMS полагается на все атрибуты сертификатов X.509.

Так что это скорее косвенно. Следует понимать, что подписываются только отдельные файлы в JAR; в данном файле JAR может быть смесь подписанных и неподписанных частей.

person Thomas Pornin    schedule 06.05.2010

По-видимому, ответ положительный: «Разработчики могут подписывать файлы JAR цифровой подписью. В этом случае информация о подписи становится частью файла манифеста». (http://en.wikipedia.org/wiki/JAR_%28file_format%29)

person Gina    schedule 06.05.2010