JAR-файл: цифровая подпись - PullRequest
3 голосов
/ 06 мая 2010

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

Ответы [ 2 ]

5 голосов
/ 06 мая 2010

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

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

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

0 голосов
/ 06 мая 2010

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

...