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

PPTX
Demo of security tool nessus - Network vulnerablity scanner
PDF
PPTX
Auditoria de sistemas de informação
PDF
Zero Trust : How to Get Started
PDF
Siber Güvenlik ve Etik Hacking Sunu - 5
PPTX
Cyber Security Needs and Challenges
DOCX
Getting Started with Splunk Enterprise - Demo
PDF
Güvenlik Sistemlerini Atlatma ve Alınacak Dersler
Demo of security tool nessus - Network vulnerablity scanner
Auditoria de sistemas de informação
Zero Trust : How to Get Started
Siber Güvenlik ve Etik Hacking Sunu - 5
Cyber Security Needs and Challenges
Getting Started with Splunk Enterprise - Demo
Güvenlik Sistemlerini Atlatma ve Alınacak Dersler

What's hot (20)

PPTX
Azureの学習にオススメな動画コンテンツまとめ.pptx
PDF
Windows Sistemler için Sysmon ve Wazuh Kullanarak Mitre ATT&CK Kurallarının ...
PDF
C I S C r i t i c a l C o n t r o l s
PDF
Seminário Segurança da Informação
PDF
B07_業務の自動化を多角的に実現する Power Automate の世界 [Microsoft Japan Digital Days]
PPTX
Network Security: Attacks, Tools and Techniques
PDF
Cloud Security Demystified
PPTX
Azure Sentinel
PPT
PPTX
Ciberseguridad para la transformación digital, el nuevo desafío
PDF
Microsoft 365 Enterprise Security with E5 Overview
PPTX
Siber Olaylara Müdahale Sunumu
PPTX
Microsoft Zero Trust
PPTX
Bsides Knoxville - OSINT
PPTX
Engenharia Social
PDF
Siber Saldırılar i̇çin Erken Uyarı Sistemi
PPTX
Reconnaissance - For pentesting and user awareness
PDF
The Incident Response Playbook for Android and iOS
PPTX
Ip address
PPTX
Data Security
Azureの学習にオススメな動画コンテンツまとめ.pptx
Windows Sistemler için Sysmon ve Wazuh Kullanarak Mitre ATT&CK Kurallarının ...
C I S C r i t i c a l C o n t r o l s
Seminário Segurança da Informação
B07_業務の自動化を多角的に実現する Power Automate の世界 [Microsoft Japan Digital Days]
Network Security: Attacks, Tools and Techniques
Cloud Security Demystified
Azure Sentinel
Ciberseguridad para la transformación digital, el nuevo desafío
Microsoft 365 Enterprise Security with E5 Overview
Siber Olaylara Müdahale Sunumu
Microsoft Zero Trust
Bsides Knoxville - OSINT
Engenharia Social
Siber Saldırılar i̇çin Erken Uyarı Sistemi
Reconnaissance - For pentesting and user awareness
The Incident Response Playbook for Android and iOS
Ip address
Data Security
Ad

Similar to XAdES xml e-signature format (9)

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

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ışı