Державна освітня установа вищої професійної освіти
Петербурзький державний університет шляхів сполучення
Кафедра «Інформаційні та обчислювальні системи»
до курсового проекту
з дисципліни «Методи програмування»
на тему: «Розробка 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-файлу електронним цифровим підписом (java-аплету) Розробка java-аплету і підписування архівного jar-файлу електронним цифровим підписом](https://images-on-off.com/images/113/razrabotkajavaappletaipodpisivaniearxivn-60a684dd.jpeg)
При цьому утиліта jar створює каталогMETA-INF з файлом опису архіваMANIFEST.MF
![Розробка java-аплету і підписування архівного jar-файлу електронним цифровим підписом (підписування) Розробка java-аплету і підписування архівного jar-файлу електронним цифровим підписом](https://images-on-off.com/images/113/razrabotkajavaappletaipodpisivaniearxivn-338e2fd6.jpeg)
Також в 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-файлу електронним цифровим підписом (java-аплету) Розробка java-аплету і підписування архівного jar-файлу електронним цифровим підписом](https://images-on-off.com/images/113/razrabotkajavaappletaipodpisivaniearxivn-82e223cf.jpeg)
При створенні ключів і підписання сертифіката були використані алгоритми:
2.3 ПодпісиваніеJAR-файлу цифровим підписом
Архівний JAR-файл підписується за допомогою утиліти jarsigner. використовуючи наступну команду:
Утиліта вимагає ввести пароль сховища ключів і пароль закритого ключа після чого модифікує файл опису архіву MANIFEST.MF в каталозі META-INF архіву.
У нього додаються записи для кожного файлу класу, що входить в архів. Запис файлу класу включає ім'я та дайджест файлу.
Також в каталог META-INF архіву додається файл подпісіTARNINK.SF.
Вміст файлу подпісіTARNINK.SF.
![Розробка java-аплету і підписування архівного jar-файлу електронним цифровим підписом (java-аплету) Розробка java-аплету і підписування архівного jar-файлу електронним цифровим підписом](https://images-on-off.com/images/113/razrabotkajavaappletaipodpisivaniearxivn-2890053d.jpeg)
Файл підписи ідентифікує кожен з файлів в архіві, алгоритм дайджестасодержіт для кожного файлу значення дайджесту, обчисленого із запису файлу у файлі опису 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-файлу електронним цифровим підписом (архівного) Розробка java-аплету і підписування архівного jar-файлу електронним цифровим підписом](https://images-on-off.com/images/113/razrabotkajavaappletaipodpisivaniearxivn-72e63dbb.png)
При виборі користувачем ответаGrantthissession аплет отримує повні права доступу до всіх ресурсам.Для звернення до локальної файлової системи користувач може осущесвіть читання файлу-журналу, що зберігається на локальному диску, натиснувши кнопку «ViewCertificate».
При виборі пользователемDeny аплет отримує дозвіл працювати тільки з тими ресурсами, права доступу до яких прописані в файлах політики безпеки. При вибореGrantalways аплет отримує повні права доступу до всіх ресурсів, при наступному запуску аплетами буде задаватися запит про довіру постачальнику, права доступу будуть автоматично до всіх ресурсів.
![Розробка java-аплету і підписування архівного jar-файлу електронним цифровим підписом (jar-файлу) Розробка java-аплету і підписування архівного jar-файлу електронним цифровим підписом](https://images-on-off.com/images/113/razrabotkajavaappletaipodpisivaniearxivn-aaf51a80.jpeg)
При запуску підписаного аплету під браузером appletviewer аплет автоматично отримує права доступу до ресурсів, зазначені в призначеному для користувача файлі політики безпеки, розміщеному в поточному каталозі.
Список використаних джерел
4. Java 2 SDK, Standard Edition Documentation, version 1.2.2.