Ana içeriğe geç

Kanıt Zinciri (Audit Chain)

AnchorSpot kanıt zinciri, captive portal sisteminde gerçekleşen tüm olayları değiştirilemez biçimde kaydeden, hash zinciri ve RFC 3161 zaman damgası teknolojisine dayanan bir uyum altyapısıdır.

Hash Zinciri Yapısı

Her kayıt, bir önceki kaydın hash değerini ve kendi içeriğini kapsayan SHA-256 karması ile oluşturulur:

hash_chain_value = SHA256(previous_hash + current_record_json)

Başlangıç (genesis) kaydı:

{
"record_id": 1,
"previous_hash": "0000000000000000000000000000000000000000000000000000000000000000",
"event_type": "chain_init",
"tenant_id": "tenant_01HXQ2K9",
"timestamp": "2024-01-01T00:00:00.000Z",
"hash_chain_value": "a3f8c2e1d4b70912..."
}

Sonraki kayıt:

{
"record_id": 2,
"previous_hash": "a3f8c2e1d4b70912...",
"event_type": "session_start",
"payload": { "mac": "AA:BB:CC:DD:EE:FF", "identity": "+90532****567" },
"timestamp": "2024-01-01T08:14:33.000Z",
"hash_chain_value": "7b4d9f3ac1e5a8b2..."
}

Herhangi bir kayıt değiştirilirse o kaydın hash değeri değişir ve zincirleme olarak sonraki tüm kayıtların hash değerleri geçersizleşir. Bu durum tahrifatı matematiksel olarak kanıtlar.

Zincire Yazılan Olay Türleri

Olay TürüTetikleyici
session_startMisafir kimlik doğrulamayı tamamladı
session_endOturum süresi doldu veya cihaz ayrıldı
session_extendYönetici oturumu uzattı
session_revokeYönetici oturumu zorla sonlandırdı
auth_successKimlik doğrulama başarılı
auth_failureKimlik doğrulama başarısız
voucher_createYeni voucher oluşturuldu
voucher_redeemVoucher kullanıldı
voucher_expireVoucher süresi doldu
sponsor_decisionSponsor onayladı veya reddetti
admin_loginYönetici paneline giriş
admin_changeYapılandırma değişikliği
mac_blockMAC adresi engellendi
data_exportKanıt paketi dışa aktarıldı
chain_anchorGünlük Merkle kökü oluşturuldu

Günlük Merkle Kökü ve RFC 3161 Zaman Damgası

Her gece 00:05 UTC'de çalışan otomatik süreç:

Gün içinde oluşan tüm kayıtlar

┌────────┴────────┐
│ Merkle Ağacı │
│ ┌────┬────┐ │
│ │L1 │L2 │ │
│ └─┬──┴─┬──┘ │
│ └────┘ │
│ Kök Hash │
└────────┬────────┘

TÜBİTAK Kamu SM TSA
(RFC 3161 zaman damgası)

.tst token (ASN.1 DER)

AnchorSpot veritabanı
+ yerel yedek (WORM)

Zaman damgası token'ı aşağıdaki alanları içerir:

  • TSA sertifikası: TÜBİTAK Kamu SM imzası
  • Hash algoritması: SHA-256
  • Damgalanan hash: Günlük Merkle kökü
  • Doğruluk zamanı: UTC, milisaniye hassasiyetiyle
  • Seri numarası: Tekil token kimliği
bilgi

TÜBİTAK Kamu SM, Bilgi Teknolojileri ve İletişim Kurumu (BTK) tarafından yetkilendirilmiş bir Onaylı Elektronik Sertifika Hizmet Sağlayıcısıdır. Verilen zaman damgaları 5070 sayılı Elektronik İmza Kanunu kapsamında yasal geçerliliğe sahiptir.

Tahrifat Tespiti

Zincirde herhangi bir kayıt değiştirilirse, silinirse veya eklenirse bütünlük doğrulaması başarısız olur:

# Zincir bütünlüğünü doğrula
anchorspot-verify chain \
--start 2024-01-01 \
--end 2024-01-31

# Örnek başarılı çıktı:
# ✓ 47,832 kayıt kontrol edildi
# ✓ Merkle kökü 31 günlük TSA token ile eşleşiyor
# ✓ Zincir bütünlüğü: TAMAM

# Örnek başarısız çıktı:
# ✗ Kayıt #12,847: Hash uyuşmazlığı tespit edildi
# Beklenen: a3f8c2e1...
# Bulunan: 99b7f4d2...
# ✗ Bu noktadan itibaren 1,204 kayıt geçersiz

Dışa Aktarma ve İçerme Kanıtları

Kanıt zinciri ZIP paketi, her kayıt için bireysel Merkle ağacı içerme kanıtı (inclusion proof) içerir. Bu kanıt, belirli bir kaydın belirli bir günün Merkle ağacına dahil olduğunu matematiksel olarak kanıtlar:

{
"record_id": 12847,
"leaf_hash": "c1e5a8b2f4d9...",
"merkle_path": [
{ "position": "left", "hash": "7b4d9f3a..." },
{ "position": "right", "hash": "a3f8c2e1..." },
{ "position": "left", "hash": "9d2c7e4f..." }
],
"merkle_root": "f8a3c1e5...",
"tsa_token": "BASE64_ENCODED_TST..."
}
# API üzerinden kanıt paketi indirme
curl -X GET "https://api.siperone.com/v1/compliance/audit-chain" \
-H "X-API-Key: YOUR_API_KEY" \
-G \
--data-urlencode "start=2024-01-01" \
--data-urlencode "end=2024-01-31" \
--output audit-chain.zip

Paketin içeriği:

audit-chain.zip
├── manifest.json ← Paket bütünlük özeti
├── records.jsonl ← Tüm olaylar (JSONL formatı)
├── inclusion-proofs/
│ ├── record_12847.json ← Bireysel içerme kanıtları
│ └── ...
├── merkle-roots/
│ ├── 2024-01-01.json
│ └── ...
└── tsa-tokens/
├── 2024-01-01.tst ← RFC 3161 binary token (ASN.1 DER)
└── ...

Yasal Kabul

AnchorSpot kanıt zinciri aşağıdaki yasal çerçeveler kapsamında delil olarak kabul edilmektedir:

Kurum / ÇerçeveGeçerlilik
BTK (Bilgi Teknolojileri ve İletişim Kurumu)5651 denetimlerinde kabul
Türk Mahkemeleri5070 sayılı Kanun uyarınca elektronik delil
KVK KurumuKVKK denetimlerinde kabul
HMK (Hukuk Muhakemeleri Kanunu)Md. 205 uyarınca belge delili
ipucu

Hukuki süreç başlatmadan önce kanıt paketini indirip yerel olarak yedekleyin. Paketi indirdikten sonra data_export olayı zincire eklenir; bu da paketin ne zaman, kim tarafından talep edildiğini kayıt altına alır.

Denetim Görünümü

Konsol üzerinden Uyum → Denetim Kaydı bölümünde:

  • Tüm olaylar kronolojik sırayla listelenir
  • Olay türüne, kullanıcıya veya tarih aralığına göre filtrelenebilir
  • Her kaydın hash değeri ve zincir pozisyonu görüntülenebilir
  • Anlık bütünlük durumu gösterilir (yeşil = tamam, kırmızı = uyuşmazlık)
uyarı

Zincir sağlığı uyarısı aldığınızda derhal kontrol edin. BTK denetimlerinde kesintisiz zincir bütünlüğü aranır.