24.12.2014 Views

Download - Svetlin Nakov

Download - Svetlin Nakov

Download - Svetlin Nakov

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

- DocumentSigningDemoWebApp – Java-базирано уеб приложение за<br />

посрещане на подписан документ и верификация на неговия цифров<br />

подписи и сертификат. Приложението включва подсистема за верификация<br />

на цифрови подписи, подсистема за директна верификация на<br />

сертификат и подсистема за верификация на сертификационна верига.<br />

От страна на клиента работи стандартен уеб браузър, в който се изпълняват<br />

Java аплети за подписване на документи. Подписаните документи се изпращат<br />

към уеб сървъра чрез стандартна уеб форма по протокол HTTP.<br />

Подписването чрез сертификат от PKCS#12 хранилище и подписването със<br />

смарт карта се реализират поотделно от два различни Java аплета.<br />

От страна на сървъра работи Java-базирано уеб приложение, което посреща<br />

подписаните документи и проверява цифровия им подпис, както и<br />

сертификата, с който са подписани. Ако сертификатът пристига заедно със<br />

сертификационната си верига, тя също се верифицира. Реализирани са два<br />

метода за верификация – директна проверка на сертификат и проверка на<br />

сертификационна верига.<br />

При директната проверка на сертификат се проверява дали сертификатът е<br />

валиден към датата на проверката и дали е подписан (издаден) от някой от<br />

сертификатите, на които сървърът има директно доверие.<br />

При проверката на сертификационната верига даден сертификат се счита за<br />

валиден, ако е валидна веригата му и ако тя завършва с Root-сертификат на<br />

който сървърът има доверие.<br />

Нека сега разгледаме в детайли отделните компоненти на системата.<br />

3.2. Java аплет за подписване на документи<br />

Сега ще разгледаме конкретните проблеми, които възникват при реализацията<br />

на Java аплет, който служи за подписване на документи в клиентския<br />

уеб браузър. Разликата между аплета, който подписва със сертификат,<br />

извлечен от PKCS#12 файл и аплета, който подписва със смарт карта, е<br />

минимална, така че ще разгледаме и двата едновременно.<br />

3.2.1. Подписани Java аплети<br />

Нека разгледаме в детайли технологията на подписаните аплети, защото ще<br />

трябва да я използваме за да повишим правата, с които се изпълнява<br />

нашият аплет.<br />

Необходим е достъп до файловата система<br />

Аплетът, който разработваме, трябва да може да подписва файлове от<br />

локалната машина и следователно трябва да може да ги чете. По принцип<br />

Java аплетите се изпълняват с намалени права и нямат достъп до файловата<br />

система на машината, на която работят. За да се преодолее това<br />

ограничение, е необходимо аплетът да работи с пълни права, а за тази цел<br />

той трябва да бъде подписан.<br />

64

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!