Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОТВЕТЫ МИР.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
547 Кб
Скачать
☆

55. Использование jar-файлов

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

Основные операции с jar-файлами:

  1. создание;

  2. просмотр содержимого – jar tf xxx.jar;

  3. выделение содержимого из jar-файла – jar xf xxx.jar;

  4. выделение заданных файлов из jar-архива – jar xf xxx.jar <имена файлов через пробел>;

  5. выполнение приложения, пакетированного как jar-файл (актуально для JDK 1.1) – jre –cp приложение.jar MainClass;

  6. выполнение аплета, пакетированного как jar-файл, содержимое которого подчиняется стандартным правилам описания аплета – java -jar <имя аплета>.jar;

  7. вызов аплета на выполнение с помощью тэга APPLET.

56. JAR-файлы. Технология цифровой подписи

Основная идея цифровой подписи (digital signature) заключается в следующем.

Допустим, отправитель хочет послать получателю некоторые данные. Он "подписывает" документ или код с помощью специального закрытого ключа (private key). Этот ключ генерируется с помощью утилиты keytool или средствами API. В данном случае "подписывает" означает, что генерируется специальная цифровая подпись с помощью утилиты jarsigner или средствами API.

Следует отметить, что в jar-файле могут быть произвольные данные, например, программа, картинка или документ Word.

Диаграмма, иллюстрирующая работу получателя jar-архива

В процессе генерации закрытого ключа, создается и так называемый открытый ключ (public key), который "соответствует" закрытому.

Получателю отправляются следующие данные:

1.      исходный документ или код,

2.      цифровая подпись (либо отдельно, либо в составе jar-файла),

3.      открытый ключ.

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

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

57. JAR-файлы. Проверка аутентичности и верификация

Проверка подлинности (верификация).

Завершающим этапом работы получателя является собственно получение ответа на вопрос о правдивости подписи и данных. С помощью метода verify() объекта класса Signature можно получить результатом boolean:

boolean verifies = sig.verify(sigToVerify);

Значение будет true, если данная подпись (sigToVerify) действительная подпись для данных, созданная с использованием открытого ключа (pubKey).

Следует отметить, что первый этап, связанный с работой отправителя, требует некоторого времени для генерации необходимых для отправки данных. Для компьютера класса Intel Pentium III с частотой 733 МГц время генерации составляет приблизительно 10 секунд. Кстати, время, затрачиваемое для верификации на порядок меньше.

Кроме рассмотренного DSA, предоставляются и многие другие средства криптографической защиты, как RSA, DES и другие. Их использование подобно представленному DSA.