NFC çipli kimlik doğrulama, dijital KYC sürecinin teknik olarak en zorlu adımlarından biri. TC kimlik kartının (TCKK) NFC çipinden imzalı veri okumak, kullanıcının cihazı, fiziksel temas kalitesi ve uygulamanın retry mantığına aşırı bağımlı. Doğru kurulduğunda kimlik içeriğinin matematiksel olarak doğrulanmasına izin verir — hiçbir fotoğraf veya OCR çözümü bu garantiyi vermez. Bu rehber TCKK NFC okumanın adımlarını, ICAO 9303 PKD imza doğrulamasını ve sahadan başarı oranı verilerini anlatıyor.
NFC Çipli Kimlik Doğrulama Neden Önemli?
Bir kimlik fotoğrafı, photoshop ile değiştirilebilir; bir OCR çıktısı, üzerine basılan rakamları tekrar yazabilir. NFC çip ise farklı: çipteki veri, T.C. İçişleri Bakanlığı'nın kök sertifikasıyla imzalanmış. Çipi okuduğunuzda elinizdeki ad-soyad-doğum tarihi-fotoğraf bilgisinin gerçekten bu çipten okunduğunu ve devlet tarafından imzalandığını matematiksel olarak doğrulayabilirsiniz. Bu, ICAO 9303 standardının (uluslararası seyahat belgesi standardı, biyometrik pasaportta da kullanılıyor) Türkiye TCKK'sında uygulanmış halidir.
Pratik açıdan: bir saldırgan başkasının kimlik fotoğrafını ele geçirse bile, NFC çipinden okuma yapamaz çünkü fiziksel temas gerekiyor. Bu sebeple BDDK Uzaktan Müşteri Edinimi Yönetmeliği'nde ve SPK görüntülü kimlik tespitinde NFC okuma tercih edilen yöntem oldu. Detaylar için dijital KYC rehberimize bakın.
NFC Okuma için Gereklilikler
Donanım:
- NFC destekli akıllı telefon (Android API 19+ veya iOS 13+ Core NFC desteğiyle).
- TCKK — 2017 sonrası dağıtılan yeni nesil Türk kimlik kartı (sarı çipsiz eski kart desteklemez).
Yazılım:
- NFC erişim izni (Android'de
android.permission.NFC, iOS'ta entitlement). - ICAO 9303 PKD'den (Public Key Directory) güncel CSCA (Country Signing Certificate Authority) ve DSC (Document Signer Certificate) sertifikaları.
- BAC (Basic Access Control) veya tercihen PACE (Password Authenticated Connection Establishment) oturum kurma yeteneği.
MRZ Bilgisi:
- Doküman numarası, doğum tarihi, son geçerlilik tarihi — bunlar NFC oturumunu başlatmak için anahtar. Kullanıcıdan ya kartın arkasındaki MRZ alanını OCR ile okutarak ya da manuel olarak alınır.
1. Adım: MRZ veya CAN Bilgisini Yakala
NFC çip kendini şifre olmadan açmaz. Çipi okumak için bir "anahtar" lazım — bu anahtar üç parçadan oluşur:
- Doküman numarası (9 karakter, alfanumerik)
- Doğum tarihi (YYMMDD)
- Son geçerlilik tarihi (YYMMDD)
Bu üç bilgi MRZ alanının ikinci satırından çıkarılır. Kullanıcıdan kimliğin arka yüzünün fotoğrafını çekmesini iste, OCR ile MRZ satırını oku, üç alanı ayrıştır.
Alternatif olarak, kimlik kartının ön yüzündeki 6 haneli CAN (Card Access Number) kullanılabilir — PACE protokolüyle çalışır, MRZ'den daha kullanıcı dostu. Pratikte çoğu Türk SDK'sı önce CAN'i, fallback olarak MRZ'yi denemekte.
2. Adım: BAC veya PACE Oturumu Başlat
BAC (Basic Access Control) — eski standart, MRZ tabanlı şifre türetir, simetrik şifreleme kullanır. ICAO 9303 1. nesil belgelerin standardı.
PACE (Password Authenticated Connection Establishment) — yeni standart, modern eliptik eğri kriptografi kullanır, replay saldırılarına dirençli. TCKK PACE'i destekliyor.
Pratik tavsiye: önce PACE dene, başarısız olursa BAC fallback. Oturum başlatma genelde 200-400ms sürer; kullanıcı bu süreçte telefonu kıpırdarsa oturum kopabilir.
3. Adım: Data Group'ları Oku
Oturum başladıktan sonra çipteki "data group"lara erişebilirsiniz. TCKK'da kritik olanlar:
- DG1 — MRZ alanının düz metin hali (ad, soyad, TC No, doğum tarihi, vb.)
- DG2 — kimlik sahibinin fotoğrafı (JPEG2000 formatında)
- DG14 — Chip Authentication için public key
- DG15 — Active Authentication için public key
- SOD (Security Object Document) — DG'lerin hash'lerini ve devletin imzasını içerir
Bu DG'leri sırayla oku, her birinin SHA-256 hash'ini al, SOD içindekiyle karşılaştır. Eşleşmiyorsa veri kurcalanmıştır — reddet.
4. Adım: ICAO 9303 PKD ile İmza Doğrulama
Şimdi kritik adım: SOD'daki imza gerçekten devlet tarafından mı atılmış? Doğrulama zinciri şu:
- SOD imzasını DSC (Document Signer Certificate) ile doğrula.
- DSC'nin geçerliliğini CSCA (Country Signing CA) ile doğrula.
- Türkiye CSCA'sının ICAO PKD'de yayımlanmış halini referans al.
Eğer üç adım da geçtiyse, elindeki kimlik verisi resmen Türkiye Cumhuriyeti tarafından imzalanmış demektir. Bu doğrulama olmadan NFC okuma sadece "veri çıkardım" anlamına gelir — gerçek anlamda kimlik doğrulaması yapmış olmazsınız.
Pratik: ICAO PKD sertifikalarını günde 1 kez senkronize et; offline cache tut; CSCA güncellenince eski sertifikalı imzaların hâlâ doğrulanabileceğini unutma (CRL kontrolü).
5. Adım: Chip Authentication ve Active Authentication (İsteğe Bağlı)
Daha yüksek güvenlik için iki ek doğrulama:
Chip Authentication (CA) — çipin gerçek bir TCKK çipi olduğunu, klonlama yapılmadığını doğrular. DG14'teki public key ile karşılıklı anahtar değişimi yapılır.
Active Authentication (AA) — challenge-response: telefon rastgele bir sayı gönderir, çip kendi özel anahtarıyla imzalar, telefon DG15'teki public key ile doğrular. Eğer doğru imzayla yanıt gelirse çip kopya değil orijinaldir.
CA ve AA, üst-segment dolandırıcılık önleme için kritik. Yüksek riskli kuruluşlarda (banka, kripto borsa) standart pratik.
6. Adım: Fotoğraf ile Selfie Eşleştirmesi
NFC'den çıkan DG2 fotoğrafı, kullanıcının canlı selfie'siyle 1:1 biyometrik eşleştirmeye sokulur. Eşleşme skoru genelde 0-100; üretim eşiği 80+ ile başlar. Eşleşme skorundan önce mutlaka canlılık testi yap — yoksa basit bir fotoğraf-spoof'la kandırılırsın.
7. Adım: Hata Yönetimi ve Retry Akışı
NFC okuma her seferinde çalışmaz. Yaygın hata sebepleri:
- Kullanıcı kartı çok hızlı çekiyor (~ 5-10 saniye temas gerekli).
- Telefonun NFC anteni kartın çipiyle hizalı değil (Samsung'da arkada üst yarı, iPhone'da üst).
- Telefonun kılıfı metal içerikli — NFC sinyalini engelliyor.
- Kullanıcı eski (sarı, çipsiz) kimlik kartına sahip.
Üretim retry tasarımı:
- İlk deneme başarısız → kullanıcıya hizalama animasyonu göster, 2. deneme.
- deneme başarısız → kullanıcıdan kılıfı çıkarmasını iste, 3. deneme.
- deneme başarısız → OCR + MRZ fallback ile devam et veya görüntülü kimlik tespiti kuyrugu öner.
Bu üç katmanlı retry akışı tek seferlik %72 başarıyı %95+'a taşır.
Cihaz Bazlı Başarı Oranları (Türkiye Pazarı)
Tipik bir Türk neobank'ının anonimize verisi:
| Cihaz Segmenti | Tek Seferlik NFC Okuma Başarısı | Retry Sonrası Başarı |
|---|---|---|
| iPhone 11+ | %94 | %98 |
| Samsung S serisi (S20+) | %91 | %97 |
| Orta segment Android (Redmi, Honor, vb.) | %88 | %95 |
| Düşük segment Android | %72 | %88 |
iOS Core NFC API'si yıllar içinde stabilize oldu; Android tarafında üretici NFC sürücü kalitesi hâlâ değişken. Bir kullanıcının cihaz modeline göre dinamik UX talimatları göstermek (örn. "iPhone kullanıyorsanız kimlik kartını telefonun üst kısmına yaklaştırın") başarıyı yükseltir.
Yaygın Uygulama Hataları
Hata 1: PKD sertifikalarını cache'lememek. Her okuma için ICAO PKD'den sertifika çekmeye çalışmak ağ gecikmesi yaratır ve offline çalışmayı bozar.
Hata 2: SOD doğrulamasını atlamak. "NFC okuma başarılı oldu, demek ki kart gerçek" düşüncesi yanlış. SOD imza doğrulaması yapılmazsa bir saldırganın oluşturduğu sahte NFC tag bile geçer.
Hata 3: Sadece MRZ'ye güvenmek. Bazı SDK'lar NFC okuma başarısız olunca MRZ'yi düz metinden alıp "kimlik doğrulandı" olarak işaretliyor. Bu güvensiz; gerçek doğrulama imzalı veridir, MRZ değil.
Hata 4: Kullanıcıyı yönlendirmemek. "NFC okumayı başlatın" demek yeterli değil — telefonun hangi tarafına yaklaştıracak, ne kadar tutacak, kılıfı çıkaracak mı? Animasyonlu rehber başarıyı %15-25 artırır.
Sıkça Sorulan Sorular
Eski (sarı, çipsiz) Türk kimlik kartı ile NFC okuma yapabilir miyim?
Hayır. NFC çip sadece 2017 sonrası dağıtılan yeni nesil TCKK'da (turkuaz/mor kart) bulunuyor. Eski kimlik kartı kullanıcıları için OCR + MRZ + görüntülü kimlik tespiti yolu kullanılmak zorunda. Pratikte bugün aktif kullanıcı tabanının %92-95'i NFC'li kimliğe sahip, ancak yaşlı kullanıcı segmentinde bu oran %75-85'e iniyor — KYC akışınızda bu kullanıcıları kaybetmemek için fallback şart.
NFC okuma yerine sadece kimlik fotoğrafı kabul edebilir miyim?
BDDK Uzaktan Müşteri Edinimi Yönetmeliği bankalar için NFC okuma veya MRZ doğrulamasını şart koşuyor; sadece fotoğraf yeterli değil. SPK görüntülü kimlik tespiti tebliği yatırım kuruluşları için yine TCKK çip okumayı zorunlu sayıyor. E-para ve düşük riskli kullanım senaryolarında OCR + MRZ fallback kabul edilebilir, ancak yüksek riskli işlemler için NFC veya görüntülü tespit gerekiyor.
NFC okuma sırasında çiple yapılan iletişim güvenli mi?
PACE oturumu kuruldukan sonra tüm çip iletişimi şifreli (AES-128 veya AES-256). BAC daha zayıf bir şifreleme kullanır ama replay saldırısına karşı yine korumalıdır. Ancak fiziksel proximity gerekli — yaklaşık 4-5 cm'den uzakta okuma yapılamaz. Bu sebeple "uzaktan NFC okuma" diye bir şey teknik olarak mümkün değil; saldırganın telefonu fiziken kullanıcının kimliğine yaklaştırması lazım.
NFC okuma kaç saniye sürer?
Toplam süreç (oturum kurma + tüm DG'leri okuma + imza doğrulama) genelde 3-5 saniye. Yavaş cihazlarda 7-10 saniyeye çıkabilir. Kullanıcının telefonu hareketsiz tutması gereken minimum süre genelde 5 saniye; bu süre boyunca açıklayıcı animasyon göstermek başarıyı yükseltir.
NFC verisi MASAK arşivinde nasıl saklanmalı?
NFC'den okunan ham veri (DG'ler, SOD, imza) yanı sıra doğrulama sonucu (imza geçerli mi, hangi PKD versiyonu kullanıldı) audit log olarak saklanır. MASAK denetimi sırasında "bu kullanıcının kimliğini ne zaman ve nasıl doğruladınız?" sorusuna kanıt olarak sunulur. Saklama süresi 10 yıl; veri bütünlüğü için hash zinciri ile.
Legichain ile NFC çipli kimlik doğrulama
NFC okuma altyapısını sıfırdan kurmak — ICAO 9303 implementasyonu, PKD yönetimi, BAC/PACE oturum mantığı, cihaz başına kalibrasyon — 4-6 aylık özelleşmiş bir mühendislik işi. Yapsanız bile cihaz ekosistemi değiştikçe (yeni Android sürümleri, yeni iPhone modelleri) sürekli bakım gerekiyor. Legichain Dijital KYC SDK'sı NFC katmanını iOS ve Android için hazır sunuyor: PACE/BAC otomatik switch, PKD sertifika senkronizasyonu, retry akışı, cihaz başına adaptif UX. Mevcut müşteri onboarding akışınıza tek SDK çağrısıyla entegre ediliyor; arka tarafta NFC okuma sonucu + SOD imza doğrulaması + DG2 fotoğrafı ile selfie eşleştirmesi tek API yanıtında dönüyor. Yüksek riskli akışlar için canlılık testi ve görüntülü kimlik tespiti aynı SDK üzerinden devreye giriyor.
