Java за цифрово подписване на документи в уеб



страница2/14
Дата14.08.2018
Размер1.94 Mb.
1   2   3   4   5   6   7   8   9   ...   14

Увод


Настоящата разработка има за цел да запознае читателя с проблемите, свързани с цифровото подписване на документи в уеб среда и да предложи конкретни подходи за тяхното решаване. След кратък анализ на съществу­ващите решения се прави преглед на технологиите, проектира се и се имплементира Java-базирана система за цифрово подписване на документи в уеб и верификация на цифрови подписи и сертификати.

Проблемът с цифровите подписи в уеб среда


Днешните уеб браузъри нямат стандартна функционалност за подписване на прикачени файлове при изпращането им от клиента към уеб сървъра. Това води до проблеми при реализацията на някои специфични прило­жения, в които потребителят трябва да удостовери по надежден начин, че той е изпратил даден документ. Примери за такива приложения са взаимодействи­ето с електрон­ното правителство, електронно банкиране, някои финансови системи и др.

Цели


Целта, която си поставяме, е да се разработи технология за цифрово подпис­ване на документи в уеб среда, основана на инфраструк­турата на публичния ключ (PKI) и сървърен софтуер, който посреща подпи­саните документи и проверява валидността на сигнатурата им и използвания цифров серти­фикат.

Разработената технология трябва да е независима от операционната система и от уеб браузъра на потребителя.


Потенциални потребители


С въвеждането на електрон­ното правителство и увеличаването на услу­гите, извършвани по електронен път, нуждата от средства за цифрово подписване на документи нараства. Нараства и необходимостта този процес да се извършва в уеб среда за да максимално лесно достъпен за обикновения гражданин.

Като потенциални потребители на разработената технология можем да идентифицираме уеб разработчиците, които в своите приложения трябва да прилагат технологията на цифровия подпис. Предложеното решение е базирано на Java технологиите, но може да бъде използвано и от други уеб разработчици, тъй като използва отворени стандарти, необвързани с Java платформата.


Цифрови подписи и сертификати


В първа глава е направен обзор на терминологията, проблемите и техноло­гиите, свързани с използването на цифров подпис в уеб среда.

Изясняват са понятията, свързани с цифровия подпис, моделите на дове­рие между непознати страни и инфраструктурата на публичния ключ: публичен ключ, личен ключ, цифров сертификат, сертификационен орган, сертифика­ционна верига, защитено хранилище за ключове и сертификати и др. Описват се процедурите и алгоритмите за цифрово подписване на документи и верификация на цифрови подписи. Изяснява се технологията на смарт картите като сигурен и надежден начин за съхранение на ключове и сертификати.

Прави се преглед на съществуващите технологии за подписване на документи в уеб среда. Анализират се техните силни и слаби страни. Разглеждат се начините за реализация на система за подписване на доку­менти в клиентския уеб браузър, работеща върху всички операционни системи и всички масово разпространени уеб браузъри. Обосновава се необходимостта от използване на подписан Java аплет, който подписва файловете преди изпращането им от клиента към сървъра.

Работа с цифрови подписи и сертификати в Java


Във втора глава се разглеждат библиотеките от класове за работа с цифрови подписи и сертификати, които Java 2 платформата предоставя.

Дава се описание на класовете и интерфейсите от Java Cryptography Architecture (JCA) и Java Certification Path API, които имат отношение към работата с цифрови подписи и сертификати. Разглеждат се и средствата за достъп до смарт карти от Java.

Дават се конкретни насоки как разгледаните класове могат да се използват за полагане на цифров подпис, верификация на цифров подпис и верифи­ка­ция на цифрови сертификати и сертификационни вериги.

Проектиране на система за цифрово подписване в уеб среда


В трета глава се анализират и решават конкретните проблеми, свързани с реализаци­ята на Java-базирана система за цифрово подписване на доку­менти в уеб среда. Проектират се отделните компоненти на системата –Java аплет, който подписва документите в клиентския уеб браузър (във вариант за работа с локален сертификат и със смарт карта), уеб приложе­ние, което посреща подписаните документи с подсис­тема за верификация на цифровия подпис и подсистема за верификация на сертификата на потребителя.

Обосновава се необходимостта Java аплетът, който подписва документи, да работи с повишени права. Разглежда се технологията за подписване на Java аплети с цел повишаване на правата, с които се изпълняват. Разглеж­дат се и средствата за комуникация между аплет и уеб браузър.

От страна на сървъра се разглежда проблемът с верификацията на цифро­вия подпис и начините за верификация на цифрови сертификати. Разглеж­дат се двата подхода за верификацията на сертификата на потребителя, които имат приложение при различни сценарии за използване на цифров подпис. Единият подход е директна верификация, при която се проверява дали сертификатът на клиента е директно издаден от даден сертификат, на който сървърът има доверие. Другият подход е класическият – проверка за валидност на цялата сертификационната верига, която започва от клиент­ския сертификат и трябва да завършва със сертификат, на който сървъра има доверие.

Реализация на системата за цифрово подписване в уеб среда


В четвърта глава се преминава през стъпките за конкретната реализация на вече проектираната система за подписване на документи в уеб среда.

Реализацията е наречена NakovDocumentSigner и предоставя напълно функционално рамково приложение (framework) за цифрово подписване на документи в Java-базирани уеб приложения.

Системата демонстрира как със средствата на Java 2 платформата могат да се подписват документи в уеб среда и да се верифицират цифрови подписи, сертификати и сертификационни вериги. Включен е пълният сорс код на отделните компоненти на системата, придружен с разяснения за тяхната работа. Приложени са и скриптове и инструкции за компили­ране, настройка и внедряване на системата.

Тестване, оценка и усъвършенстване


В пета глава е направена критична оценка на реализираната система за подписване на документи в уеб среда. Системата е тествана под различни операционни системи и уеб браузъри и оценена е нейната работоспособ­ност. Анализирани са недостатъците на системата и са описани посоките за нейното бъдещо развитие и възможностите за подобрение.

За автора на настоящата разработка


Светлин Наков е преподавател по съвременни софтуерни технологии в СУ "Св. Климент Охридски", където води курсове по Компютърни алгоритми, Интернет програмиране с Java, Мрежова сигурност, Програмиране за .NET Framework и Конструиране на качествен програмен код.

Той има сериозен професионален опит като софтуерен разработчик и консултант. Неговите интереси обхващат Java технологиите, .NET платфор­мата и информационната сигурност. Работил е по образователни проекти на Microsoft Research в областта на .NET Framework и по изграждането на големи и сложни информационни системи за държавната администрация.

Светлин е завършил Факултета по математика и информатика на СУ "Св. Климент Охридски". Като ученик и студент той е победител в десетки национални състезания по програмиране и е носител на 4 медала от международни олимпиади по информатика.

Светлин има десетки научни и технически публикации, свързани с разра­ботката на софтуер, в български и чуждестранни списания и е автор на книгата "Интернет програмиране с Java". Той е автор и на серия статии, свързани с използването на цифров подпис в уеб среда в престижното електронно издание „developer.com”.

През 2003 г. Светлин Наков е носител на наградата "Джон Атанасов" на фондация Еврика. През 2004 г. получава най-високото българско отличие за ИТ – награда "Джон Атанасов" от президента на България Георги Първанов за приноса му към развитието на информа­ционните технологии и информационното общество.

В момента Светлин е директор и водещ преподавател в Национална академия по разработка на софтуер, където обучава софтуерни специа­листи за практи­ческа работа в ИТ индустрията.

Повече информация за Светлин Наков може да се намери на неговия личен уеб сайт: www.nakov.com.

Благодарности


Авторът благодари на Николай Недялков, президентът на Асоциация за информационна сигур­ност (ISECA) за съдействието му при разрешаване на техни­чески проблеми, свързани с използването на смарт карти, и за осигу­рения хардуер за провеждане на изследванията и тестването на реализи­раните системи.



Национална академия по разработка на софтуер

Лекторите
» Светлин Наков е преподавател по съвременни софтуерни технологии в СУ “Св. Климент Охридски”.

Той е автор на десетки на­учни и технически публи­ка­ции и ня­колко книги, свър­­зани с раз­работката на соф­ту­ер, заради което е търсен лектор и консултант.

През 2004 г. получава наг­ра­дата "Джон Атанасов" от прези­дента на България Ге­орги Пър­ва­нов за приноса му към разви­тието на инфор­ма­ци­он­ните технологии и ин­формаци­он­ното общество.
» Мартин Кулов е изпълнителен директор във фирма “Код Атест”, където раз­работва проекти за пови­ша­ване качеството на соф­ту­ер­ните продукти в Бъл­гария чрез автоматизация на про­цесите и внедряване на сис­теми за управление на ка­чеството.

Мартин е опитен лектор и сертифициран от Майкрософт разработчик по програмите MCSD и MCSD.NET.


» Други инструк­тори с опит като преподаватели и програмисти.

Академията
» Национална академия по раз­ра­ботка на софтуер (НАРС) е център за професионално обу­чение на соф­ту­ерни специалисти.
» НАРС провежда задълбочени кур­сове по разработка на софтуер и съв­ременни софтуерни тех­нологии.
» Предлагани специалности:

.NET Enterprise Developer

Java Enterprise Developer
» Качествено обу­чение с много практически упраж­нения
» Завършвате само за 3 месеца.
» Гарантирана работа след успеш­но завършване!
» Професионална сертификация!
» БЕЗПЛАТНО!

Учите безплатно, плащате след като завършите и започнете работа.

Стипендии от софтуерни фирми.


http://academy.devbg.org

1   2   3   4   5   6   7   8   9   ...   14


База данных защищена авторским правом ©obuch.info 2016
отнасят до администрацията

    Начална страница