Розробка java-аплету і підписування архівного jar-файлу електронним цифровим підписом

Державна освітня установа вищої професійної освіти

Петербурзький державний університет шляхів сполучення

Кафедра «Інформаційні та обчислювальні системи»

до курсового проекту

з дисципліни «Методи програмування»

на тему: «Розробка Java-аплета і підписування архівного JAR-файлу електронним цифровим підписом»

студент групи КІБ-708

к.т.н. доц. Кожомбердіева Г.І.

по курсовому проекту

з дисципліни «Методи програмування»

на тему: «Розробка Java-аплета і підписування архівного JAR-файлу електронним цифровим підписом»

· В якості вихідних даних до курсового проекту використовується аплет, який є результатом виконання лабораторної роботи №4 «Розробка аплету з ефектом анімації на основі багатопоточності Java».

Варіант завдання №20

· Необхідно розширити функціональність аплету з ефектом анімації, реалізувавши звернення до локальної файлової системи.

· Створити архівний JAR-файл, який містить аплет.

· Підписати JAR-файл електронним цифровим підписом (ЕЦП) і задати політику безпеки для підписаного аплету, включивши в файл політики відповідний запис, що дозволяє доступ до локальної файлової системи і виконання операцій читання-запису.

При виконанні курсового проекту використовувати утиліти jar. keytool і jarsigner. а також комплект JDK 1.4.x з модулем plug-in для браузера MS IE 5, (6), (7).

В даному курсовому проекті був розроблений Java-аплет, який використовує механізм многопоточности Java: використання двох потоків команд, що реалізують рух геометричних фігур в області малювання аплету. Також аплет має можливість звертатися до локальної файлової системи, при наданні відповідних прав доступу. Можливість звернення до локальної файлової системи реалізована з використанням спеціалізованих класів Java API.

Архівний JAR-файл, який містить аплет, підписується електронним цифровим підписом. Для аплету задається політика безпеки, шляхом створення призначеного для користувача файлу політики безпеки, який дозволяє аплету отримати доступ до локальної файлової системи і забезпечує можливість роботи аплету за межами моделі безпеки Sandbox - «Пісочниця».

Підписаний електронним цифровим підписом аплет виконується в середовищі MS IE з модулем plug-in з JDK 1.4.x.

Після запуску аплета користувачеві надається можливість надати довіру до підписаного аплету і дозволити виконання операцій введення-виведення в файл.

1. Аплет з ефектом анімації на основі багатопоточності Javaі зверненням до локальної файлової системи

2. Створення підписаного аплету

2.1 Створення архівного JAR-файлу

2.2 Створення пари ключів та сертифікату в сховище ключів

2.3 Підписування JAR-файлу цифровим підписом

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

3. Виконання підписаного аплету

Список використаних джерел

Платформа Java 2 у своєму розпорядженні потужну вбудованою системою безпеки, що включає API-інтерфейси і механізми, які використовуються для забезпечення безпеки аплетів і додатків Java. Серед особливостей мови програмування Java, які забезпечують надійність і безпеку можна виділити: архітектурну незалежність, интерпретируемость, переносимість, відсутність покажчиків, строгу типізацію, ефективний механізм обробки виключень. Важливими невід'ємними компонентами системи безпеки Java 2 є Java Cryptography Architecture (JCA) - архітектура шифрування Java, а також Java Cryptography Extension (JCE) - криптографічний розширення Java.

Метою даного курсового проекту є - підписання архівного JAR-файлу, що містить аплет, електронним цифровим підписом, а також завдання політики безпеки для підписаного аплету; ознайомлення студентів з криптографічними методомі захисту інформації та можливостями, які надає Java розробниками програмного забезпечення. Для цього необхідно: створити архівний JAR-файл, пари ключів та сертифікату в сховище ключів, далі підписати JAR-файл цифровим підписом і задати політику безпеки для підписаного аплету.

Результатом даної курсової роботи є підписаний електронним цифровим підписом аплет, який має можливість звертатися до локальної файлової системи.

1.Апплет з ефектом анімації на основі многопоточностіJavaі

зверненням до локальної файлової системи

аплет архівний електронний цифровий підпис

// Клас аплету, який реалізує інтерфейси блоків прослуховування подій

public class Lab4 extends Applet implements ActionListener, ItemListener, Runnable

2. Створення підписаного аплету

2.1 Створення архівногоJAR-файлу

Для підписання аплету електронним цифровим підписом його упаковують в архівний JAR-файл. У цій роботі для цієї мети використовується утиліта jar. або можна використовувати інтегроване середовище розробки додатків.

Для створення архіву застосувати команда такого вигляду:

jar cfv Lab4.jar Lab4 * .class,

де: jar- назву утиліти, яка упаковує файли і створює архів

cfv- це набір з трьох параметрів:

· С - вказує на те, що створюється новий архів

· F- перший елемент в списку файлів - ім'я архіву, який повинен бути створений

· V- висновок на консоль повідомлень про всі дії утиліти jar

Lab4.jar- назву нового архіву

Lab4 * .class- параметр вказує, що всі файли класів розташовані в поточному каталозі, розміщуються в архівеLab4.jar

Розробка java-аплету і підписування архівного jar-файлу електронним цифровим підписом

При цьому утиліта jar створює каталогMETA-INF з файлом опису архіваMANIFEST.MF

Розробка java-аплету і підписування архівного jar-файлу електронним цифровим підписом

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

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

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

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

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

-genkey- параметр вказує, що утиліта keytool повинна згенерувати ключі

-alias «Taraninkey» - псевдонім, під яким в сховище ключів розміщується сертифікат

-keystoreTaraninstore- назву сховища ключів

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

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

Розробка java-аплету і підписування архівного jar-файлу електронним цифровим підписом

При створенні ключів і підписання сертифіката були використані алгоритми:

2.3 ПодпісиваніеJAR-файлу цифровим підписом

Архівний JAR-файл підписується за допомогою утиліти jarsigner. використовуючи наступну команду:

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

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

Також в каталог META-INF архіву додається файл подпісіTARNINK.SF.

Вміст файлу подпісіTARNINK.SF.

Розробка java-аплету і підписування архівного jar-файлу електронним цифровим підписом

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

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

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

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

Вміст даного файлу - набір дозволяють записів, в яких вказуються права доступу, що надаються джерела коду аплету. Даний запис права доступу надає право читання / запису всіх файлів файлової системи.

3. Виконання підписаного аплету

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

Розробка java-аплету і підписування архівного jar-файлу електронним цифровим підписом

При виборі користувачем ответаGrantthissession аплет отримує повні права доступу до всіх ресурсам.Для звернення до локальної файлової системи користувач може осущесвіть читання файлу-журналу, що зберігається на локальному диску, натиснувши кнопку «ViewCertificate».

При виборі пользователемDeny аплет отримує дозвіл працювати тільки з тими ресурсами, права доступу до яких прописані в файлах політики безпеки. При вибореGrantalways аплет отримує повні права доступу до всіх ресурсів, при наступному запуску аплетами буде задаватися запит про довіру постачальнику, права доступу будуть автоматично до всіх ресурсів.

Розробка java-аплету і підписування архівного jar-файлу електронним цифровим підписом

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

Список використаних джерел

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