RSS    

   Курсовая работа: Разработка Java-апплета и подписывание архивного JAR-файла электронной цифровой подписью

out.flush();

// Далее происходит чтение из файла и заполнение текстовой области

// данными, содержащимися в текстовом файле Lab4Log.txt

// Создание буферизированного символьного потока чтения из файла*/

BufferedReader in = new BufferedReader(new FileReader(fileName));

String s = "", line;

while ((line = in.readLine()) != null)

s += line + "\n";

fileText.setText(s);

in.close();

}

catch(IOException ex)

{

fileText.setText("Ошибка чтения файла: " + ls);

fileText.append(ex.toString());

}

}

}

// Реализация блока прослушивания от списка List и переключателей(CheckBox)

public void itemStateChanged(ItemEvent ie)

{

if(ie.getSource() == list)

{

String s = list.getSelectedItem();

if(s.equals("Чёрный"))

{

col = Color.black;

}

if(s.equals("Синий"))

{

col = Color.blue;

}

if(s.equals("Красный"))

{

col = Color.red;

}

if(s.equals("Зелёный"))

{

col = Color.green;

}

if(s.equals("Жёлтый"))

{

col = Color.yellow;

}

if(s.equals("Оранжевый"))

{

col = Color.orange;

}

if(s.equals("Розовый"))

{

col = Color.pink;

}

if(s.equals("Фиолетовый"))

{

col = Color.magenta;

}

if(s.equals("Тёмно-серый"))

{

col = Color.darkGray;

}

p6.repaint();

p7.repaint();

p8.repaint();

p9.repaint();

}

}

// Обработка события от CheckBox (Определение доступности панелей и их компонентов)

if(ie.getSource() == cb1)

{

p1.setEnabled(true);p4.setEnabled(true);

p7.setEnabled(true);

cards.setEnabled(true);

}

if(ie.getSource() == cb2)

{

p1.setEnabled(true);p4.setEnabled(true);

p7.setEnabled(false);

cards.setEnabled(false);

}

if(ie.getSource() == cb3)

{

p1.setEnabled(true);p4.setEnabled(false);

p7.setEnabled(true);

cards.setEnabled(false);

}

if(ie.getSource() == cb4)

{

p1.setEnabled(true);p4.setEnabled(false);

p7.setEnabled(false);

cards.setEnabled(true);

}

}

}


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

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

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

Для создания архива применилась команда следующего вида:

jar cfv Lab4.jar Lab4*.class,

где: jarназвание утилиты, которая упаковывает файлы и создаёт архив

cfvэто набор из трёх параметров:

·  с – указывает на то,что создаётся новый архив

·  fпервый элемент в списке файлов – имя архива, который должен быть создан

·  vвывод на консоль сообщений о всех действиях утилиты jar

Lab4.jar название нового архива

Lab4*.class параметр указывает, что все файлы классов расположенные в текущем каталоге, размещаются в архиве Lab4.jar


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

Также в HTML файле, используемом для запуска апплета были внесены изменения, а именно добавлен атрибут ARCHIVE элемента Applet. Значение атрибута ARCHIVE = Lab4.JAR.

 

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

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

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

keytool -genkey -alias «Taraninkey» -keystore Taraninstore,

где:

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

-alias «Taraninkey» – псевдоним, под которым в хранилище ключей размещается сертификат

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

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

В данном курсовом проекте пароль закрытого ключа «Taraninkey» – 123369, а пароль хранилища ключей «Taraninstore» – 123.

При создании ключей и подписании сертификата были использованы алгоритмы:

·  Алгоритм ключа RSA

·  Алгоритм подписи MD-5

 

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

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

jarsigner -keystore Taraninstore Lab4.jar «Taraninkey»

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

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

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

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

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

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

 

2.4 Задание политики безопасности для подписанного апплета

В данной курсовом проекте для получения доступа к локальной файловой системе, для подписанного электронной цифровой подписью апплета, был создан пользовательский файл политики безопасности Lab4.policy.


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


3. Выполнение подписанного апплета

При запуске апплета в среде браузера MS IE 5(6) с модулем Java plgu-in из JDK 1.4.x система безопасности задаёт вопрос о доверии поставщику, чьим сертификатом заеверен апплет.

При выборе пользователем ответа Grant this session апплет получает полные права доступа ко всем ресурсам. Для обращения к локальной файловой системе пользователь может осущесвить чтение файла-журнала, хранящегося на локальном диске, нажав кнопку «View Certificate».

При выборе пользователем Deny апплет получает разрешене работать только с теми ресурсами, права доступа к которым прописаны в файлах политики безопасности. При выборе Grant always апплет получает полные права доступа ко всем ресурсам, при следующем запуске апплета не будет задаваться запрос о доверии поставщику, права доступа будут автоматически ко всем ресурсам.


При запуске подписанного апплета под браузером appletviewer апплет автоматически получает права доступа к ресурсам, указанные в пользовательском файле политики безопасности, размещённом в текущем каталоге.


Список использованных источников

1.  Корниенко А.А., Кожомбердиева Г.И., Ерофеев П.В. Электронная цифровая подпись и безопасность Java-апплетов. Метод. указания. – СПб.: ПГУПС, 2005. – 28 с.

2.  Корниенко А.А., Кожомбердиева Г.И., Киселев И.С. Методы криптографической защиты информации и их реализация на платформе Java: Метод. указания. – СПб.: ПГУПС, 2006. – 35 с

3.  Ноутон П., Шилдт Г. Java 2: Пер. с англ. – СПб.: БХВ-Петербург, 2006

4.  Java 2 SDK, Standard Edition Documentation, version 1.2.2.

5.  Яворски Дж., Перроун П. Система безопасности Java, 2001.


Страницы: 1, 2, 3


Новости


Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

                   

Новости

Обратная связь

Поиск
Обратная связь
Реклама и размещение статей на сайте
© 2010.