Spec-Zone .ru
спецификации, руководства, описания, API
|
Этот документ описывает улучшения, которые были добавлены в J2SE 5.0, чтобы поддерживать метки времени подписи.
До J2SE 5.0, подпись, сгенерированная jarsigner
содержавший никакая информация о том, когда подпись была сгенерирована. Без другой доступной информации, systems/deployers (включая пользователей Плагина Java) часто базировал их оценку законности подписанного файла JAR на законности сертификата подписания. Когда сертификат подписания истекает, systems/deployers приходят к заключению, что подпись, и следовательно, файл JAR, истекла. Поскольку сертификаты подписания обычно истекают ежегодно, это вызвало клиентов существенные проблемы, вынуждая их оставить развернутые файлы JAR ежегодно.
Запуск в J2SE 5.0, jarsigner
может генерировать подписи, которые включают метку времени, таким образом включая systems/deployer (включая Плагин Java), чтобы проверить, был ли файл JAR подписан, в то время как сертификат подписания был все еще допустим. Кроме того, API были добавлены в J2SE 5.0, чтобы позволить приложениям получать информацию о метке времени.
В следующий раз улучшения и дополнения поддерживаются в версии 5.0 платформы JavaSE:
jarsigner
инструмент может теперь генерировать и сохранить метку времени подписи, подписывая файл JAR. Кроме того, jarsigner
поддерживает альтернативные механизмы подписания. Это поведение является дополнительным и управляется пользователем во время подписания через опции, описанные ниже. Следующие опции были добавлены к jarsigner
инструмент, чтобы поддерживать метки времени подписи:
-tsa url
Если "-tsa http://example.tsa.url"
появляется на командной строке, подписывая файл JAR тогда, метка времени сгенерирована для подписи. URL, http://example.tsa.url
, идентифицирует расположение Властей Добавления метки времени (TSA). Это переопределяет любой URL, найденный через -tsacert
опция. -tsa
опция не требует, чтобы сертификат TSA с открытым ключом присутствовал в keystore.
Генерировать метку времени, jarsigner
связывается с TSA, используя Протокол Метки времени (TSP), определенный в
-tsacert alias
"-tsacert alias"
появляется на командной строке, подписывая файл JAR тогда, метка времени сгенерирована для подписи. alias
идентифицирует сертификат TSA с открытым ключом в keystore, который является в настоящий момент в действительности. Сертификат записи исследуется на Подчиненное информационное расширение Доступа, которое содержит URL, идентифицирующий расположение TSA. Сертификат TSA с открытым ключом должен присутствовать в keystore при использовании -tsacert
.
-altsigner class
Определяет, что используется альтернативный механизм подписания. Полностью определенное имя class идентифицирует файл class, который расширяется com.sun.jarsigner.ContentSigner abstract class
. Путь к этому файлу class определяется -altsignerpath
опция. Если -altsigner
опция используется, jarsigner
использует механизм подписания, обеспеченный указанным class. Иначе, jarsigner
использует его механизм подписания значения по умолчанию. Например, чтобы использовать механизм подписания, обеспеченный названным class com.sun.sun.jarsigner.AuthSigner
, используйте jarsigner
опция "-altsigner com.sun.jarsigner.AuthSigner"
-altsignerpath classpathlist
Определяет путь к файлу class (имя файла class определяется с -altsigner
опция, описанная выше), и любые файлы JAR это зависит от. Если файл class находится в файле JAR, то это определяет путь к тому файлу JAR, как показано в примере ниже. Абсолютный путь или путь относительно текущего каталога могут быть определены. Если classpathlist
содержит разнообразные пути или файлы JAR, они должны быть разделены двоеточием (:
) на Солярисе и точке с запятой (;
) на Windows. Эта опция не необходима, если class уже находится в пути поиска.
Пример определения пути к файлу фляги, который содержит файл class:
-altsignerpath /home/user/lib/authsigner.jar
Отметьте, что имя файла JAR включается.
Пример определения пути к файлу фляги, который содержит файл class:
-altsignerpath /home/user/classes/com/sun/tools/jarsigner/
Отметьте, что имя файла JAR опускается.
В J2SE 5.0, Плагин Java был улучшен, чтобы проверить метки времени подписи (при наличии), проверяя файлов JAR. Плагин Java больше не будет представлять диалоговое окно, когда он встретится с или отменяемым сертификатом с истекшим сроком, проверяя подписанной фляги, при условии, что метка времени подписи подтверждает, что подпись была сгенерирована до даты аннулирования или истечения.
Сертификат TSA должен быть доступным от keystore Плагина или хранилищ сертификата, когда Плагин проверяет файла JAR, содержащего метку времени подписи.
Плагин возвращается к 1.4.x поведение, если подпись не содержит метку времени.
Два новых класса были добавлены к пакету java.security. Этими классами является CodeSigner, который поддерживает информацию, связанную с подписывающим лицом, и Меткой времени, которая представляет информацию, связанную с меткой времени подписи.
Новые методы были добавлены к java.security.CodeSource class и java.util.jar.JarEntry class, чтобы предоставить доступ к этой новой, дополнительной информации.