Bildiğiniz gibi yıllardır kullanılmakta olan "TC Kimlik Numarası Dorğulama Sistemi" kısa bir süre önce kaldırıldı. 21.05.2009 tarihinde "Nüfus İşleri Genel Müdürlüğü"nün sayfasından hiçbir açıklama yapılmadan kaldırılan bu sistem çoğu kişinin işine yarıyordu. Özellikle anonim katılımı engellemeye çalışan ciddi internet siteleri için oldukça önemli bir servis idi. Personel veya müşteri bilgilerini doğrulamak amacıyla da tercih ediliyordu. İnternetten alışveriş yapacak kişiler arasında bir güvenlik önlemi olarak da kullanıldığına şahit oldum.
Ne yazık ki uzun yıllardır ücretsiz olarak kullanılan bu sistem http://tckimlik.nvi.gov.tr/Web/default.aspx sayfasından kaldırılarak farklı bir isim altında (Kimlik Paylaşım Sistemi) ücretli olarak herkesin hizmetine girmiştir. Peki neden böyle bir şey yapıldı? Gerçekten merak konusu. Edindiğim bir takım bilgilere göre e-devlet uygulaması ve güvenlik nedeniyle böyle bir şey yapılmış. Fakat akıllarda soru işaretleri oluşuyor. Servis güvenli değilse neden bugüne kadar sorunsuz bir şekilde kullanıldı? Önemli bir güvenlik sorunu var ise bu servis neden KPS (Kimlik Paylaşım Sistemi) adı altında ücretli olarak devam ediyor?
Bahsetmek istediğim bir diğer konu ise bu servise ihtiyaç duyanların, ihtiyaçlarını nasıl karşıladıklarıdır. Çünkü hal böyle olunca alternatif çözümlere ihtiyaç duyuyor insan. Ufak bir araştırma sonucu kimlik numaralarının formülünün olduğunu öğrendim. Aynı zamanda doğrulama sistemine ihtiyaç duyanların bu formülü kullandığını anladım. Algoritma ile küçük web siteleri ve programlar bile hazırlanmış. Yalnız bu algoritma ile sadece kimlik numarasının geçerli olup olmadığını öğrenebiliyorsunuz. "Nüfus İşleri Genel Müdürlüğü TC Kimlik Numarası Doğrulama Sistemi" gibi değil. O yüzden ihtiyacın tam anlamıyla karşılandığı söylenemez. Çünkü art niyetli kişiler bu algoritmayı biliyor olabilir. Hatta algoritmayla uğraşmak yerine başkalarının TC kimlik numaralarını kullanırlar. Sonuçta kötü yine kötüdür. Bu algoritmaya göre yazılan kodlar işe yarıyor olsa da gördüğünüz gibi ihtiyaçları karşılamıyor. Biraz da algoritmadan bahsedeyim.
TC Kimlik No Algoritması Hakkında:
Kimlik numaraları on bir basamaklı sayılardan oluşmaktadır. Yani on bir hanelidir. Algoritmadaki örnekler için Mernis Projesi kapsamında Atatürk'e verilen kimlik numarısını kullanacağım: 10000000146 [ Not: Sonundaki 46 rakamı algoritmadan kaynaklanmaktadır. Algoritmaya göre ilk numara olmaktadır. 10000000146 . Ayırca bununla ilgili hoş bir tesadüfte söz konusudur. İlk nüfus sayımının yapıldığı 1927 yılında Atatürk 46 yaşındaydı. ] Kendi kimlik numaranızda deneyebilrisiniz.
- Aslında kimlik numaralarımızın ilk dokuz basamağı bizim kimlik numaramızı belirlemektedir. Çünkü son iki basamak algoritmaya göre oluşturulmaktadır.
Formül:
a] 1. 3. 5. 7. ve 9. basamaklarının sayı değerleri toplamının 7 katından, 2. 4. 6. ve 8. basamaklarının sayı değerleri toplamı çıkartılır. Elde edilen sonucun 10'a bölümünden kalan(yani mod10) kimlik numaralarımızın 10. basamağına eşittir.
b] 1. 2. 3. 4. 5. 6. 7. 8. 9. ve 10. basamaklarının sayı değerleri toplamı 10'a bölünür. Elde edilen kalan(yani mod10) bize kimlik numaralarımızın 11. basamağını verir.
Bahsetmek istediğim bir diğer konu ise bu servise ihtiyaç duyanların, ihtiyaçlarını nasıl karşıladıklarıdır. Çünkü hal böyle olunca alternatif çözümlere ihtiyaç duyuyor insan. Ufak bir araştırma sonucu kimlik numaralarının formülünün olduğunu öğrendim. Aynı zamanda doğrulama sistemine ihtiyaç duyanların bu formülü kullandığını anladım. Algoritma ile küçük web siteleri ve programlar bile hazırlanmış. Yalnız bu algoritma ile sadece kimlik numarasının geçerli olup olmadığını öğrenebiliyorsunuz. "Nüfus İşleri Genel Müdürlüğü TC Kimlik Numarası Doğrulama Sistemi" gibi değil. O yüzden ihtiyacın tam anlamıyla karşılandığı söylenemez. Çünkü art niyetli kişiler bu algoritmayı biliyor olabilir. Hatta algoritmayla uğraşmak yerine başkalarının TC kimlik numaralarını kullanırlar. Sonuçta kötü yine kötüdür. Bu algoritmaya göre yazılan kodlar işe yarıyor olsa da gördüğünüz gibi ihtiyaçları karşılamıyor. Biraz da algoritmadan bahsedeyim.
TC Kimlik No Algoritması Hakkında:
- Aslında kimlik numaralarımızın ilk dokuz basamağı bizim kimlik numaramızı belirlemektedir. Çünkü son iki basamak algoritmaya göre oluşturulmaktadır.
Formül:
a] 1. 3. 5. 7. ve 9. basamaklarının sayı değerleri toplamının 7 katından, 2. 4. 6. ve 8. basamaklarının sayı değerleri toplamı çıkartılır. Elde edilen sonucun 10'a bölümünden kalan(yani mod10) kimlik numaralarımızın 10. basamağına eşittir.
b] 1. 2. 3. 4. 5. 6. 7. 8. 9. ve 10. basamaklarının sayı değerleri toplamı 10'a bölünür. Elde edilen kalan(yani mod10) bize kimlik numaralarımızın 11. basamağını verir.
1 0 0 0 0 0 0 0 1 4 6
(1+0+0+0+1)*7 - (0+0+0+0) = 4(mod10)
(1+0+0+0+0+0+0+0+1+4) = 6(mod10)
Temel formül budur. Türkiye Cumhuriyeti Kimlik Numarası sayfasından daha ayrıntılı bilgi edinebilirsiniz. Sayfanın son iki cümlesinde iki farklı formül daha anlatılmaktadır ("Üzerinde basit" ve "Ayrıca" diye başlayan cümleler).
Kimlik numaralarımızın algoritması bu şekildedir. Algortimadan da anlaşılacağı üzere tek rakamla biten bir TC kimlik numarası yoktur. Neden bütün TC kimlik numaralarının çift sayı olduğu başka bir deyişle çift rakamla bittiği sorusu da cevap bulmuş oluyor.
"TC Kimlik No" algoritması için yazılan kodlara ihtiyacı olanlar buralardan faydalanabilir. Örnek uygulamalara da bakabilrisiniz:
-Microsoft SQL Server - TC Kimlik No Doğrulama Algoritması
-TC Kimlik numarası doğrulama kodları ve örnek uygulaması
-TC Kimlik No Algoritması - C#/VB
(1+0+0+0+1)*7 - (0+0+0+0) = 4(mod10)
(1+0+0+0+0+0+0+0+1+4) = 6(mod10)
Temel formül budur. Türkiye Cumhuriyeti Kimlik Numarası sayfasından daha ayrıntılı bilgi edinebilirsiniz. Sayfanın son iki cümlesinde iki farklı formül daha anlatılmaktadır ("Üzerinde basit" ve "Ayrıca" diye başlayan cümleler).
Kimlik numaralarımızın algoritması bu şekildedir. Algortimadan da anlaşılacağı üzere tek rakamla biten bir TC kimlik numarası yoktur. Neden bütün TC kimlik numaralarının çift sayı olduğu başka bir deyişle çift rakamla bittiği sorusu da cevap bulmuş oluyor.
"TC Kimlik No" algoritması için yazılan kodlara ihtiyacı olanlar buralardan faydalanabilir. Örnek uygulamalara da bakabilrisiniz:
-Microsoft SQL Server - TC Kimlik No Doğrulama Algoritması
-TC Kimlik numarası doğrulama kodları ve örnek uygulaması
-TC Kimlik No Algoritması - C#/VB