24.12.2014 Views

Download - Svetlin Nakov

Download - Svetlin Nakov

Download - Svetlin Nakov

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Описаният подход не работи винаги, защото в някои уеб браузъри JavaScript<br />

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

файловата система. Независимо, че аплетът е подписан и може да чете<br />

локални файлове, ако бъде извикан негов метод от JavaScript, този метод ще<br />

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

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

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

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

на документи в уеб среда и опишем начинът му на работа.<br />

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

Поради описаните преди малко проблеми вместо да извикваме Java функция<br />

за подписване на файл от JavaScript, е много по-добре да направим аплетът<br />

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

потребителя файл и да записва изчислената сигнатура в определено поле на<br />

HTML формата.<br />

По желание може да се накара аплетът чрез JavaScript автоматично да<br />

изпраща HTML формата след изчисляване на сигнатурата за да не може<br />

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

В такъв случай може да е удобно HTML формата да няма бутон за<br />

изпращане и изпращането й да става единствено от аплета и то само след<br />

успешно подписване. Така потребителят няма да има възможност да изпраща<br />

неподписани или грешно подписани файлове.<br />

Сървърът получава документа, подпис и сертификат<br />

При подписване на документ е необходимо на сървъра да се изпраща не<br />

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

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

верига (ако е налична).<br />

Сертификатът е необходим, защото в него се съхранява публичният ключ на<br />

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

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

лице, извършило подписването.<br />

Ако изпращаме на сървъра само документа, сигнатурата и публичния ключ,<br />

ще можем да проверим валидността на сигнатурата, но няма да имаме<br />

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

сървърът няма някакъв списък от публичните ключове на всички свои<br />

клиенти.<br />

В общия случай най-удобно е на сървъра да се изпраща сертификатът на<br />

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

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

69

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

Saved successfully!

Ooh no, something went wrong!