Download - Svetlin Nakov
Download - Svetlin Nakov
Download - Svetlin Nakov
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Сертификати за тестови цели<br />
За да използва аплета, се очаква потребителят да притежава цифров<br />
сертификат и съответен на него личен ключ, записани в PFX файл (PKCS#12<br />
хранилище), като паролата за достъп до този файл трябва да съвпада с<br />
паролата за достъп до личния ключ към сертификата. Такъв PFX файл може<br />
да се придобие при закупуването на сертификат от някой сертификационен<br />
орган или да се генерира с инструмента keytool.<br />
За тестови цели могат да бъдат използвани демонстрационни цифрови<br />
сертификати, които могат да бъдат получени от уеб сайтовете на някои<br />
сертификационни органи като Thawte, VeriSign и GlobalSign. Тези сертификационни<br />
органи издават сертификатите си през Интернет и в резултат<br />
потребителите ги получават инсталирани директно в техните уеб браузъри.<br />
За да бъдат използвани такива сертификати за подписване на документи с<br />
DigitalSignerApplet, те първо трябва да бъдат експортирани заедно с<br />
личния им ключ в .PFX или .P12 файл.<br />
4.3. Java аплет за подписване със смарт карта<br />
В предната част видяхме как можем да реализираме аплет, който подписва<br />
документи със сертификат, намиращ се в PKCS#12 хранилище (PFX файл).<br />
Нека сега разгледаме имплементацията на аплета SmartCardSignerApplet<br />
за подписване на документи със смарт карта.<br />
Системни изисквания за Java аплета за подписване със смарт карта<br />
Java аплетът за подписване със смарт карта изисква инсталиран Java Plug-In<br />
версия 1.5 или по-нова на машината на клиента. Това е необходимо, защото<br />
аплетът използва Sun PKCS#11 Provider, който се появява стандартно в Java<br />
от версия 1.5 нататък.<br />
Имплементация на аплета за подписване със смарт карта<br />
Подписването със смарт карта не се различава много от подписването с PFX<br />
файл. Всъщност, разликата е само в начина на инстанциране на<br />
хранилището за ключове и сертификати. При работа с PKCS#12 хранилището<br />
се зарежда от PFX файл, а при работа със смарт карта, хранилището се<br />
зарежда от картата чрез интерфейса PKCS#11. Другата разлика е, че вместо<br />
парола за достъп се изисква PIN кода за картата. Всичко останало е еднакво<br />
– от зареждането на сертификата, до подписването на файла.<br />
Да разгледаме сорс кода на аплета. Класът SmartCardSignerApplet реализира<br />
основната му функционалност:<br />
import java.applet.Applet;<br />
import java.awt.*;<br />
import java.awt.event.ActionEvent;<br />
import java.awt.event.ActionListener;<br />
import javax.swing.*;<br />
SmartCardSignerApplet.java<br />
94