ESYAE-imza Kütüphaneleri

User Tools

Site Tools


en:esya:sertifika:dogrulama-politikası

Bu, dökümanın eski bir sürümüdür!


Certificate Validation Policy

The certificate validation policy file coming the downloaded api, provides standard controls for a certificate to be considered as valid. It uses only the certificates store as the source of trusted certificates. The certificate store contains legally valid root certificates. Therefore, in order to work with test certificates you have to define the root of the test certificates as trusted in the certificate validation policy file. You can see section Configuring The Policy at Run-time.

You can also specify the method of revocation control, via either OCSP or CRL. Validation of a certificate requires validation of the all certificates on the certificate chain. Not all of the certificates on the chain is available for OCSP query. So it is not possible to validate a certificate using only OCSP queries. By configuring the validation policy properly, validation operation first tries OCSP and if it is not available then tries CRL control for the certificate revocation check. In this case, the method that must be performed first must be placed before the other in the policy file.

Configuring The Policy at Run-time

Politika dosyası, dosyadan okunduktan sonra çalışma zamanında düzenlenebilir. Aşağıdaki kod parçası klasörden güvenilir sertifikaları gösteren TrustedCertificateFinderFromFileSystem sınıfını çalışma zamanında eklemektedir.

ValidationPolicy POLICY = PolicyReader.readValidationPolicy(new FileInputStream(POLICY_FILE));

//For UEKAE Test Environment, we add our test roots.
HashMap<String, Object> parameters = new HashMap<String, Object>();
parameters.put("dizin", "T:\\MA3\\api-cmssignature\\testdata\\support\\UGRootCerts\\");
POLICY.bulmaPolitikasiAl().addTrustedCertificateFinder("tr.gov.tubitak.uekae.esya.api.certificate.validation.find.certificate.trusted.TrustedCertificateFinderFromFileSystem", parameters);

ValidationPolicy POLICY = PolicyReader.readValidationPolicy(POLICY_FILE);

//For UEKAE Test Environment, we add our test roots.
Dictionary<String, Object> parameters = new Dictionary<String, Object>();
parameters.Add("dizin", "T:\\MA3\\api-cmssignature\\testdata\\support\\UGRootCerts\\");
POLICY.bulmaPolitikasiAl().addTrustedCertificateFinder("tr.gov.tubitak.uekae.esya.api.certificate.validation.find.certificate.trusted.TrustedCertificateFinderFromFileSystem", parameters);

Policy File Elements

Politika dosyasında tanımlanan sınıflar aşağıdaki tablolarda listelenmiştir.

Bu tablolardaki gösterimde;

Parametrenin alabileceği değerlerin listelendiği yerde * ile belirtilen değer parametrenin varsayılan değeridir

[O] değeri ile belirtilen parametre opsiyonel parametre anlamına gelir.

Başlığın yanındaki XML tagları, o başlık altında yer alan sınıfların, politika dosyasında hangi XML tag değerinin altında listelenmesi gerektiğini (yani politika dosyasındaki yerini) belirtir.

Tablo 1 ESYA API Kontrolcü ( Checker) Listesi

TRUSTED CERTIFICATE CHECKERS <policy><validate><certificate><trustedcertificate>
CertificateDateChecker Sertifika üzerinde yer alan geçerlilik zaman aralığının, doğrulama zamanını kapsaması kuralını doğrular.
SelfSignatureChecker Sertifika üzerindeki imzayı, sertifikanın açık anahtarı ile kriptografik olarak doğrular.
CERTIFICATE SELF CHECKERS <policy><validate><certificate><self>
CertificateDateChecker Sertifika üzerinde yer alan geçerlilik zaman aralığının, doğrulama zamanını kapsaması kuralını doğrular.
CertificateExtensionChecker Sertifika üzerinde yer alan eklenti bilgilerinin RFC 5280 uyumluluğunu kontrol eder.
PositiveSerialNumberChecker Sertifika seri numarasının pozitif bir tamsayı olması kuralını doğrular.
SignatureAlgConsistencyChecker Sertifika üzerinde yer alan İmza Algoritması bilgilerinin uyuşması kuralını doğrular.
VersionChecker Sertifika versiyon bilgisinin RFC 5280 uyumluluğunu kontrol eder.
QualifiedCertificateChecker Sertifikanın nitelik kontrolü yapılır.
Parameters statementoids Verilen OID'lere göre sertifikanın nitelik kontrolleri yapılır. Bazı nitelikli sertifika kontrollerinde iki tane OID kontrol edilmek istenebilir. Bu gibi durumlarda AND ile OID'ler birleştirilebilir. Değişik ülkeler değişik OID'ler kullanabilmektedir. Bu tür durumlar için de OID'ler OR ile ayrılabilir.
Örn: ”(0.4.0.1862.1.1 AND 2.16.792.1.61.0.1.5070.1.1) OR (4.3.2.1 AND 1.2.3.4)”
CERTIFICATE CHAIN CHECKERS <policy><validate><certificate><issuer>
BasicConstraintCAChecker Yayıncı Sertifikası üzerindeki Temel Kısıtlamalar (BasicConstraints) eklentisinin RFC 5280 uyumluluğunu kontol eder.
CertificateKeyUsageChecker Yayıncı Sertifikası üzerindeki Anahtar Kullanımı (KeyUsage) eklentisinin RFC 5280 uyumluluğunu kontol eder.
CertificateNameChecker Sertifika üzerindeki yayıncı özne adı (issuer) alanı ile yayıncı sertifikası üzerindeki özne adı (subject ) alanlarının eşleşmesi kuralını doğrular.
CertificateSignatureChecker Sertifika üzerindeki imzayı yayıncı sertifikasının açık anahtarı ile kriptografik olarak doğrular.
KeyIdentifierChecker Sertifika üzerindeki Yetkili Anahtar Tanımlayıcısı (AuthorityKeyIdentifier) eklentisi ile yayıncı sertifikası üzerinde yer alan Özne Anahtar Tanımlayıcısı (SubjectKeyIdentifier) eklentilerin uyumluluğunu kontrol eder.
NameConstraintsChecker Sertifikanın özne adının yayıncı sertifikasında (varsa) yer alan İsim Kısıtlamaları (NameConstraints) arasındaki ilişkinin RFC 5280 uyumluluğunu kontrol eder.
PathLenConstraintChecker Yayıncı Sertifikası üzerindeki Yol Uzunluğu Kısıtlamaları (PathLengthConstraints) eklentisinin RFC 5280 uyumluluğunu kontrol eder.
PolicyConstraintsChecker Yayıncı Sertifikası üzerindeki Politika Kısıtlamaları (PolicyConstraints) eklentisinin RFC 5280 uyumluluğunu kontrol eder.
CERTIFICATE REVOCATION CHECKERS <policy><validate><certificate><revocation>
RevocationFromCRLChecker SİL'e bakarak sertifikanın iptal durumunu kontrol eder.
Parameters cevrimdisicalis [true,false*]
Bu parametre doğrulamanın çevrimdışı olarak yürütüleceğini belirtir. True olarak tanımlanmışsa iptal kontrolcü hiçbir SİL bulamasa bile iptal kontrolünü başarılı olarak sonlandırır. Çevrimdışı ortamlarda SİL'e ulaşılamadığında bile sertifika doğrulamanın gerçekleşebilmesi için tanımlanmıştır. Dikkatli kullanılmalıdır!
checkAllCRLs [true,false*]
Doğrulama sırasında normal olarak bir adet geçerli SİL kontrolü iptal kontrolünün tamamlanması için yeterlidir. Ancak bazı durumlarda kullanıcılar politika tanımlı bütün SİL bulucuların getirdikleri SİL'lere bakılmasını isteyebilirler. Bu durumda bu değer true yapılmalıdır.
devam [true,false*]
Doğrulama sırasında normal olarak bir adet iptal kontrolcünün başarılı sonuçlanması iptal kontrolünün tamamlanması için yeterlidir. Ancak kullanıcılar daha güvenli olması amacıyla bir iptal kontrolü başarılı sonuçlansa bile diğer iptal kontrolcülerin kontrolüne devam etmesini isteyebilirler. Bu durumda bu parametre true yapılmalıdır.
RevocationFromOCSPChecker
Parameters devam [true,false*]
Doğrulama sırasında normal olarak bir adet iptal kontrolcünün başarılı sonuçlanması iptal kontrolünün tamamlanması için yeterlidir. Ancak kullanıcılar daha güvenli olması amacıyla bir iptal kontrolü başarılı sonuçlansa bile diğer iptal kontrolcülerin kontrolüne devam etmesini isteyebilirler. Bu durumda bu parametre true yapılmalıdır.
CRL SELF CHECKERS <policy><validate><crl><crlself>
CRLDateChecker SİL üzerinde yer alan geçerlilik zaman aralığının, doğrulama zamanını kapsaması kuralını doğrular.
CRLExtensionChecker SİL üzerinde yer alan eklenti bilgilerinin RFC 5280 uyumluluğunu kontrol eder.
CRL SELF CHECKERS <policy><validate><crl><crlissuer>
CRLKeyUsageChecker Yayıncı Sertifikası üzerindeki Anahtar Kullanımı (KeyUsage) eklentisinin RFC 5280 uyumluluğunu kontol eder.
CRLSignatureChecker SİL üzerindeki imzayı yayıncı sertifikasının açık anahtarı ile kriptografik olarak doğrular.
DELTA CRL CHECKERS <policy><validate><deltacrl>
FreshestCRLChecker Delta SİL üzerindeki En Güncel SİL (FreshestCRL) eklentisinin RFC 5280 uyumluluğunu kontol eder.
DeltaCRLIndicatorChecker Delta SİL üzerindeki Delta SİL Belirteci (DeltaCRLIndicator) eklentisinin RFC 5280 uyumluluğunu kontol eder.
OCSP RESPONSE CHECKERS <policy><validate><ocsp>
SigningCertificateChecker OCSP cevabını imzalayan yayıncı sertifikasını doğrular.
OCSPSignatureChecker OCSP cevabı üzerindeki imzayı yayıncı sertifikasının açık anahtarı ile kriptografik olarak doğrular.
ResponseStatusChecker OCSP cevabı üzerindeki cevap durumu alanının geçerliliğini doğrular.
OCSPResponseDateChecker OCSP üzerinde yer alan geçerlilik zaman aralığının doğrulama zamanını kapsaması kuralını doğrular.

Tablo 2 ESYA API Matcher List

CERTIFICATE MATCHERS <policy><match><certificate>
IssuerSubjectMatcher Sertifika üzerindeki yayıncı özne adı (issuer) alanı ile yayıncı sertifikası üzerindeki özne adı (subject ) alanlarını eşleştirir.
CRL MATCHERS <policy><match><certificate>
CRLDistributionPointMatcher Sertifika üzerindeki SİL Dağıtım Noktaları (CRLDistributionPoints) eklentisinin üzerindeki bilgi ile SİL üzerindeki (varsa) Yayıncı Dağıtım Noktası (IssuingDistributionPoint) eklentisine bakarak SİL ile sertifikayı eşleştirir.
CRLDistributionPointOnlyContainsMatcher SİL üzerindeki Yayıncı Dağıtım Noktası (Issuing Distribution Point) eklentisindeki onlyContains özellikleri ile Sertifika üzerindeki Temel Kısıtlamalar (BasicConstraint) eklentisine bakarak SİL ile sertifikayı eşleştirir
CRLIssuerMatcher SİL üzerindeki yayıncı adı (issuer) alanı ile Sertifika üzerindeki yayıncı adı (issuer) alanına bakarak SİL ile sertifikayı eşleştirir.
CRLKeyIDMatcher SİL üzerindeki Yetkili Anahtar Tanımlayıcısı (AuthorityKeyIdentifier) eklentisi ile Sertifika üzerindeki Yetkili Anahtar Tanımlayıcısı (AuthorityKeyIdentifier) eklentisine bakarak SİL ile sertifikayı eşleştirir.
Delta CRL MATCHERS<policy><match><certificate>
BaseCRLNumberMatcher Delta SİL üzerindeki Temel SİL Numarası (BaseCRLNumber) eklentisi ile temel SİL üzerindeki SİL Numarası (CRLNumber) eklentisine bakarak temel SİL ile delta SİL'i eşleştirir.
CRLNumberMatcher Delta SİL üzerindeki SİL Numarası (CRLNumber) eklentisi üzerindeki SİL numarasının temel SİL üzerindeki SİL Numarası (CRLNumber) eklentisi üzerindeki SİL Numarasından büyük olduğunu doğrulayarak temel SİL ile delta SİL'i eşleştirir.
DeltaCRLIssuerMatcher Delta SİL üzerindeki yayıncı adı (issuer) alanı ile temel SİL üzerindeki yayıncı adı (issuer) alanına bakarak temel SİL ile delta SİL'i eşleştirir.
ScopeMatcher Delta SİL üzerindeki Yayıncı Dağıtım Noktası (IssuingDistributionPoint) eklentisi ile temel SİL üzerindeki Yayıncı Dağıtım Noktası (IssuingDistributionPoint) eklentisine bakarak temel SİL ile delta SİL'i eşleştirir.
OCSP CEVABI EŞLEŞTİRİCİLER <policy><match><ocsp>
CertIDOCSPResponseMatcher OCSP cevabı üzerindeki Sertifika Tanımlayıcısı (CertID) alanına bakarak sertifika ile OCSP cevabını eşleştirir.
ÇAPRAZ SERTİFİKA EŞLEŞTİRİCİLER <policy><match><crosscertificate>
PublicKeyMatcher Yayıncı sertifikasındaki açık anahtar ile Çapraz sertifika üzerindeki açık anahtarı eşleştirir.
SKIMatcher Yayıncı sertifikasındaki Özne Anahtar Tanımlayıcısı(SubjectKeyIdentifier) ile Çapraz sertifika üzerindeki Özne Anahtar Tanımlayıcısını(SubjectKeyIdentifier) eşleştirir.
SubjectMatcher Yayıncı sertifikasındaki özne adı (subject) alanı ile Çapraz sertifika üzerindeki özne adı (subject) alanını eşleştirir.

Tablo 3 Esya API Bulucu (Finder) listesi

TRUSTED CERTFICATE FINDERS<policy> <find><trustedcertificate>
TrustedCertificateFinderFromECertStore Yerel sertifika deposundaki yayıncı sertifikalarını getirir ve bu sertifikaları güvenilir kabul eder.
Parameters securitylevel [PERSONAL*, ORGANIZATIONAL, LEGAL]
Depodan getirilecek sertifikaların güven seviyesini belirler. Kişisel sertifikalar için PERSONAL, kurumsal sertifikalar için ORGANIZATIONAL, kanuni sertifikalar için LEGAL olarak belirtilmelidir.
storepath [O] Yerel sertifika deposunun dosya sistemindeki yerini belirler.
TrustedCertificateFinderFromFileSystem Dosya sisteminde verilen dizin adresindeki yayıncı sertifikalarını getirir. Bu sertifikaları güvenilir kabul eder.
Parameters dizin Dizin adresi
TrustedCertificateFinderFromXml Verilen URL adresindeki yayıncı sertifikalarını getirir. Bu sertifikaları güvenilir kabul eder.
Parameters storepath [O] URL adresi
CERTIFICATE FINDERS <policy><find><certificate>
CertificateFinderFromECertStore Yerel sertifika deposundaki sertifikaları getirir.
Parameters storepath [0] Yerel sertifika deposunun dosya sistemindeki yerini belirler.
CertificateFinderFromFile Dosya sisteminde verilen dosya adresindeki sertifikaları getirir.
Parameters dosyayolu Dosya adresi
CertificateFinderFromXml Verilen URL adresindeki sertifikalarını getirir.
Parameters storepath [O] URL adresi
CertificateFinderFromHTTP Sertifika üzerinde yer alan Yetkili Erişim Bilgileri (AuthorityInfoAccess) eklentisindeki HTTP adresinden yayıncı sertifikasını getirir.
CertificateFinderFromLDAP Sertifika üzerinde yer alan Yetkili Erişim Bilgileri (AuthorityInfoAccess) eklentisindeki LDAP adresinden yayıncı sertifikasını getirir.
CRL FINDERS <policy><validate><certificate><revocation><find>
CRLFinderFromECertStore Yerel sertifika deposundaki SİL'leri getirir.
Parameters storepath [0] Yerel sertifika deposunun dosya sistemindeki yerini belirler.
getactivecrl [true,false*]
Sertifika doğrulamanın kesin bir şekilde yapılması için sertifika doğrulamanın yapıldığı tarihten sonra yayınlanan SİL kullanılmaktadır. Yalnız yeni yayınlanacak SİL beklenmek istenmeyebilir ve yayında olan SİL kullanılmak istenebilir. Bu durumda getactivecrl parametresi için true verilmelidir.
CRLFinderFromFile Dosya sisteminde verilen dosya adresindeki SİL'leri getirir.
Parameters dosyayolu Dosya adresi
CRLFinderFromHTTP Sertifika üzerinde yeralan SİL Dağıtım Noktaları(CRLDistributionPoints) eklentisindeki HTTP adresinden SİL'i getirir.
CRLFinderFromLDAP Sertifika üzerinde yeralan SİL Dağıtım Noktaları(CRLDistributionPoints) eklentisindeki LDAP adresinden yayıncı sertifikasını getirir.
OCSP RESPONSE FINDERS <policy><validate><certificate><revocation><find>
OCSPResponseFinderFromECertStore Yerel sertifika deposundaki kayıtlı OCSP Cevaplarını getirir.
Parameters storepath [0] Yerel sertifika deposunun dosya sistemindeki yerini belirler.
OCSPResponseFinderFromAIA Sertifika üzerinde yeralan Yetkili Erişim Bilgileri (AuthorityInfoAccess) eklentisindeki OCSP adresine OCSP sorgusu yaparak OCSP cevabı getirir.
DELTA CRL FINDERS <find><deltacrl>
DeltaCRLFinderFromECertStore Yerel sertifika deposundaki Delta SİL'leri getirir.
Parameters storepath [0] Yerel sertifika deposunun dosya sistemindeki yerini belirler.
DeltaCRLFinderFromFile Dosya sisteminde verilen dosya adresindeki Delta SİL'leri getirir.
Parameters dosyayolu Dosya adresi
CROSS CERTIFICATE FINDERS <find><crosscertificate>
CrossCertificateFinderFromECertStore Yerel sertifika deposundaki çapraz sertifikaları getirir.
Parameters storepath [0] Yerel sertifika deposunun dosya sistemindeki yerini belirler.
CrossCertificateFinderFromFile Dosya sisteminde verilen dosya adresindeki çapraz sertifikaları getirir.
Parameters dosyayolu File address

Tablo 4 Esya API Kaydedici (Saver) Listesi

SAVERS<policy><save>
CertStoreCertificateSaver Sertifika doğrulama sırasında bulunan ve doğrulanan sertifikaları yerel sertifika deposuna kaydeder.
Parameters storepath [O] Yerel sertifika deposunun dosya sistemindeki yerini belirler.
CertStoreCRLSaver Sertifika doğrulama sırasında uzaktan(LDAP, http vb.) bulunan SİL'leri yerel sertifika deposuna kaydeder.
Parameters storepath [O] Yerel sertifika deposunun dosya sistemindeki yerini belirler.
CertStoreOCSPResponseSaver Sertifika doğrulama sırasında uzaktan(LDAP, http vb.) bulunan OCSP'leri yerel sertifika deposuna kaydeder.
Parametersstorepath [O] Yerel sertifika deposunun dosya sistemindeki yerini belirler.
en/esya/sertifika/dogrulama-politikası.1377514449.txt.gz · Son değiştirilme: 2013/08/26 10:54 Değiştiren: Dindar Öz