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.

хранилища, алгоритми за проверка на цифрови подписи (напр. PKIX) и<br />

достъп до смарт карти (в Java 1.5 и по-високите версии).<br />

Най-важните класове и интерфейси за работа с цифрови подписи и<br />

сертификати се намират в пакетите java.security и java.security.cert.<br />

Ще дадем кратко описание на най-важните от тях, които са свързани с<br />

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

уеб среда.<br />

java.security.PublicKey<br />

Интерфейсът java.security.PublicKey представлява публичен ключ. Той<br />

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

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

java.security.PrivateKey<br />

Интерфейсът java.security.PrivateKey представлява личен ключ. Той<br />

може да бъде извлечен от защитено хранилище (KeyStore) и да се използва<br />

за създаване на цифров подпис.<br />

PrivateKey инстанциите реално могат и да не съдържат ключа, а само да<br />

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

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

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

java.security.cert.Certificate<br />

Абстрактният клас java.security.cert.Certificate е базов за всички<br />

класове, които представляват цифрови сертификати. Съдържа в себе си<br />

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

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

тип сертификати (например X.509, PGP и т. н.) се използва съответен<br />

наследник на този клас.<br />

java.security.cert.X509Certificate<br />

Класът java.security.cert.X509Certificate представлява X.509 v.3 сертификат.<br />

Той предлага методи за достъп до отделните му атрибути –<br />

собственик (Subject), издател (Issuer), публичен ключ на собственика, срок<br />

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

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

един X509Certificate са достъпни само за четене.<br />

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

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

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

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

51

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

Saved successfully!

Ooh no, something went wrong!