SlideShare a Scribd company logo
1 of 54
Download to read offline
XAdES XML E-İmza Formatı
ve ESYA Yazılım Kütüphaneleri
Ahmet Yetgin
ahmet.yetgin@tubitak.gov.tr
Kasım 2012
•
Tasnif
Dışı
Ajanda
Kavramlar
XML İmza (XMLdSig)
XAdES
ESYA API
•
2
•
Tasnif
Dışı
Kavramlar - Kriptografi
Kriptografi,
Haberleşen iki veya daha fazla tarafın bilgi
alışverişini
emniyetli bir şekilde yapmasını sağlayan,
temeli matematiksel zor problemlere dayanan
teknik ve uygulamaların bütünüdür.
•
3
•
Tasnif
Dışı
Kavramlar - Haberleşmede Güvenlik Ögeleri
•
Gizlilik (Confidentiality of Content)
•
Bütünlük (Integrity of Content)
•
Kimlik Doğrulaması (Authentication of Origin)
•
İnkar Edememezlik (Non-repudiation)
•
Süreklilik
•
4
•
Tasnif
Dışı
Krtiptografik Teknikler
•
Simetrik Kriptografi
–
Gizli anahtar (Secret Key)
•
Asimetrik Kriptografi
–
Özel anahtar (Private key) Açık anahtar (Public Key)
•
Özet fonksiyonu
–
Sabit boy, küçük değişikliklere duyarlı, tek yönlü, hızlı
•
Sayısal imza
–
İnkar edememezlik, Asimetrik kriptografi
•
5
•
Tasnif
Dışı
E-İmza Nedir
5070 sayılı Kanun’daki tanım:
“Başka bir elektronik veriye eklenen veya elektronik
veriyle mantıksal bağlantısı bulunan ve kimlik
doğrulama amacıyla kullanılan elektronik veri”
Elektronik ortamda
–
Bir metni onaylama
–
Bir anlaşmayı veya sözleşmeyi kabul etme
3 ana özellik :
–
Kimlik doğrulama ve onaylama,
–
Veri bütünlüğü
–
İnkar edilememezlik
•
6
•
Tasnif
Dışı
Kavramlar - XML
eXtensible Markup Language
W3C tavsiyesi, 10 Şubat 1998
http://www.w3.org/TR/REC-xml
Veri taşıma ve saklama
XML
● tag
● attribute
● namespace
•
7
•
Tasnif
Dışı
Örnek XML
<?xml version="1.0" encoding="UTF-8" ?>
<envelope xmlns="http://tubitak.gov.tr/xml/signature#"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<data>
<data-item Id=”data-1”>Örnek veri</data-item>
<data-item Id=”data-2”>...</data-item>
...
<data>
<signatures>
<ds:signature>...</ds:signature>
...
</signatures>
</envelope>•
8
•
Tasnif
Dışı
XML İmza
XMLdSig
IETF/W3C Tavsiyesi
http://www.w3.org/TR/xmldsig-core/
1. sürüm 2002
2. sürüm Haziran 2008, Ver 1.1
•
9
•
Tasnif
Dışı
İmzalanan Veriye Referans
XML İmza, bir ya da daha fazla referans ile
gösterilen veri ve bir anahtar arasında ilişki
kurmaktır.
XMLdSig bir anahtarın kişi yada kurumla
nasıl ilişkilendirildiği ile ilgilenmez.
•
10
•
Tasnif
Dışı
XML İmza
XML Dökümanın sadece bir kısmını
imzalamak için kullanılabilir. Dökümanın
farklı bölgelerinde farklı imzalar olabilir.
İmzalanan veri XML formatında
olabilir/olmayabilir
•
11
•
Tasnif
Dışı
İmzalanan Veriye Referans
XML İmza bir URI ile veriye bağlı olabilir
Ayrık imza (detached)
İmza, imzalanan veri ile aynı seviyede olabilir.
Zarflanmış imza (enveloped)
İmza, imzalanan verinin içinde yer alabilir.
Zarflanmış imza (enveloped)
İmzalanan veri, imzanın içinde yer alabilir
Zarflayan imza (enveloping)•
12
•
Tasnif
Dışı
İmzalanan Veriye Referans
İmzalanan her bir veri
<Reference> elemanı ile tanımlanır
Tipik bir <Reference> elemanı
- imzalanan veriye işaret eder - URI
- bir özet metodu belirler (örneğin SHA-256)
- imzalanacak verinin özetini
base 64 notasyonunda barındırır
•
13
•
Tasnif
Dışı
<Reference> Elemanı
<Reference URI = “http://.../po.xml”>
<Tranforms...
<DigestMethod Algorithm=”Örneğin SHA-
256”/>
<DigestValue>po.xml’e ait özet değeri
</DigestValue>
</Reference>
•
14
•
Tasnif
Dışı
Transformasyonlar
Canonicalization
XML metin sunumunu tekilleştirme
Base64
Binary veriyi metin formatında kullanmak
XSLT
XML kaynağı üzerinde tam XSLT dönüşümü
XPath
İmza için bir dökümanın parçalarını filtrelemek•
15
•
Tasnif
Dışı
İmzalanan Veriye Referans
İmzada birden fazla referans olabilir
<Reference>
URI, özet metodu, özet değeri
</Reference>
:
<Reference>
URI, özet metodu, özet değeri
</Reference>
•
16
•
Tasnif
Dışı
İmzalanan Alan
Referanslar SignedInfo içindedir
<SignedInfo>
<CanonicalizationMethod>SignedInfo'ya
uygulanacak algoritma
<SignatureMethod>Örneğin RSA-Sha256
<Reference ...
<Reference ...
</SignedInfo>
•
17
•
Tasnif
Dışı
İmza Değeri
İmza değeri hesaplanır
<SignedInfo>
<CanonicalizationMethod>SignedInfo'ya
uygulanacak algoritma
<SignatureMethod>Örneğin RSA-Sha256
<Reference ...
<Reference ...
</SignedInfo>
<SignatureValue>Base 64 imza değeri
</SignatureValue>•
18
•
Tasnif
Dışı
İmzacı Sertifikası
Sertifika eklenir
<SignedInfo..
<SignatureValue..
<KeyInfo>
<X509Data>
<X509Certificate>Base64 formatında,
bir SM tarafından imzalanmış açık anahtar ve
kimlik bilgisi -
</X509Certificate>
</X509Data>
</KeyInfo>•
19
•
Tasnif
Dışı
Bütün Halde İmza
Signature elemanı içinde
<Signature>
<SignedInfo>
...
<Reference
<Reference
</SignedInfo>
<SignatureValue>Base 64 imza
değeri</SignatureValue>
<KeyInfo>...
<Object>...
</Signature>•
20
•
Tasnif
Dışı
Güvenlik
● SM imzalı sertifika değiştirilip başkası imza
atmış gibi gösterilebilir mi?
● Referans URI değiştirilebilir mi?
● Canonicalization method değiştirilebilir mi?
İmza metodu değiştirilebilir mi?
•
21
•
Tasnif
Dışı
Doğrulama
● İmza Doğrulama
SignedInfo C14n
Özetini al
Açık anahtarı bu değerle işlemden geçirip,
SignatureValue uygun mu kontrol et
● Referans doğrulama
Referanslardaki verilerin özetini kontrol et
● Sertifika doğrulama
•
22
•
Tasnif
Dışı
Yapısına Göre İmzalar
Zarflayan (Enveloping) imza
Veri imzanın içinde
<Signature
<SignedInfo …
<Reference URI=”#data-1”...
...
<KeyInfo ...
<Object Id=”data-1”>
<ereceteBilgisi>...</ereceteBilgisi>
</Object>
</Signature>
•
23
•
Tasnif
Dışı
Yapısına Göre İmzalar
Ayrık (Detached) İmza
<Signature
<SignedInfo …
<Reference URI=”recete.xml”...
...
<KeyInfo ...
</Signature>
Dosya: recete.xml
<ereceteBilgisi>...</ereceteBilgisi>
•
24
•
Tasnif
Dışı
Yapısına Göre İmzalar
Zarflanmış imza:
<ereceteBilgisi>
...
<Signature
<SignedInfo …
<Reference URI=””>
<Transforms>
<Transform Algorithm=
"...#enveloped-signature"/>
...
<KeyInfo ...
</Signature>
</ereceteBilgisi>
•
25
•
Tasnif
Dışı
XAdES
Avrupa Birliği Direktifi 1999/93/EC
XAdES (XML Advanced Signature)
http://uri.etsi.org/01903/v1.4.1/
v1.1.1 2002
v1.4.1 15.6.2009
•
26
•
Tasnif
Dışı
XAdES
<Signature>
<SignedInfo>...
<SignatureValue>Base 64 imza
değeri</SignatureValue>
<KeyInfo>...
<Object>
<QualifyingProperties>
<SignedProperties ...
<UnsignedProperties ...
</QualifyingProperties>
</Object>
</Signature>•
27
•
Tasnif
Dışı
XAdES
<Signature>
<SignedInfo>
...
<Reference URI=”#signedprops-1”...
</SignedInfo>
...
<Object>
<QualifyingProperties>
<SignedProperties Id=”signedprops-1”...
<UnsignedProperties ...
</QualifyingProperties>
</Object>
</Signature>
•
28
•
Tasnif
Dışı
BES (Basit Elektronik İmza)
Sertifika bilgisi imza değeri içine alınır:
<QualifyingProperties>
<SignedProperties>
<SignedSignatureProperties>
<SigningTime>
<SigningCertificate ...
...
<SignedDataObjectProperties>
<DataObjectFormat ...
•
29
•
Tasnif
Dışı
BES (Basit Elektronik İmza)
<SigningCertificate>
<Cert>
<CertDigest>
<ds:DigestMethod Algorithm="...#sha256"/>
<ds:DigestValue>k6vd5m...=</ds:DigestValue>
</CertDigest>
<IssuerSerial>
<ds:X509IssuerName>CN=Kamu Elektronik Sertifika
Hizmet Sağlayıcısı ...</ds:X509IssuerName>
<ds:X509SerialNumber>70..</ds:X509SerialNumber>
</IssuerSerial>
</Cert>
</SigningCertificate>
•
30
•
Tasnif
Dışı
EPES (Politika Temelli İmza)
Politika bilgisi imzaya eklenir:
<QualifyingProperties>
<SignedProperties>
<SignedSignatureProperties>
<SigningTime>
<SigningCertificate>
<SignaturePolicyIdentifier...
...
<SignedDataObjectProperties>
<DataObjectFormat>
•
31
•
Tasnif
Dışı
ES-T (Zaman Damgalı İmza)
Zaman damgası
<QualifyingProperties>
<SignedProperties>
...
<UnsignedProperties>
<UnsignedSignatureProperties>
..
<SignatureTimeStamp …
...
</UnsignedProperties>
•
32
•
Tasnif
Dışı
Doğrulama Verisi ve İmza
<UnsignedSignatureProperties
<CompleteCertificateRefs>
<CompleteRevocationRefs>
...
<SigAndRefsTimeStamp>
| <RefsOnlyTimeStamp>
<CertificatesValues>
<RevocationValues>
...
ES-C
ES-X
ES-XL
•
33
•
Tasnif
Dışı
Arşiv Formatı
● Elektronik imzalı dokümanların uzun dönem
saklanması gerektiğinde
● Geçmişte kullanılan algoritmaların veya anahtarların
artık güvenli kabul edilmediği durumlarda
● Son zaman damgasını imzalayan sertifikanın ömrü
dolmadan
<UnsignedSignatureProperties
...
<xadesv141:ArchiveTimeStamp
<xadesv141:TimeStampValidationData•
34
•
Tasnif
Dışı
İmza Tipleri
İmza Tipi Özellik
ES-BES Basit
ES-EPES Politika temelli
ES-T Zaman damgalı
ES-C Doğrulama verisine referans
ES-X Type1- Type2 Referanslar korumalı
ES-XL Doğrulama verisi ekli
ES-A Arşiv
•
35
•
Tasnif
Dışı
İmza Profilleri
Profil İmza
Ömrü
Zaman
Damgası
İmza
Formatı
Kesinleş-
me Süresi
İptal
Bilgisi
Dosya
boyutu
P1 Anlık - ES-
Bes
- SİL /
ÇiSDuP
Düşük
P2 Kısa Var ES-T - SİL Orta
P3 Uzun
Süreli
Var ES-XL Evet SİL Çok
yüksek
P4 Var ES-XL - ÇiSDuP Yüksek
•
36
•
Tasnif
Dışı
http://www.tk.gov.tr/bilgi_teknolojileri/elektronik_imza/
dosyalar/Elektronik_Imza_Kullanim_Profilleri_Rehberi.pdf
Ayrık İmza Yaklaşık Uzunlukları
Eİmza Tipi Profil CAdES XAdES
ES-BES P1 3 KB 5 KB
ES-T P2 6 KB 11 KB
ES-XL P3 (SİL) 20 KB 45 KB
ES-XL P4 (OCSP) 15 KB 37 KB
AS-A P4+Arşiv 25 KB 43 KB
•
37
•
Tasnif
Dışı
Çoklu İmzalar
•
Paralel imza
–
İmzalar aynı seviyede
–
Birbirinden bağımsız...
•
Seri imza (Counter signature)
–
İmzayı imzalama
–
Bir imza çıkarsa, serideki sonraki imzalar da
çıkarılmalı...
•
38
•
Tasnif
Dışı
Çoklu İmzalar
● Seri İmza
<Signature>
...
<UnsignedSignatureProperties>
<CounterSignature> *
● Paralel İmza
<Signature>..</Signature>
<Signature>..</Signature>
•
39
•
Tasnif
Dışı
Çoklu İmzalar
SignedDocument sınıfı çoklu imzalar için kullanılır:
<?xml version="1.0" encoding="UTF-8" ?>
<ma3:envelope xmlns:ma3="..." xmlns:ds="...">
<ma3:data>
<ma3:data-item>...</ma3:data-item>
<ma3:data-item>...</ma3:data-item>
...
<ma3:data>
<ma3:signatures>
<ds:signature>...</ds:signature>
<ds:signature>...</ds:signature>
...
</ma3:signatures>
</ma3:envelope>
•
40
•
Tasnif
Dışı
ESYA Kütüphaneleri
•
41
•
Tasnif
Dışı
ESYA Yazlım Kütüphaneleri
http://yazilim.kamusm.gov.tr
•
42
•
Tasnif
Dışı
ESYA Kütüphane Bileşenleri
XML İMZA
CMS İMZA
Sertifika Doğrulama Akıllı
Kart
Sertika
Deposu
AS
N
KriptoInfra
ŞİFRELEME
(CMS Envelope)
•
43
•
Tasnif
Dışı
ESYA Yazlım Kütüphaneleri
MA3-API XMLSignature 1.4.8.zip
•
44
•
Tasnif
Dışı
XML İmza Konfigürasyon Dosyası
<?xml version="1.0" encoding="UTF-8"?>
<xml-signature-config ...>
<locale language="tr" country="TR"/>
<http>...
…
<timestamp-server>
<host>http://tzd.kamusm.gov.tr</host>
<digest-alg>SHA-1</digest-alg>
<userid>number</userid>
<password>top_secret</password>
</timestamp-server>
…
<validation>
<certificate-validation-policy-file>certval-policy-
test.xml</certificate-validation-policy-file>
...•
45
•
Tasnif
Dışı
Sertifika Doğrulama
// JSmartCardManager.java ile sertifika seç...
// Oturum bazlı sertifika doğrula
ValidationSystem vs = CertificateValidation
.createValidationSystem(getPolicy());
vs.setBaseValidationTime(Calendar.getInstance());
CertificateStatusInfo csi =
CertificateValidation.validateCertificate(vs, cert);
// Aynı oturumda tekrar sertifika doğrulanmayabilir
Context context = new Context(BASE_DIR);
context.setValidateCertificates(false);
•
46
•
Tasnif
Dışı
XAdES BES İmza Atma
Context context = new Context(BASE_DIR);
// context'e göre imza yarat
XMLSignature signature = new XMLSignature(context);
// dökümanı imzaya ekle
signature.addDocument("./sample.txt", "text/plain", true);
// add certificate to show who signed the document
signature.addKeyInfo(CERTIFICATE);
// kartla imzala
signature.sign(getCardSigner());
signature.write(new
FileOutputStream(SIGNATURE_FILENAME));•
47
•
Tasnif
Dışı
P2 İmza Atma
// context'e göre imza yarat
XMLSignature signature = new XMLSignature(context);
signature.setPolicyIdentifier(OID_POLICY_P2,
"Kısa Dönemli ve SİL Kontrollü Güvenli Elektronik
İmza Politikası", "
http://www.tk.gov.tr/bilgi_teknolojileri/elektronik_imza/dosyalar/E
");
…
// kartla imzala
signature.sign(getCardSigner());
signature.upgradeToXAdES_T();
•
48
•
Tasnif
Dışı
P3- P4 İmza Atma
...
signature.setPolicyIdentifier(OID_POLICY_Pn, ...
// kartla imzala
signature.sign(getCardSigner());
// zaman damgası ekle
signature.upgradeToXAdES_T();
// gerekiyorsa bekle
signature.upgradeToXAdES_C();
signature.upgradeToXAdES_X1();
signature.upgradeToXAdES_XL();
•
49
•
Tasnif
Dışı
İmza Doğrulama
// İmzayı dosyadan oku
XMLSignature signature =
XMLSignature.parse(new FileDocument(file),
new Context(BASE_DIR)) ;
// Doğrula
ValidationResult result = signature.verify();
// Detaylı doğrulama mesajı
System.out.println(result.toXml());
// Sonuç tipi
Assert.assertTrue("Cant verify " + fileName,
result.getType() == ValidationResultType.VALID);
•
50
•
Tasnif
Dışı
Neden ESYA Kütüphaneleri

Standartlara uyumlu

E-İmza
 ETSI Plugtestlerine 3 kez katılım

Sertifika Doğrulama
 NIST Testleri %100 uyumluluk
•
51
•
Tasnif
Dışı
Neden ESYA Kütüphaneleri

Standartları belirliyoruz!
–
ETSI–ESI grubu faaliyetlerinde standartların
belirlenmesine katılım
–
Türkiye’de kullanılan Sertifika / SİL /OCSP profillerinin
oluşturulması
–
Türkiye’de kullanılacak E-İmza profillerinin
oluşturulması ve BTK’ya yayınlanmak üzere iletilmesi
–
DPT nezdinde yürütülen E-Yazışma formatının
belirlenmesine katılım (Pilot için kütüphane temini)
•
52
•
Tasnif
Dışı
Neden ESYA Kütüphaneleri
Bilgi, alanında hakimiyet
•
Destek
–
Kurumlara E-İmza süreçlerinin anlatılması,
•
Denetim
–
2007 yılından itibaren 47 kamu kurumu ve 5
özel kurumun e-imza uygulamaları
incelenmesi
•
E-İmza Uyumluluk Testleri
•
53
•
Tasnif
Dışı
Sorular

More Related Content

What's hot

Pengaruh Struktur Modal terhadap Nilai Perusahaan
Pengaruh Struktur Modal terhadap Nilai PerusahaanPengaruh Struktur Modal terhadap Nilai Perusahaan
Pengaruh Struktur Modal terhadap Nilai PerusahaanTrisnadi Wijaya
 
Analisis SWOT and Matrix Space PT Indofood
Analisis SWOT and Matrix Space PT IndofoodAnalisis SWOT and Matrix Space PT Indofood
Analisis SWOT and Matrix Space PT IndofoodAlfrianty Sauran
 
Pengantar Manajemen "Sony Corporation"
Pengantar Manajemen "Sony Corporation"Pengantar Manajemen "Sony Corporation"
Pengantar Manajemen "Sony Corporation"chienmario
 
《比溝通更重要的開會技巧》導讀與應用
《比溝通更重要的開會技巧》導讀與應用《比溝通更重要的開會技巧》導讀與應用
《比溝通更重要的開會技巧》導讀與應用Lee CHIU
 
Critical Success Factor, Delphi Method, Balance Scorecard
Critical Success Factor, Delphi Method, Balance ScorecardCritical Success Factor, Delphi Method, Balance Scorecard
Critical Success Factor, Delphi Method, Balance ScorecardAfif Hendrawan
 
標案簡報心法架構篇 精華分享版
標案簡報心法架構篇  精華分享版標案簡報心法架構篇  精華分享版
標案簡報心法架構篇 精華分享版kome chang
 
Kelompok 2 makalah analisa kinerja bisnis perusahaan walt disney
Kelompok 2   makalah analisa kinerja bisnis perusahaan walt disneyKelompok 2   makalah analisa kinerja bisnis perusahaan walt disney
Kelompok 2 makalah analisa kinerja bisnis perusahaan walt disneylinna noviyathi
 
Manajemen Strategi PT Indofood Sukses Makmur Tbk
Manajemen Strategi PT Indofood Sukses Makmur TbkManajemen Strategi PT Indofood Sukses Makmur Tbk
Manajemen Strategi PT Indofood Sukses Makmur TbkWily Yoga
 
Makalah strategi tingkat perusahaan
Makalah strategi tingkat perusahaanMakalah strategi tingkat perusahaan
Makalah strategi tingkat perusahaanilmi nur farida
 
Innovation Strategy
Innovation StrategyInnovation Strategy
Innovation Strategycampusnet
 
Manajemen keuangan perusahaan
Manajemen keuangan perusahaanManajemen keuangan perusahaan
Manajemen keuangan perusahaanDominicus Prabowo
 
Teori struktur modal
Teori struktur modalTeori struktur modal
Teori struktur modalMatthew0505
 

What's hot (16)

Pengaruh Struktur Modal terhadap Nilai Perusahaan
Pengaruh Struktur Modal terhadap Nilai PerusahaanPengaruh Struktur Modal terhadap Nilai Perusahaan
Pengaruh Struktur Modal terhadap Nilai Perusahaan
 
Analisis SWOT and Matrix Space PT Indofood
Analisis SWOT and Matrix Space PT IndofoodAnalisis SWOT and Matrix Space PT Indofood
Analisis SWOT and Matrix Space PT Indofood
 
Pengantar Manajemen "Sony Corporation"
Pengantar Manajemen "Sony Corporation"Pengantar Manajemen "Sony Corporation"
Pengantar Manajemen "Sony Corporation"
 
《比溝通更重要的開會技巧》導讀與應用
《比溝通更重要的開會技巧》導讀與應用《比溝通更重要的開會技巧》導讀與應用
《比溝通更重要的開會技巧》導讀與應用
 
Critical Success Factor, Delphi Method, Balance Scorecard
Critical Success Factor, Delphi Method, Balance ScorecardCritical Success Factor, Delphi Method, Balance Scorecard
Critical Success Factor, Delphi Method, Balance Scorecard
 
標案簡報心法架構篇 精華分享版
標案簡報心法架構篇  精華分享版標案簡報心法架構篇  精華分享版
標案簡報心法架構篇 精華分享版
 
Kelompok 2 makalah analisa kinerja bisnis perusahaan walt disney
Kelompok 2   makalah analisa kinerja bisnis perusahaan walt disneyKelompok 2   makalah analisa kinerja bisnis perusahaan walt disney
Kelompok 2 makalah analisa kinerja bisnis perusahaan walt disney
 
Manajemen Strategi PT Indofood Sukses Makmur Tbk
Manajemen Strategi PT Indofood Sukses Makmur TbkManajemen Strategi PT Indofood Sukses Makmur Tbk
Manajemen Strategi PT Indofood Sukses Makmur Tbk
 
Manajemen stratejik
Manajemen stratejikManajemen stratejik
Manajemen stratejik
 
Makalah strategi tingkat perusahaan
Makalah strategi tingkat perusahaanMakalah strategi tingkat perusahaan
Makalah strategi tingkat perusahaan
 
獲利時代
獲利時代獲利時代
獲利時代
 
Nilai saham
Nilai sahamNilai saham
Nilai saham
 
Innovation Strategy
Innovation StrategyInnovation Strategy
Innovation Strategy
 
Manajemen operasional ppt
Manajemen operasional pptManajemen operasional ppt
Manajemen operasional ppt
 
Manajemen keuangan perusahaan
Manajemen keuangan perusahaanManajemen keuangan perusahaan
Manajemen keuangan perusahaan
 
Teori struktur modal
Teori struktur modalTeori struktur modal
Teori struktur modal
 

Similar to XAdES xml e-signature format

Writing Secure Code With .Net
Writing Secure Code With .NetWriting Secure Code With .Net
Writing Secure Code With .NetElif Bayrakdar
 
Web Guvenligi Konferansi - Web Hacking Yontemleri
Web Guvenligi Konferansi - Web Hacking YontemleriWeb Guvenligi Konferansi - Web Hacking Yontemleri
Web Guvenligi Konferansi - Web Hacking YontemleriEPICROUTERS
 
Web Uygulama Güvenliği
Web Uygulama GüvenliğiWeb Uygulama Güvenliği
Web Uygulama GüvenliğiMesut Güngör
 
Şifreleme Teknikleri ve SSL
Şifreleme Teknikleri ve SSLŞifreleme Teknikleri ve SSL
Şifreleme Teknikleri ve SSLTolga ÇELİK
 

Similar to XAdES xml e-signature format (9)

Eticaret Güvenliği
Eticaret GüvenliğiEticaret Güvenliği
Eticaret Güvenliği
 
.Net ile yazılım güvenliği
.Net ile yazılım güvenliği.Net ile yazılım güvenliği
.Net ile yazılım güvenliği
 
Writing Secure Code With .Net
Writing Secure Code With .NetWriting Secure Code With .Net
Writing Secure Code With .Net
 
Web Guvenligi Konferansi - Web Hacking Yontemleri
Web Guvenligi Konferansi - Web Hacking YontemleriWeb Guvenligi Konferansi - Web Hacking Yontemleri
Web Guvenligi Konferansi - Web Hacking Yontemleri
 
Web Uygulama Güvenliği
Web Uygulama GüvenliğiWeb Uygulama Güvenliği
Web Uygulama Güvenliği
 
Şifreleme Teknikleri ve SSL
Şifreleme Teknikleri ve SSLŞifreleme Teknikleri ve SSL
Şifreleme Teknikleri ve SSL
 
Temel web güvenliği
Temel web güvenliğiTemel web güvenliği
Temel web güvenliği
 
Siber Güvenlikte Ofansif Yaklaşımlar
Siber Güvenlikte Ofansif YaklaşımlarSiber Güvenlikte Ofansif Yaklaşımlar
Siber Güvenlikte Ofansif Yaklaşımlar
 
Nosql & MongoDB
Nosql & MongoDBNosql & MongoDB
Nosql & MongoDB
 

XAdES xml e-signature format

  • 1. XAdES XML E-İmza Formatı ve ESYA Yazılım Kütüphaneleri Ahmet Yetgin ahmet.yetgin@tubitak.gov.tr Kasım 2012 • Tasnif Dışı
  • 2. Ajanda Kavramlar XML İmza (XMLdSig) XAdES ESYA API • 2 • Tasnif Dışı
  • 3. Kavramlar - Kriptografi Kriptografi, Haberleşen iki veya daha fazla tarafın bilgi alışverişini emniyetli bir şekilde yapmasını sağlayan, temeli matematiksel zor problemlere dayanan teknik ve uygulamaların bütünüdür. • 3 • Tasnif Dışı
  • 4. Kavramlar - Haberleşmede Güvenlik Ögeleri • Gizlilik (Confidentiality of Content) • Bütünlük (Integrity of Content) • Kimlik Doğrulaması (Authentication of Origin) • İnkar Edememezlik (Non-repudiation) • Süreklilik • 4 • Tasnif Dışı
  • 5. Krtiptografik Teknikler • Simetrik Kriptografi – Gizli anahtar (Secret Key) • Asimetrik Kriptografi – Özel anahtar (Private key) Açık anahtar (Public Key) • Özet fonksiyonu – Sabit boy, küçük değişikliklere duyarlı, tek yönlü, hızlı • Sayısal imza – İnkar edememezlik, Asimetrik kriptografi • 5 • Tasnif Dışı
  • 6. E-İmza Nedir 5070 sayılı Kanun’daki tanım: “Başka bir elektronik veriye eklenen veya elektronik veriyle mantıksal bağlantısı bulunan ve kimlik doğrulama amacıyla kullanılan elektronik veri” Elektronik ortamda – Bir metni onaylama – Bir anlaşmayı veya sözleşmeyi kabul etme 3 ana özellik : – Kimlik doğrulama ve onaylama, – Veri bütünlüğü – İnkar edilememezlik • 6 • Tasnif Dışı
  • 7. Kavramlar - XML eXtensible Markup Language W3C tavsiyesi, 10 Şubat 1998 http://www.w3.org/TR/REC-xml Veri taşıma ve saklama XML ● tag ● attribute ● namespace • 7 • Tasnif Dışı
  • 8. Örnek XML <?xml version="1.0" encoding="UTF-8" ?> <envelope xmlns="http://tubitak.gov.tr/xml/signature#" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> <data> <data-item Id=”data-1”>Örnek veri</data-item> <data-item Id=”data-2”>...</data-item> ... <data> <signatures> <ds:signature>...</ds:signature> ... </signatures> </envelope>• 8 • Tasnif Dışı
  • 9. XML İmza XMLdSig IETF/W3C Tavsiyesi http://www.w3.org/TR/xmldsig-core/ 1. sürüm 2002 2. sürüm Haziran 2008, Ver 1.1 • 9 • Tasnif Dışı
  • 10. İmzalanan Veriye Referans XML İmza, bir ya da daha fazla referans ile gösterilen veri ve bir anahtar arasında ilişki kurmaktır. XMLdSig bir anahtarın kişi yada kurumla nasıl ilişkilendirildiği ile ilgilenmez. • 10 • Tasnif Dışı
  • 11. XML İmza XML Dökümanın sadece bir kısmını imzalamak için kullanılabilir. Dökümanın farklı bölgelerinde farklı imzalar olabilir. İmzalanan veri XML formatında olabilir/olmayabilir • 11 • Tasnif Dışı
  • 12. İmzalanan Veriye Referans XML İmza bir URI ile veriye bağlı olabilir Ayrık imza (detached) İmza, imzalanan veri ile aynı seviyede olabilir. Zarflanmış imza (enveloped) İmza, imzalanan verinin içinde yer alabilir. Zarflanmış imza (enveloped) İmzalanan veri, imzanın içinde yer alabilir Zarflayan imza (enveloping)• 12 • Tasnif Dışı
  • 13. İmzalanan Veriye Referans İmzalanan her bir veri <Reference> elemanı ile tanımlanır Tipik bir <Reference> elemanı - imzalanan veriye işaret eder - URI - bir özet metodu belirler (örneğin SHA-256) - imzalanacak verinin özetini base 64 notasyonunda barındırır • 13 • Tasnif Dışı
  • 14. <Reference> Elemanı <Reference URI = “http://.../po.xml”> <Tranforms... <DigestMethod Algorithm=”Örneğin SHA- 256”/> <DigestValue>po.xml’e ait özet değeri </DigestValue> </Reference> • 14 • Tasnif Dışı
  • 15. Transformasyonlar Canonicalization XML metin sunumunu tekilleştirme Base64 Binary veriyi metin formatında kullanmak XSLT XML kaynağı üzerinde tam XSLT dönüşümü XPath İmza için bir dökümanın parçalarını filtrelemek• 15 • Tasnif Dışı
  • 16. İmzalanan Veriye Referans İmzada birden fazla referans olabilir <Reference> URI, özet metodu, özet değeri </Reference> : <Reference> URI, özet metodu, özet değeri </Reference> • 16 • Tasnif Dışı
  • 17. İmzalanan Alan Referanslar SignedInfo içindedir <SignedInfo> <CanonicalizationMethod>SignedInfo'ya uygulanacak algoritma <SignatureMethod>Örneğin RSA-Sha256 <Reference ... <Reference ... </SignedInfo> • 17 • Tasnif Dışı
  • 18. İmza Değeri İmza değeri hesaplanır <SignedInfo> <CanonicalizationMethod>SignedInfo'ya uygulanacak algoritma <SignatureMethod>Örneğin RSA-Sha256 <Reference ... <Reference ... </SignedInfo> <SignatureValue>Base 64 imza değeri </SignatureValue>• 18 • Tasnif Dışı
  • 19. İmzacı Sertifikası Sertifika eklenir <SignedInfo.. <SignatureValue.. <KeyInfo> <X509Data> <X509Certificate>Base64 formatında, bir SM tarafından imzalanmış açık anahtar ve kimlik bilgisi - </X509Certificate> </X509Data> </KeyInfo>• 19 • Tasnif Dışı
  • 20. Bütün Halde İmza Signature elemanı içinde <Signature> <SignedInfo> ... <Reference <Reference </SignedInfo> <SignatureValue>Base 64 imza değeri</SignatureValue> <KeyInfo>... <Object>... </Signature>• 20 • Tasnif Dışı
  • 21. Güvenlik ● SM imzalı sertifika değiştirilip başkası imza atmış gibi gösterilebilir mi? ● Referans URI değiştirilebilir mi? ● Canonicalization method değiştirilebilir mi? İmza metodu değiştirilebilir mi? • 21 • Tasnif Dışı
  • 22. Doğrulama ● İmza Doğrulama SignedInfo C14n Özetini al Açık anahtarı bu değerle işlemden geçirip, SignatureValue uygun mu kontrol et ● Referans doğrulama Referanslardaki verilerin özetini kontrol et ● Sertifika doğrulama • 22 • Tasnif Dışı
  • 23. Yapısına Göre İmzalar Zarflayan (Enveloping) imza Veri imzanın içinde <Signature <SignedInfo … <Reference URI=”#data-1”... ... <KeyInfo ... <Object Id=”data-1”> <ereceteBilgisi>...</ereceteBilgisi> </Object> </Signature> • 23 • Tasnif Dışı
  • 24. Yapısına Göre İmzalar Ayrık (Detached) İmza <Signature <SignedInfo … <Reference URI=”recete.xml”... ... <KeyInfo ... </Signature> Dosya: recete.xml <ereceteBilgisi>...</ereceteBilgisi> • 24 • Tasnif Dışı
  • 25. Yapısına Göre İmzalar Zarflanmış imza: <ereceteBilgisi> ... <Signature <SignedInfo … <Reference URI=””> <Transforms> <Transform Algorithm= "...#enveloped-signature"/> ... <KeyInfo ... </Signature> </ereceteBilgisi> • 25 • Tasnif Dışı
  • 26. XAdES Avrupa Birliği Direktifi 1999/93/EC XAdES (XML Advanced Signature) http://uri.etsi.org/01903/v1.4.1/ v1.1.1 2002 v1.4.1 15.6.2009 • 26 • Tasnif Dışı
  • 27. XAdES <Signature> <SignedInfo>... <SignatureValue>Base 64 imza değeri</SignatureValue> <KeyInfo>... <Object> <QualifyingProperties> <SignedProperties ... <UnsignedProperties ... </QualifyingProperties> </Object> </Signature>• 27 • Tasnif Dışı
  • 29. BES (Basit Elektronik İmza) Sertifika bilgisi imza değeri içine alınır: <QualifyingProperties> <SignedProperties> <SignedSignatureProperties> <SigningTime> <SigningCertificate ... ... <SignedDataObjectProperties> <DataObjectFormat ... • 29 • Tasnif Dışı
  • 30. BES (Basit Elektronik İmza) <SigningCertificate> <Cert> <CertDigest> <ds:DigestMethod Algorithm="...#sha256"/> <ds:DigestValue>k6vd5m...=</ds:DigestValue> </CertDigest> <IssuerSerial> <ds:X509IssuerName>CN=Kamu Elektronik Sertifika Hizmet Sağlayıcısı ...</ds:X509IssuerName> <ds:X509SerialNumber>70..</ds:X509SerialNumber> </IssuerSerial> </Cert> </SigningCertificate> • 30 • Tasnif Dışı
  • 31. EPES (Politika Temelli İmza) Politika bilgisi imzaya eklenir: <QualifyingProperties> <SignedProperties> <SignedSignatureProperties> <SigningTime> <SigningCertificate> <SignaturePolicyIdentifier... ... <SignedDataObjectProperties> <DataObjectFormat> • 31 • Tasnif Dışı
  • 32. ES-T (Zaman Damgalı İmza) Zaman damgası <QualifyingProperties> <SignedProperties> ... <UnsignedProperties> <UnsignedSignatureProperties> .. <SignatureTimeStamp … ... </UnsignedProperties> • 32 • Tasnif Dışı
  • 33. Doğrulama Verisi ve İmza <UnsignedSignatureProperties <CompleteCertificateRefs> <CompleteRevocationRefs> ... <SigAndRefsTimeStamp> | <RefsOnlyTimeStamp> <CertificatesValues> <RevocationValues> ... ES-C ES-X ES-XL • 33 • Tasnif Dışı
  • 34. Arşiv Formatı ● Elektronik imzalı dokümanların uzun dönem saklanması gerektiğinde ● Geçmişte kullanılan algoritmaların veya anahtarların artık güvenli kabul edilmediği durumlarda ● Son zaman damgasını imzalayan sertifikanın ömrü dolmadan <UnsignedSignatureProperties ... <xadesv141:ArchiveTimeStamp <xadesv141:TimeStampValidationData• 34 • Tasnif Dışı
  • 35. İmza Tipleri İmza Tipi Özellik ES-BES Basit ES-EPES Politika temelli ES-T Zaman damgalı ES-C Doğrulama verisine referans ES-X Type1- Type2 Referanslar korumalı ES-XL Doğrulama verisi ekli ES-A Arşiv • 35 • Tasnif Dışı
  • 36. İmza Profilleri Profil İmza Ömrü Zaman Damgası İmza Formatı Kesinleş- me Süresi İptal Bilgisi Dosya boyutu P1 Anlık - ES- Bes - SİL / ÇiSDuP Düşük P2 Kısa Var ES-T - SİL Orta P3 Uzun Süreli Var ES-XL Evet SİL Çok yüksek P4 Var ES-XL - ÇiSDuP Yüksek • 36 • Tasnif Dışı http://www.tk.gov.tr/bilgi_teknolojileri/elektronik_imza/ dosyalar/Elektronik_Imza_Kullanim_Profilleri_Rehberi.pdf
  • 37. Ayrık İmza Yaklaşık Uzunlukları Eİmza Tipi Profil CAdES XAdES ES-BES P1 3 KB 5 KB ES-T P2 6 KB 11 KB ES-XL P3 (SİL) 20 KB 45 KB ES-XL P4 (OCSP) 15 KB 37 KB AS-A P4+Arşiv 25 KB 43 KB • 37 • Tasnif Dışı
  • 38. Çoklu İmzalar • Paralel imza – İmzalar aynı seviyede – Birbirinden bağımsız... • Seri imza (Counter signature) – İmzayı imzalama – Bir imza çıkarsa, serideki sonraki imzalar da çıkarılmalı... • 38 • Tasnif Dışı
  • 39. Çoklu İmzalar ● Seri İmza <Signature> ... <UnsignedSignatureProperties> <CounterSignature> * ● Paralel İmza <Signature>..</Signature> <Signature>..</Signature> • 39 • Tasnif Dışı
  • 40. Çoklu İmzalar SignedDocument sınıfı çoklu imzalar için kullanılır: <?xml version="1.0" encoding="UTF-8" ?> <ma3:envelope xmlns:ma3="..." xmlns:ds="..."> <ma3:data> <ma3:data-item>...</ma3:data-item> <ma3:data-item>...</ma3:data-item> ... <ma3:data> <ma3:signatures> <ds:signature>...</ds:signature> <ds:signature>...</ds:signature> ... </ma3:signatures> </ma3:envelope> • 40 • Tasnif Dışı
  • 43. ESYA Kütüphane Bileşenleri XML İMZA CMS İMZA Sertifika Doğrulama Akıllı Kart Sertika Deposu AS N KriptoInfra ŞİFRELEME (CMS Envelope) • 43 • Tasnif Dışı
  • 44. ESYA Yazlım Kütüphaneleri MA3-API XMLSignature 1.4.8.zip • 44 • Tasnif Dışı
  • 45. XML İmza Konfigürasyon Dosyası <?xml version="1.0" encoding="UTF-8"?> <xml-signature-config ...> <locale language="tr" country="TR"/> <http>... … <timestamp-server> <host>http://tzd.kamusm.gov.tr</host> <digest-alg>SHA-1</digest-alg> <userid>number</userid> <password>top_secret</password> </timestamp-server> … <validation> <certificate-validation-policy-file>certval-policy- test.xml</certificate-validation-policy-file> ...• 45 • Tasnif Dışı
  • 46. Sertifika Doğrulama // JSmartCardManager.java ile sertifika seç... // Oturum bazlı sertifika doğrula ValidationSystem vs = CertificateValidation .createValidationSystem(getPolicy()); vs.setBaseValidationTime(Calendar.getInstance()); CertificateStatusInfo csi = CertificateValidation.validateCertificate(vs, cert); // Aynı oturumda tekrar sertifika doğrulanmayabilir Context context = new Context(BASE_DIR); context.setValidateCertificates(false); • 46 • Tasnif Dışı
  • 47. XAdES BES İmza Atma Context context = new Context(BASE_DIR); // context'e göre imza yarat XMLSignature signature = new XMLSignature(context); // dökümanı imzaya ekle signature.addDocument("./sample.txt", "text/plain", true); // add certificate to show who signed the document signature.addKeyInfo(CERTIFICATE); // kartla imzala signature.sign(getCardSigner()); signature.write(new FileOutputStream(SIGNATURE_FILENAME));• 47 • Tasnif Dışı
  • 48. P2 İmza Atma // context'e göre imza yarat XMLSignature signature = new XMLSignature(context); signature.setPolicyIdentifier(OID_POLICY_P2, "Kısa Dönemli ve SİL Kontrollü Güvenli Elektronik İmza Politikası", " http://www.tk.gov.tr/bilgi_teknolojileri/elektronik_imza/dosyalar/E "); … // kartla imzala signature.sign(getCardSigner()); signature.upgradeToXAdES_T(); • 48 • Tasnif Dışı
  • 49. P3- P4 İmza Atma ... signature.setPolicyIdentifier(OID_POLICY_Pn, ... // kartla imzala signature.sign(getCardSigner()); // zaman damgası ekle signature.upgradeToXAdES_T(); // gerekiyorsa bekle signature.upgradeToXAdES_C(); signature.upgradeToXAdES_X1(); signature.upgradeToXAdES_XL(); • 49 • Tasnif Dışı
  • 50. İmza Doğrulama // İmzayı dosyadan oku XMLSignature signature = XMLSignature.parse(new FileDocument(file), new Context(BASE_DIR)) ; // Doğrula ValidationResult result = signature.verify(); // Detaylı doğrulama mesajı System.out.println(result.toXml()); // Sonuç tipi Assert.assertTrue("Cant verify " + fileName, result.getType() == ValidationResultType.VALID); • 50 • Tasnif Dışı
  • 51. Neden ESYA Kütüphaneleri  Standartlara uyumlu  E-İmza  ETSI Plugtestlerine 3 kez katılım  Sertifika Doğrulama  NIST Testleri %100 uyumluluk • 51 • Tasnif Dışı
  • 52. Neden ESYA Kütüphaneleri  Standartları belirliyoruz! – ETSI–ESI grubu faaliyetlerinde standartların belirlenmesine katılım – Türkiye’de kullanılan Sertifika / SİL /OCSP profillerinin oluşturulması – Türkiye’de kullanılacak E-İmza profillerinin oluşturulması ve BTK’ya yayınlanmak üzere iletilmesi – DPT nezdinde yürütülen E-Yazışma formatının belirlenmesine katılım (Pilot için kütüphane temini) • 52 • Tasnif Dışı
  • 53. Neden ESYA Kütüphaneleri Bilgi, alanında hakimiyet • Destek – Kurumlara E-İmza süreçlerinin anlatılması, • Denetim – 2007 yılından itibaren 47 kamu kurumu ve 5 özel kurumun e-imza uygulamaları incelenmesi • E-İmza Uyumluluk Testleri • 53 • Tasnif Dışı