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.

public static void verifyCertificate(X509Certificate aCertificate,<br />

X509Certificate[] aTrustedCertificates)<br />

throws GeneralSecurityException {<br />

// First check certificate validity period<br />

aCertificate.checkValidity();<br />

// Check if the certificate is signed by some of the given trusted certificates<br />

for (int i=0; i it is invalid<br />

throw new CertificateValidationException(<br />

"Can not find trusted parent certificate.");<br />

Методът приключва нормално ако сертификатът е валиден или завършва с<br />

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

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

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

намират в Java Certification Path API. Тази спецификация дефинира класовете<br />

java.security.cert.CertPathValidator, който служи за верификация на<br />

дадена сертификационна верига и java.security.cert. CertPathBuilder,<br />

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

множество от доверени Root-сертификати и зададено множество от сертификати,<br />

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

верига [Mullan, 2003].<br />

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

вериги да дадем описание на най-важните класове от Java<br />

Certification Path API.<br />

java.security.cert.CertPath<br />

Класът java.security.cert.CertPath представлява сертификационна верига<br />

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

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

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

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

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

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

Класът CertPath е предназначен да съхранява такива правилно построени<br />

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

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

55

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

Saved successfully!

Ooh no, something went wrong!