5651 Sayılı Kanunda belirtilen Zaman Damgalı HASH Değeri

Jan 1st, 2008

Bilindiği üzere ilgili yönetmeliklerde kayıtların tutulması ve bu kayıt bilgilerinin doğruluğunun ve bütünlüğünün sağlanması için zaman damgalı bütünlük bilgileri üretilmesini gerektirmektedir. Tabii bu bilgilerinde güvenli bir yerde saklanması ve gerektiğinde yetkililere iletilmesini istemektedir (Telekomünikasyon Kurumu Tarafından Erişim Sağlayıcılara ve Yer Sağlayıcılara Faaliyet Belgesi Verilmesine İlişkin Usul Ve Esaslar Hakkında Yönetmelik. Madde 15b ve 16c).

Yasaya uyumluluk açısından aşağıda önerilen yöntemin uyumluluğu tartışmalıdır. Yalnız yönetmelikte belirtilen şartları da taşıdığı aşikardır. Burada kolaylık olması açısından PHP dili kullanılmıştır.İstenirse diğer dillerde de benzer yapılanma yapılabilir.

Kayıt bilgisi 1 günlük bilgiden oluşmaktadır. Yasa da bu bilgilerin hangi zaman aralıkları ile HASH işlemine tabii tutulacağı belirtilmemekle beraber data yoğunluğuna göre bir zaman aralığı seçilebilir. Bizim verilerimiz günlük olarak çok yer tutmuyor diyorsanız günlük seçmeniz size kolaylık sağlayacaktır.

#!/usr/bin/php

<?php

array_shift($argv);

if (count($argv) == 0) {

echo “Kullanim: hasla.php <DOSYA ISMI> .. ..\n” ;

}

foreach ($argv as $dosya) {

$md5_veri_zamansiz = md5_file($dosya);
$zaman = time();
$fzaman= date(’Y-m-d H:i:s’,$zaman);

$zamanli = $md5_veri_zamansiz.$fzaman;

$md5_veri = md5($zamanli);
echo “Dosya Ismi\t:$dosya\nVeri Has Degeri\t:$md5_veri_zamansiz\nZaman\t\t:$fzaman\nZamanli Has\t:$md5_veri\n” ;

}

?>

Kullanımı çok basit olan bu betik dosya ismin alıp sonuçta size saklamanız gereken bir bilgi veriyor. $ ./hasla.php
Kullanim: hasla.php <DOSYA ISMI>

$ ./hasla.php kayit-bilgi.01012008

Dosya Ismi :kayit-bilgi.01012008
Veri Has Degeri :8a66728c1dd36c82f19261c41c3ac44f
Zaman :2008-01-01 14:07
Zamanli Has :1cfae7b844390b3e4fa1c8abcb2d29d6

Son olarak da bu bilgiyi düzgün bir şekilde, güvenli bir yerde saklamak lazım. Son iki değerin saklanması yeterlidir. Bunları <DOSYA ISMI>.zmn-md5 olarak saklamak yararlı olabilir. Örneğin;

$ cat kayit-bilgi.01012008.zmn-md5

Zaman :2008-01-01 14:07
Zamanli Has :1cfae7b844390b3e4fa1c8abcb2d29d6

Buraya kadar yanlış birşey olmasa da eksik birşeyler var. Pratikte bu işlem kanunlar çerçevesinde güvenilir kurumlar tarafından para karşılığı yapılmaktadır. Bu kurumlar bu bilgileri kendi PRIVATE KEY’leri ile imzalamakta ve HASH değerlerinin güvenliğini sağlamaktadır. Bizim bu yöntemi uygulamak için bir nedenimiz yoktur. Çünkü yasal olarak böyle bir yapılandırma yapamayız. Daha doğrusu yaparız ama yasalarda geçerliliği olmaz. Bunun için yukarıdaki betik yeterli bir sonuç vermektedir. Bu sonuc ile çıkacak bilgiler çok yer kaplamayacağından güvenli bir yerde saklanabilir. Hatta bir veritabanı içerisinde saklamakta kolay olabilir.

Tabii birde zamanın güvenilirliği var. Bu konuda çok bir önerim yok. Ağ ve sistem yönetimlerinde iyi bir NTP (ağ zaman yönetimi) yönetimi önemlidir. Merkezi bir yapılandırma sistemlerinizi yönetmenizde çok yardımcı olacaktır. Böyle bir yapınız yok ise en kısa sürede bu yapıya geçmeniz yararlı olacaktır. Burada tekrar yönetmeliklerin bize güveni söz konusu olduğundan istenilen bir zaman yapısı kullanılabilir. Sonuçta denetleyen böyle bir gereklilik görmemiş.

Yorumlarınız bekliyorum. İyi yıllar.

Tags:
  1. msurucu
    Jul 5th, 2008 at 22:49
    Reply | Quote | #1

    Faydalı bir yazı, en azından fikir veriyor insana.
    Yalnız 1-2GB’lık bir dosyanın izini üretmek ne kadar vakit alıyor denemek gerek.
    Olmadı saatlik yapılabilir işlemler.

  2. Yılmaz ŞİPKA
    Jul 16th, 2008 at 17:03
    Reply | Quote | #2

    $fzaman= date(’Y-m-d H:s’,$zaman);

    satırında dakika yok

    $fzaman= date(’Y-m-d H:i:s’,$zaman);

    şeklinde olması gerekmez mi, yanlışlıkla mı atlandı yoksa özel bir sebebi mi var ?

  3. hdemir
    Aug 25th, 2008 at 16:19
    Reply | Quote | #3

    Atlamişiz. Konsa iyi olur :)

  4. Enis Karaarslan
    Mar 3rd, 2010 at 19:35
    Reply | Quote | #4

    http://www.metu.edu.tr/5651/files/Zaman_Damgasi-Web_Loglari.pdf
    adresinde log dosyalarına hash bilgisi eklenmesi güzel bir şekilde anlatılmış.

    Diyelim ki, gün sonunda bu süreci çalıştırıyoruz.
    gün içerisinde oluşan logların silinmediğini nasıl garanti edebiliriz?

  5. hdemir
    Mar 5th, 2010 at 11:02
    Reply | Quote | #5

    Yönetmelik bu konuda birşey belirtmemiş. Sorun olacağını zannetmiyorum.