Makine tarafından okunabilir bölgesi (MRZ) her kontrol hanesinden geçen bir pasaport güven verir. Aritmetik tutar, doğrulayıcı beş kez true döner ve müşteri kabul akışı ilerler. Bu true değerinin tam olarak ne anlama geldiğini net bilmek gerekir, çünkü göründüğünden daha küçük bir söz verir.
Bu rehber, KYC ve müşteri kabul akışları geliştiren yazılımcılar için. Olağan tarama kontrollerini üç gruba ayırıyor: MRZ kontrol hanelerinin yakaladıkları, yakalayamadıkları ve her boşluğu hangi başka kontrolün kapattığı. Aşağıdaki her bölge ICAO'nun kendi örneği olan "Utopia"lı Anna Maria Eriksson'dur ya da bu yazı için uydurulmuş bir varyantıdır. Hiçbir gerçek belge yer almıyor.
Burası doc.cheap'in blogu; doc.cheap bir pasaport ve kimlik OCR API'si. Aşağıdakilerin hiçbiri ona ihtiyaç duymuyor.
Haneler ne için var
MRZ, pasaportun fotoğraflı sayfasının altında ya da kimlik kartının arkasında duran büyük harf, rakam ve < dolgu karakterlerinden oluşan bloktur. ICAO Doc 9303 ona kontrol haneleri verir: belge numarası, doğum tarihi ve son geçerlilik tarihi için birer tane, pasaportlardaki isteğe bağlı kişisel numara için bir tane ve alt satırın büyük kısmını kapsayan bir bileşik hane.
Her hane ağırlıklı bir toplamdır. Her karakter bir sayıya dönüşür (0–9 kendi değeriyle, A = 10'dan Z = 35'e kadar, < = 0), sayılar tekrar eden 7, 3, 1 ağırlıklarıyla çarpılır ve toplamın 10'a göre modu haneyi verir. MRZ kontrol haneleri nasıl çalışır yazısı, yapıştırıp kullanabileceğiniz bir doğrulayıcıyla bunu adım adım anlatıyor.
Haneler okuma hatalarını yakalamak için tasarlandı. Sahteciliği tespit etmek hiçbir zaman amaçları olmadı ve aşağıdaki her şey buradan çıkıyor.
Kontrol hanesi neyi yakalar
Tek bir yanlış rakam. 7, 3 ve 1'in 10 ile ortak böleni olmadığı için bir alandaki herhangi bir rakamı başka bir rakamla değiştirmek, toplamın 10'a göre modunu her zaman değiştirir. 8 olarak okunan bir 3, 6 olarak okunan bir 5: alanın hanesi tutmaz, bileşik hane de tutmaz.
Komşu iki karakterin çoğu yer değiştirmesi. Yan yana iki karakter yer değiştirirse toplam, değerlerinin farkı çarpı ağırlıklarının farkı (4, 2 ya da 6) kadar değişir. Bu yalnızca iki değer arasındaki fark 5'in katıysa 10'un katı olur. Yani 89 olarak girilen 98 yakalanır, 61 olarak girilen 16 ise gözden kaçar; 50 olarak girilen 05 de öyle.
Hasar, parlama ve elle yeniden yazma. Hanelerin asıl işe yaradığı yer burası. Bir karakterin üzerinden geçen kırışık, laminattaki bir yansıma, bölgeyi elle yeniden yazan biri: bozuk MRZ verisinin çoğu bunlardan gelir ve tutmayan bir hane, bir alanın yanlış okunduğunu gösteren ucuz bir sinyaldir. Doğru tepki reddetmek değil, yeni bir fotoğraf istemektir.
Aritmetiğin kör olduğu yerler
Hanelerin dürüst hatalarda bile boşlukları var ve bir tarama akışı bunları bilmeli.
Değeri 10, 20 ya da 30 farklı bir karakter olarak okunan harf. Kontrol hanesi 6 olan örnek belge numarası L898902C3'ü alın. C'yi (değer 12) bir 2 (değer 2) ile değiştirin: toplam 10 × 3 = 30 azalır, 316'dan 286'ya iner ve hane yine 6 olur. Aynı karakterleri aynı ağırlıkla kapsayan bileşik hane de geçmeye devam eder. B ile 1 ya da C ile 2 gibi çiftler hiç ses çıkarmadan yer değiştirebilir.
Hiçbir hanenin kapsamadığı alanlar. İsim, düzenleyen devlet, uyruk ve cinsiyet her alan hanesinin dışında kalır; bileşik hane de uyruğu ve cinsiyeti atlar. Yanlış okunan bir isim sessiz kalır; bunu yalnızca basılı sayfayla karşılaştırma gösterir.
Hiç yakalayamadıkları
Bu bölümdeki her şey, yapısı gereği MRZ kontrol hanelerinden geçer.
Kendi içinde tutarlı bir bölgeye sahip sahte belge. Algoritma herkese açık ve yirmi satır kod tutar. Sahte belge üreten herkes haneleri doğru hesaplar, çünkü yanlış bir hane her okuyucunun bedavaya yakaladığı tek hatadır. Geçen bir bölge, bölgenin doğru okunduğunu söyler. Belgenin gerçek olup olmadığı hakkında hiçbir şey söylemez.
Gerçek bir kişiden kopyalanan veri. Başka birinin gerçek adı, doğum tarihi ve belge numarasıyla kurulan bir bölgenin haneleri geçerlidir, çünkü veri gerçektir. Kameranın karşısındaki kişinin o kişi olup olmadığı ayrı bir sorudur: belge fotoğrafına karşı yüz eşleştirme, canlılık kontrolü ya da erişiminiz varsa düzenleyicinin kayıp ve çalıntı listesine karşı bir kontrol.
Süresi dolmuş belge. Son geçerlilik tarihi 120415 kontrol hanesinden geçer ve 15 Nisan 2012'dir. Süre dolması bir sağlama toplamı değil, tarihlerle ilgili bir kuraldır: tarihi bugünle karşılaştırın. YYMMDD biçiminde yüzyıl olmadığını unutmayın, onu bağlamdan belirleyin; nasıl yapılacağını YYMMDD tarih biçimi yazısı anlatıyor. Bu sitedeki MRZ kontrol hanesi hesaplayıcısı, geçmiş bir son geçerlilik tarihini hanelerin yanında süresi dolmuş olarak işaretler; böylece iki cevabı yan yana görürsünüz.
Değiştirilmiş fotoğraf. MRZ ne bir resim ne de resim özeti (hash) taşır. Bilgi sayfasında değiştirilen bir fotoğraf bölgeye dokunmaz.
Klonlanmış ya da değiştirilmiş çip. Çipli bir pasaportta veri grupları düzenleyen devlet tarafından imzalanır ve bu imzayı doğrulamak (Passive Authentication, ICAO Doc 9303 Part 11) verinin düzenleyiciden geldiğini öğrenmenin yoludur. Bunun için NFC ile okuma ve düzenleyicinin sertifikaları gerekir. Sayfanın fotoğrafı ne kadar iyi olursa olsun bu soruyu cevaplayamaz. MRZ yalnızca çipi açmak için kullanılan erişim anahtarını sağlar.
Herkesin atladığı kontrol: bölgeyi sayfayla karşılaştırmak
Bir belge çoğu şeyi iki kez söyler: bir kez MRZ'de, bir kez de görsel inceleme bölgesinde (VIZ), yani bir insanın okuduğu basılı sayfada. İkisi tek bir düzenleyici tarafından birlikte üretilir; bu yüzden gerçek ve hasarsız bir belgede birbirini tutar.
Bu da bir uyuşmazlığı tutmayan bir haneden daha ilginç kılar. Tutmayan hane genellikle kötü bir fotoğraf demektir. Geçen hanelerin yanında farklı bir şey söyleyen basılı bir soyadı, doğum tarihi ya da belge numarası ise taraflardan birinin yanlış okunduğunu ya da baskıdan sonra değiştirildiğini gösterir. Her iki durumda da bu belgeye bir insanın bakması gerekir.
Karşılaştırma bilinçli olarak yapılmalı. İki bölgeyi de okuyun, basılı değerleri normalleştirin (tarihleri aynı biçime getirin, isimleri yalın büyük harflere indirin) ve alan alan karşılaştırın. Harf çevirisini hesaba katın: basılı Müller, düzenleyiciye göre bölgede MUELLER ya da MULLER olabilir. MRZ biçimleri sayfası her düzenin hangi alanları taşıdığını, dolayısıyla hangilerinin karşılaştırılabileceğini gösteriyor.
Sağlam bir tarama sırası
- Şekil. Satır sayısı ve uzunluğu TD1, TD2 ya da TD3'ü belirler. Yanlış şekil kötü bir okumadır.
- Kontrol haneleri. Başarısızlık reddetmek değil, yeniden fotoğraf çekmek demektir.
- Bölge ve sayfa. Haneler geçerken çıkan uyuşmazlık bir insana gider.
- Tarihler. Son geçerlilik bugüne karşı; doğum tarihi yaş kurallarınıza karşı.
- Kimlik. Belge fotoğrafına karşı yüz eşleştirme ve canlılık.
- Özgünlük. NFC üzerinden çip doğrulaması ya da fiziksel güvenlik öğelerinin bu iş için yapılmış bir hizmetle kontrolü.
1'den 4'e kadar olan adımlar ucuzdur ve her görüntüde çalışır. 5 ve 6 ayrı ürünlerdir ve ne kadar MRZ aritmetiği yapılırsa yapılsın onların yerini tutmaz.
doc.cheap nereye oturur
doc.cheap pasaport OCR API'si 1'den 4'e kadar olan adımları kapsar ve geri kalanı hakkında dürüstçe rapor verir. Yanıtı mrz.status taşır: passed, failed ya da absent. failed durumunda mrz.reason neyin tutmadığını söyler: ya bir hane (Check digit failed for: document number) ya da basılı sayfayla bir uyuşmazlık (MRZ does not match the visual zone for: surname), çünkü iki bölge de varsayılan olarak okunur ve karşılaştırılır. Bölgenin kendisi mrz.lines ve mrz.text içinde olduğu gibi döner; böylece haneleri kendi kodunuzda yeniden hesaplayabilirsiniz. document.expiry_date, document.is_expired ve document.days_remaining 4. adımı cevaplar.
Bu bir tanıma hizmetidir, doğrulama hizmeti değil. authenticity bloğu bir geçiş ima etmek yerine not_checked der; fotoğraf ve çip kontrolleri bunlar için yapılmış araçlarda kalır. Bir bölgeyi hiç kod yazmadan denemek için onu MRZ kontrol hanesi hesaplayıcısına yapıştırın; tarayıcıda çalışır ve hesaplanan her haneyi basılı olanın yanında gösterir. Barındırılan bir hizmet seçiyorsanız pasaport OCR API karşılaştırması yayımlanmış fiyatları yan yana koyuyor.
Size bir soru: bu boşluklardan hangisiyle müşteri kabul akışınız pratikte karşılaştı? Aşağıdaki yorumlarda anlatın.