Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсовой Ульяны.docx
Скачиваний:
59
Добавлен:
25.11.2018
Размер:
96.6 Кб
Скачать

2.Создание подписанного апплета .

2.1. Создание архивного jar-файла

В результате компиляции исходного кода апплета был создан набор файлов .class соответствующих классов апплета.

Создание архивного JAR-файла осуществлялось с помощью утилиты jar, входящей в JDK, следующим образом:

jar cfv draw.jar Draw*.class

При упаковке использовался набор опций «cfv». Опции «cf» позволяют создать новый Jar архив. Опция «v» выводит в консоль подробную информацию о процессе упаковки.

В результате выполнения команды, указанной выше, был создан файл draw.jar.

При этом утилита jar создает файл описания архива MANIFEST.MF в каталоге META-INF архива.

Manifest-Version: 1.0

Created-By: 1.6.0_22 (Sun Microsystems Inc.)

Name: Draw.class

SHA1-Digest: EBnjaMiuKzLw5WiF/UAbm8F39mM=

Name: Draw$6.class

SHA1-Digest: Sh7ajg1656yIhXAVGM+iMRPnQDs=

Name: Draw$4.class

SHA1-Digest: cXJ5Ict4gtpI1Y/6ReGDh9ZnFp0=

Name: Draw$3.class

SHA1-Digest: VLuv5OcuU06aZIOGOkt3YIWQaxM=

Name: Draw$2.class

SHA1-Digest: TIcoCCVDuTyjIgQPor+WjCUIkic=

Name: Draw$1.class

SHA1-Digest: y2M69LZdgGyry5RIqWngvIGl09k=

Name: Draw$7.class

SHA1-Digest: 38fm/3daBpVKn2jAkpt0flonSLk=

Name: Draw$5.class

SHA1-Digest: /URKtd7LTlH0ugHkImqe7pbYoFA=

2.2. Создание пары ключей и сертификата в хранилище ключей

Далее с помощью утилиты keytool создаётся пара ключей («открытый/закрытый») и сертификат по стандарту X.509 для псевдонима «lubimova_bts909» в хранилище ключей lubimovakeystore в текущем каталоге.

Для создания самоподписанного сертификата применилась команда:

keytool -genkey -alias "lubimova_bts909" -keystore lubimovakeystore

где:

-genkeyпараметр указывающий, что утилита keytool должна сгенерировать ключи

alias "lubimova_bts909"псевдоним, под которым в хранилище ключей размещается сертификат

-keystore lubimovakeystoreназвание хранилища ключей.

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

2.3. Подписывание jar-файла цифровой подписью

Архивный JAR-файл подписывается с помощью утилиты jarsigner. используя следующую команду:

jarsigner -keystore lubimovakeystore draw.jar "lubimova_bts909"

Утилита требует ввести пароль хранилища ключей и пароль закрытого ключа после чего модифицирует файл описания архива MANIFEST.MF в каталоге META-INF архива.

В него добавляются записи для каждого файла класса, входящего в архив. Запись файла класса включает имя и дайджест файла.

Также в каталог META-INF архива добавляется файл подписи LUBIMOVA.SF.

Содержимое файла подписи LUBIMOVA.SF:

Signature-Version: 1.0

SHA1-Digest-Manifest-Main-Attributes: zasvPbp2Pj22IZ986L4058c4i8Y=

Created-By: 1.6.0_22 (Sun Microsystems Inc.)

SHA1-Digest-Manifest: ImEfOYzMILmHkKKCviBxm0fsyDU=

Name: Draw$6.class

SHA1-Digest: vGqzLEH/KbnacjDtQiSDXKICJa4=

Name: Draw.class

SHA1-Digest: uBc73pDabRJm+oicwf+mhIiy5qw=

Name: Draw$4.class

SHA1-Digest: C2C+XUP+HE5T673xNHoIQCKX2jE=

Name: Draw$3.class

SHA1-Digest: gRIazdXuUfqouDlcXHXjUYYSn9I=

Name: Draw$2.class

SHA1-Digest: 2BU7L5XPQrkOMeunvNJ5wL4raxE=

Name: Draw$1.class

SHA1-Digest: wZwghCWaQOGzLN/4T+KddE4G0To=

Name: Draw$7.class

SHA1-Digest: jC+t48UG1rlZ+YVEA6rlSXAe1Ew=

Name: Draw$5.class

SHA1-Digest: 4jIxKoFfAJGZCsyYu4j4+VzBMmU=

Файл подписи идентифицирует каждый из файлов в архиве, алгоритм дайджеста содержит для каждого файла значение дайджеста, вычисленного из записи файла в файле описания MANIFEST.MF.

На заключительном этапе подписания в каталог META-INF файла архива добавляется двоичный файл подписи LUBIMOVA.DSA. Этот файл содержит подпись файла подписи LUBIMOVA.SF и сертификат, заверяющий подлинность открытого ключа, соответствующего закрытому ключу, использованному при создании подписи.