ESYAE-imza Kütüphaneleri

User Tools

Site Tools


esya:cades:imza-tipleri

Farklar

Bu sayfanın seçili sürümü ile mevcut sürümü arasındaki farkları gösterir.

Karşılaştırma görünümüne bağlantı

esya:cades:imza-tipleri [2013/07/24 11:45]
Beytullah Yiğit
esya:cades:imza-tipleri [2014/01/21 09:30] (mevcut)
Beytullah Yiğit [ESA]
Satır 1: Satır 1:
-====== Farklı İmza Tiplerinin Oluşturulması======+===== Farklı İmza Tiplerinin Oluşturulması =====
  
-API  tarafından ​ desteklenen ​ imza  tiplerinden ​  ​çok ​  ​kullanılanları ​ hakkında ​ kısa açıklamaları burada bulabilirsiniz. Hangi imzanın size uygun  olduğuna karar  vermek için "E- imza Profilleri"​ dökümanını inceleyebilirsiniz. İmza tipleri hakkında daha  geniş bilgi için ise "​ETSI ​TS 101 733" ​dökümanına bakınız.+API  tarafından ​ desteklenen ​ imza  tiplerinden ​  ​çok ​  ​kullanılanları ​ hakkında ​ kısa açıklamaları burada bulabilirsiniz. Hangi imzanın size uygun  olduğuna karar  vermek için "E- imza Profilleri"​ dökümanını inceleyebilirsiniz. İmza tipleri hakkında daha  geniş bilgi için ise [[http://​www.etsi.org/​deliver/​etsi_ts/​101700_101799/​101733/​02.02.01_60/​ts_101733v020201p.pdf|TS ETSI 101 733]] dökümanına bakınız.
  
-===== BES =====+==== BES ==== 
 + 
 +BES imza, en basit imza türüdür. BES imza sadece ​ o kişinin imzayı attığını garanti eder. İmza zamanı belli olmadığından ancak  sertifika geçerli iken imza doğrulanabilir. Sertifika iptal edildiğinde veya  sertifika süresi dolduğunda imza doğrulanamaz. BES  imza içersine zaman bilgisi eklenebilir,​ eklenen zamanın herhangi bir hukuki yükümlülüğü,​ kesinliği yoktur. Beyan edilen zaman şeklinde kullanılabilir.
  
-BES imza, en basit imza türüdür. BES, imza sadece ​ o kişinin imzayı attığını garanti eder. İmza zamanıda belli olmadığından ancak  sertifika geçerli iken imza doğrulanabilir. Sertifika iptal edildiğinde veya  sertifika süresi dolduğunda imza doğrulanamaz. BES  imza içersine zaman bilgisi eklenebilir,​ eklenen zamanın herhangi bir hukuki yükümlülüğü,​ kesinliği yoktur. Beyan edilen zaman şeklinde kullanılabilir. 
 <sxh java;​title:​Java>​ <sxh java;​title:​Java>​
 BaseSignedData bs = new BaseSignedData();​  BaseSignedData bs = new BaseSignedData();​
Satır 34: Satır 35:
 </​sxh>​ </​sxh>​
  
-İmzanın beyan edilen zamanını almak için aşağıdaki ​örnek kod kullanılabilir.+İmzanın beyan edilen zamanını almak için [[esya:​cades:​imza-zamani|buradaki ]] örnek kod kullanılabilir.
  
-<sxh java;​title:​Java>​ +Beyan edilen zamanın kullanımında oluşabilecek kötü senaryo aşağıdaki gibidirİmza atıldığı sırada imzacı sertifikası iptal edilmiştir,​ fakat kullanıcı imza zamanı olarak daha önceki bir zamanı beyan etmiştirBeyan edilen zamana güvenildiği durumda geçersiz olan bu imza doğrulanacaktır.
-byte[] input = AsnIO.dosyadanOKU(BESwithSIGNING_TIME);​ +
-BaseSignedData bs = new BaseSignedData(input);​ +
-List<​EAttribute>​ attrs =  +
-                  bs.getSignerList().get(0).getSignedAttribute(SigningTimeAttr.OID);​ +
-Calendar time = SigningTimeAttr.toTime(attrs.get(0));​ +
-System.out.println(time.getTime().toString());​ +
-</​sxh>​ +
-<sxh csharp;​title:​C#>​ +
-byte[] input = AsnIO.dosyadanOKU(BESwithSIGNING_TIME);​ +
-BaseSignedData bs = new BaseSignedData(input);​ +
-List<​EAttribute>​ attrs = bs.getSignerList()[0]. +
-                            getSignedAttribute(AttributeOIDs.id_signingTime);​ +
-DateTime? time = SigningTimeAttr.toTime(attrs[0]);​ +
-Console.WriteLine(time.Value.ToString());​ +
-</​sxh>​+
  
-Beyan edilen zamanın kullanımında oluşabilecek kötü senaryo ​Şekil ​17’daki gibidir. İmza atıldığı sırada imzacı sertifikası iptal edilmiştir; yalnız kullanıcı imza zamanı olarak daha önceki bir zamanı beyan etmiştir. ​Beyan edilen zamana güvenildiği durumda geçersiz olan bu imza doğrulanacaktır.+{{ :​esya:​cades:​cades.png | Şekil ​16 Yanlış Beyan İle Kötü Kullanım Senaryosu}}
  
-{{ :​esya:​cades:​cades.png | Şekil 17 Yanlış Beyan İle Kötü Kullanım Senaryosu}}+==== EST ====
  
-===== EST ===== +EST imzaBES imzadan ​türemiştir. İçerisinde imzalama zamanını ​gösteren ​zaman damgası bulundurmaktadır. İmza atılırken zaman damgası ayarlarının verilmesi gerekmektedir. Aşağıdaki örnek kodda bir EST imzanın nasıl atılacağını bulabilirsiniz.
- +
-ESTimzaBESimzadan ​türemiştir. İçerisinde imzalama zamanını ​gösterir ​zaman damgası bulundurmaktadır. İmzaatılırken zaman damgası ayarlarının verilmesi gerekmektedir. Aşağıdaki örnek kodda bir EST imzanın nasıl atılacağını bulabilirsiniz.+
  
 <sxh java;​title:​Java>​ <sxh java;​title:​Java>​
Satır 89: Satır 73:
 </​sxh>​ </​sxh>​
  
-İmza zamanı belli olduğundan,​ BES  tipi imzadan farklı olarak sertifika doğrulamada kesin sonuçlara ulaşılabilir. ​Aşağıdaki örnek kod ile imza zamanını ​alabilirsiniz.+İmza zamanı belli olduğundan,​ BES  tipi imzadan farklı olarak sertifika doğrulamada kesin sonuçlara ulaşılabilir. ​İmza zamanını ​almak için [[esya:​cades:​imza-zamani|buradaki ]] örnek kod kullanılabilir
  
-<sxh java;​title:​Java>​ +==== ESXLong ==== 
-BaseSignedData bs = new BaseSignedData(input);​ + 
-EST estSign = (EST)bs.getSignerList().get(0);​ +ESXLong imza aynı zamanda bir EST  imzadır. ESXLong ​imzaEST imzadan ​farklı olarak imza içerisinde sertifika doğrulamada kullanılacak ​olan doğrulama verisini içerir. . Bundan dolayı ESXLong imza atılırken veya bir imza ESXLong’a çevrilirken sertifika doğrulama işlemi yapılmak zorundadır. Sertifika ​ ömrü ​  ​dolduktan ​ sonra   ​doğrulamada kullanılacak veriye ulaşmada sorunlar çıkabilir. ​ ESXLong imzadoğrulama verisini içinde barındırdığından bu tür sorunların çıkmasını engeller. EST imza atılırken kullanılan örnek kodun aynısı sadece eklenecek imza türü değiştirilerek kullanılabilir.
-Calendar time = estSign.getTime();​ +
-System.out.println(time.getTime().toString());​ +
-</​sxh>​ +
-<sxh csharp;​title:​C#>​ +
-BaseSignedData bs = new BaseSignedData(input);​ +
-EST estSign = (EST)bs.getSignerList()[0];​ +
-Console.WriteLine(time.Value.ToString());​ +
-DateTime? time = estSign.getTime();​ +
-</​sxh>​ +
-===== ESXLong ===== +
-ESXLong imza aynı zamanda bir EST  imzadır. ESXLong, ​ESTimzadan ​farklı olarak imza içerisinde sertifika doğrulamada kullanılacak doğrulama verisini içerir. . Bundan dolayı ESXLong imza atılırken veya bir imza ESXLong’a çevrilirken sertifika doğrulama işlemi yapılmak zorundadır. Sertifika ​ ömrü ​  ​dolduktan ​ sonra   ​doğrulamada kullanılacak veriye ulaşmada sorunlar çıkabilir. ​ ESXLong imza doğrulama verisini içinde barındırdığından bu tür sorunların çıkmasını engeller.EST imza atılırken kullanılan örnek kodun aynısı sadece eklenecek imza türü değiştirilerek kullanılabilir. +
-===== ESA =====+
  
-ESA  tipi kriptografik algoritmaların zamanla güvenilirliğini ​ kaybetmesine karşı geliştirilmiş bir imza türüdür. Şu anda  güvenerek kullandığımız ​ algoritmalar,​ 5-10  yıl sonra güvenilemez olabilir. Bu  algoritmalar güvenilmez duruma geçmeden önce, imzaların ESA tipine ​ çevrilmesi ​ gerekmektedir. ​ Yalnız ​ imza  atıldıktan ​ hemen sonra   ​imzanın ​ ESA'ya çevrilmesi fazladan bir güvenlik sağlamaz. Algoritmaların bir  kısmı güvenilmez duruma geçerken, daha  güvenilir yeni algoritmalar kullanılmaya ​ başlanacaktır. ESA  tipine çevrim sırasında bu yeni algoritmalar kullanılmalıdır.+==== ESA ====
  
-ESA'yı kullanmanın bir diğer amacı imza üzerinde değişiklik yapılmasını engellemek ​olabilir. ​Eğer   ​seri ​imza kullanılıyorsa; ​ ​ESA'​ya ​çevrilen imzanın  ​altındaki  imzaları veri yapısında bir değişiklik yapılamazBu  değişiklikler ​ imza türünün değiştirilmesi, ​ imzanın silinmesi, ​yeni imza eklenmesi olabilir.+ESA imza tipi kriptografik algoritmaların zamanla güvenilirliğini  kaybetmesine karşı geliştirilmiş bir imza türüdür. Şu anda  güvenerek kullandığımız  algoritmalar,​ 5-10  yıl sonra güvenilemez ​olabilir. ​Bu  algoritmalar güvenilmez duruma geçmeden önce, imzaların ESA tipine ​ çevrilmesi ​ gerekmektedir. ​ Fakat imza  atıldıktan  hemen sonra   ​imzanın ​ ​ESA'​ya ​çevrilmesi fazladan bir güvenlik sağlamaz. Algoritmaların bir  kısmı güvenilmez duruma geçerken, daha  güvenilir yeni algoritmalar kullanılmaya  başlanacaktırESA  tipine çevrim sırasında bu yeni algoritmalar kullanılmalıdır.
  
-Bir imza atılırken ESA tipinde atılamazÖncelikle başka  bir tipte atılmalı, daha  sonra ESA  ​tipine çevrilmelidir. Nasıyapılacağına [[esya:​cades:​imza-donusum|İmza Tipleri Arasında Dönüşüm]] bölümünden bakabilirsiniz.+ESA'​yı kullanmanın bir diğer amacı da imza üzerinde değişiklik yapılmasını engellemek olabilir. ​ESA ile imzanın altındaki tüm seri imzalar korunurBu yüzden seri imzalar için ayrıca arşiv zaman damgası almaya gerek yoktur. Eğer   seri imza kullanılıyorsa; ​ ESA'ya çevrilen imzanın ​ altındaki  imzaların ​ veri yapısında bir değişiklik yapılamaz. Bu  değişiklikler  ​imza türünün değiştirilmesi, ​ imzanın silinmesi olabilir. Arşiv zaman damgası v2 özelliği bulunduran ES-A tipindeki imzada, yeni bir seri imza yahut doğrulama verisi de imzaya eklenemez. Arşiv zaman damgası v3 özelliği bulunduran ES-A tipindeki imzada ise, bu eklemeler yapılabilir.
  
-ESA  tipine dönüşüm sırasında arşiv tipi zaman  damgası kullanılmaktadır. ​ Bundan dolayı parametreler yardımıyla zaman damgası ayarları verilmelidir.+Bir imza atılırken ESA tipinde atılamaz. Öncelikle başka ​ bir tipte atılmalı, daha  sonra ESA  tipine çevrilmelidir. ​ESA  tipine dönüşüm sırasında arşiv tipi zaman  damgası kullanılmaktadır. ​ Bundan dolayı parametreler yardımıyla zaman damgası ayarları verilmelidir.
  
 <sxh java;​title:​Java>​ <sxh java;​title:​Java>​
esya/cades/imza-tipleri.1374666352.txt.gz · Son değiştirilme: 2013/07/24 11:45 Değiştiren: Beytullah Yiğit