Proje Kodu ve Adı: | Biometrix: Artifical Intelligence Assisted Biometric Signature on Blockchain |
Proje Takımı: | Taylan Akbas, Ahmet Şen, Doruk Mestanoğlu |
Proje Danışmanları: | Doç. Dr. Ahmet Hasan Koltuksuz |
Proje Çıktıları: | 1. Final Report
2. Requirements Specifications Document 3. Design Specifications Document 4. Product Manual 5. Biometrix Mobile App 6. Biometrix Data-API 7. Biometrix Admin-Web 8. Product Web Site 9. Poster 10. Presentation 11. Product Demo Video |
Proje Web Adresi: | https://biometrix.pythonanywhere.com/ |
Proje Özeti
1. Giriş Kimlik doğrulama, veri boyutu ve kullanıcı sayısı arttıkça giderek daha önemli hale gelmektedir. Doğrulama birçok şekilde yapılabilir ancak yöntemler arasında imzanın tarihi oldukça eskiye dayanmaktadır. İmza, hemen her toplumda iki veya daha fazla taraf arasında yapılan anlaşmalarda tarafların kimliğini simgeler. Atılan imza taklit edilemez ve karmaşık kaligrafide olmalıdır. Günümüzde atılan ıslak imzalar, adli grafoloji uzmanlarınca belli kriterler esas alınarak başka imzalarla karşılaştırılabilinir. Ancak teknolojinin günlük hayatta kullanılan uygulamalar ve cihazlardaki gelişimi ile kişinin biyometrik imzasını sayısal ortama aktarması mümkün olmuştur. Bu değişim, imza karşılaştırma ve doğrulama yöntemlerini kökten değiştirmiştir. İmzacının stylus (dijital kalem) kullanarak kendi el yazısı ile tablete, cep telefonuna veya bilgisayara attığı imza, normal bir kalem ile attığı ıslak imza gibi kişinin biyometrik verisidir. Bu biyometrik veri genellikle kimlik doğrulama işlemleri için kullanılır. Retina, parmak izi gibi çeşitli doğrulama sistemleri olsa da biyometrik imzanın kullanımı birçok açıdan diğer sistemlerden öndedir. Biyometrik sistemlerde her zaman kullanıcıların hassas verilerinin çalınma endişesi vardır. Bir kez böyle bir zarara uğranırsa geri dönüşü yoktur. Parmak izi veya retina bilgisi değiştirilemez verilerdir. Fakat aynı senaryoda imzacı her zaman kendi imzasını değiştirebilir. İmza verisi son derece dinamik bir yapıya sahiptir. Atılan her imza, yüzlerce ayrı noktadan oluşur. Her bir nokta, koordinat bilgisinden noktanın bağıl hızı bilgisine kadar birçok farklı değer barındırır. Tüm bu değerler kişinin imzasını oluşturur. Bu kompleks veri yapısı, biyometrik imzaları kolay değiştirilir ancak zor taklit edilir kılar. Amacımız, Biometrix sistemi ile kullanıcılara istedikleri bir dosyaya kendi biyometrik imza atmalarını, imzanın doğrulanmasını ve her bir imza işleminin yönetimi ve bakımını kolaylıkla gerçekleştirebilecekleri bir ortamı sağlamaktır. Sistemin en çok önem vereceği konu, saklanacak bilginin biyometrik veri olması sebebiyle güvenliktir. Bu şartlarda güvenliği sağlarken uluslararası standartlara uygun ve son teknoloji yöntemleri kullanmak kritik öneme sahiptir. |
3. Dizayn ve Implementasyon
Biometrix sistemi 3 ana parçadan oluşur. Biometrix Client-Mobil, Biometrix Admin-Web ve Biometrix Data-API. Her bir parça, projenin gereksinimlerini karşılayacak üzere tasarlanmıştır ve bu her parçanın tasarımı ayrı bakış açılarını karşılamak için aşamalara ayrılmıştır.
• Sistem servisleri ve kullanıcılar kontekst bakış açısında, • Sistemin soyutlanması ve tekrar kullanılabilir parçaların ayarlanması mantıksal bakış açısında, • Sistemin parçalarını amaçlarına göre ayırılması bağımlılık bakış açısında, • Dizayn modelleri model bakış açısında ve • Kullanıcı arayüz tasarımını arayüz bakış açısında incelenmiştir.
Biometrix Client-Mobil: Uygulama, müşteri ve limitli kullanıcılara erişim ortamı sağlamak için tasarlanmıştır. İlgili rollerin gerekli aksiyonları alabilmeleri için uygulamada 4 ayrı ekran vardır: Giriş (Login) ekranı, Anasayfa (Dashboard) ekranı, Müşteri (Clients) ekranı ve Dökümanlar (Documents) ekranı. Giriş: Limitli kullanıcıların uygulamaya giriş yapabilmeleri için önceden sisteme kaydedilmiş olmaları gerekir. Limitli kullanıcı bilgileri ve doğrulama bilgileri Firestore Database’de saklanır. Limitli kullanıcılar sistemdeki kayıtlı mail adreslerini ve şifrelerini girerek uygulamaya erişebilir. Hatalı mail veya şifrede hata mesajı görüntülenir. Anasayfa: Bu ekran diğer sayfalara geçiş yapabilmek için bir karşılama ekranı olarak tasarlanmıştır. Aynı zamanda sisteme dair bazı bilgileri ve yapılan son işlemlerin görüntülenmesini sağlar. Müşteriler: Limitli kullanıcılar bu ekranı kullanarak sisteme yeni müşteriler kaydedebilir. Müşteriden imzasını almadan önce isim, soyismi bilgisinin girilmesi ve müşteriye ait eşsiz bir kimlik numarası girilmelidir. İmzacı ekrana dijital kalem yardımıyla 5 (beş) kez imza atmalıdır. İmza atıldıktan sonra sistemden onay ya da red mesajı uygulama tarafında görüntülenir. Dosyalar: Bu ekran, uygulamanın birçok aksiyonunu almak için tasarlanmıştır. Ekranın önemli bir kısmını editör doldurur. Dosyalar listesi editörün yanında yer alır ve seçilen dosyaların içeriği editörde görüntülenir. Limitli kullanıcılar dosya içeriğini düzenleyebilir, kaydedebilir ya da silebilir. Dosya seçildikten sonra, müşterinin kimlik numarası girilmelidir. Bu işlemler hazır olunca imzacı imzasını ekranda açılacak imza ekranına atabilir. İmza atıldıktan sonra sistem, imzanın fotoğrafını, doğrulama skorunu, eşik değerini ve fark değerini ekrana döndürür. Limitli kullanıcı gelen sonuca göre işlemi onaylar ya da tekrarlanmasını ister. İmzayla ilgili yapılan tüm işlemler ve sistemin çalışma mantığı bir sonraki bölümde açıklanmıştır. Biometrix Data-API: Biometrix sisteminin en önemli parçasını oluşturan bu RESTful API, imza modeli oluşturma, imza tanıma, blockchain işlemlerini yapmaktan sorumludur. Toplamda 8 ayrı isteğe cevap verir ve bu istekler Client-Mobil ve Admin-Web tarafından yapılır. Bu bölümde API’ın fonksiyonelliği istekler yerine istenen aksiyonlara bölünerek anlatılmıştır. ‣ Model Oluşturma: Model oluşturma aslında kendi içinde 4 aşamaya bölünmüştür. Bu aşamalardan ilki, imzanın sayısallaştırılması, mobil uygulama tarafından yapılır. İmzacı imzasını atarken uygulama, imzadaki her bir noktanın bilgilerini kaydeder. Her bir nokta; koordinat bilgisi, basınç, hız, ivme, eğim, azimuth açısı ve zaman damgasından oluşur. İmzacının modelini oluşturabilmesi için sistemde 5 farklı imzasının sayısallaştırılmış şekilde kayıtlı olması gerekir. Her imza atıldıktan sonra uygulamadan sunucuya istek yapılır. İmzalar sunucuya kaydedildikten sonra, ikinci olarak, imzaların her biri için öznitelik çıkarımı (feature extraction) yapılır. Bu işlem sayesinde toplamda 20 lokal özellik imzadaki her bir nokta için çıkarılmış olur. Özelliklerin her biri aslında imzacının biyometrik imzasını oluşturur. Bu aşamada normalizasyon operasyonları da yapılarak, sayısal değerler birbirine yakın aralıklara getirilir. Üçüncü aşama, imzaların kendi aralarında karşılaştırılmasıdır. Her bir imza, kendi dışındaki dört imzayla karşılaştırılır. Böylece kayıtlı 5 imzayı ikili eşleştirerek toplamda 10 kez karşılaştırma yapılır. Bu karşılaştırma, imzaların her bir noktası arasındaki mesafeyi hesaplayarak yaptırılır. Her bir imzanın, yüksek olasılıkla farklı sayıda noktadan oluşması sebebiyle Euclidian uzaklık formülünü kullanmak yerine zaman serilerini karşılaştırmada kullanılan ve aslen ses modellerini karşılaştırmak için kullanılan Dynamic Time Warping algoritması kullanılmıştır. Algoritma, her bir imza çifti arasındaki benzerliği hesaplar ve bu değer her çift için kaydedilir ve böylece son aşamaya geçilir. Son aşamada, 5 imza için toplamda oluşacak bu 10 değerin, aritmetik ortalaması imzacının eşik değerini belirler. Bu değer daha sonra imza doğrulamada kullanılmak üzere kaydedilir. |
‣ Modelin Blockchain’de Saklanması:
Sunucu, imzacının 5 imzasını, eşik değerini, kişisel bilgilerini içinde bulunduran özel bir blockchain yapısına ekler. Blok aynı zamanda kendinden önceki bloğun SHA-256 algoritmasını kullanarak hash değerini, bloğun oluşturulduğu zaman damgasını, index numarasını ve her blok için emek ispatı değerini (Proof of Work) kaydeder. Böylece imza sahiplerinin modellerinin değiştirilmesi ya da silinmesi durumunda sistem uyarı verir. Bu zincirde her bir blok, bir müşteriyi temsil eder. |
‣ İmza Doğrulama:
Uygulamada imza doğrulamaya başlamak için müşterinin imza modelinin oluşturulmuş olması gerekir. Doğrulama süreci, model oluşturmayla neredeyse aynı aşamalara sahiptir. Önce imzacının imzası, uygulama tarafından sayısallaştırılır. Ardından öznitelik çıkarımı yapılarak karşılaştırma için hazır hale getirilir. Bu sefer karşılaştırma, test imzası ve modeldeki 5 imza arasında yapılır. Her bir ölçüm sonucu daha sonra aritmetik ortalamaları alınması için saklanır. Bu ortalama değer yapılan testin skorunu verir. İmzanın doğrulanabilmesi için test skorunun müşterinin önceden kaydedilmiş eşik değerinden çıkarılması gerekir. Aradaki fark sıfıra ne kadar yakınsa, doğrulama o kadar başarılıdır. Sistem, farkı + 0.2’ye kadar tüm imzaları doğrulamak üzere ayarlanmıştır. 0.2’den büyük farkları sahte imza olarak tanımlar. Fark ne kadar yüksekse atılan imza o kadar başarısızdır. İmza doğrulama bittikten sonra doğrulama sonucu kullanıcıya geri döndürülür.
‣ İşlem: İmza doğrulamadan dönen sonuçlar şayet kullanıcı tarafından onaylanırsa, işlem (transaction) detayları sunucu tarafından kaydetmeye hazırlanılır. Bu aşamada işlemin detaylı rapor ve dosyaları kaydedilir. Rapor; işlem numarası, müşteri kimlik bilgileri, zaman damgası, müşterinin sayısal imzası, doğrulama sonucu, imza analizi, imza ve imzacının fotoğrafları ve imza atılan konumun koordinat bilgilerinden oluşur. Bu raporlar daha sonra sistem yöneticisi tarafından incelenebilir.
Biometrix Admin-Web: Projenin son parçası, yönetici rolünde sistemi kontrol edebilme ihtiyacını karşılar. Sistem yöneticileri, web sitesini kullanarak kendi çalışma ortamlarındaki işlemleri takip edebilir yada yapılan bu işlemler hakkında detaylı raporlar oluşturabilir. Bunun dışında, limitli kullanıcıları görüntüleyebilir, silebilir veya yeni kullanıcıları sisteme ekleyebilir.
5. Sonuç Sistemin imza tanıma algoritmasının performansını ölçmek için testler yapılmıştır. Testler için 5 farklı imzacının imza modelleri oluşturulmuştur. Ardından her bir imzacı için 10 adet gerçek imza, 10 adet profesyonel bir şekilde atılmış sahte imza ve 10 adet diğer kullanıcılardan rastgele alınmış imzalar toplanır. Toplanan imzalar sistemde test edilir. Test sonuçları, biyometrik sistemlerin etkinliğini değerlendirmede kullanılan bir oran olan Equal Error Rate (EER) hesaplaması sonucu bulunmuştur. Biometrix sisteminin EER sonucu: %7’dir. Biometrix, ilerde özel şirketlerden devlet kurumlarına birçok alanda hizmet verebilmek üzere tasarlanmıştır. Sistemin asıl odak noktası kullanıcılara müşterilerinin biyometrik datasını elde edebilme, doğrulama ve bu bilgileri güvenle saklayabilmektir. Kurumlar bu sistemi kullanarak kendi çalışma ortamlarına kolayca entegre edilebilecek, dosya imzalama ya da onaylama işlemlerini kolaylıkla takip edebilecekler. Kurgulanan sistemin ilk prototipi olan Biometrix, potansiyel iş ortaklarına projenin anlatılabilmesi için dizayn edilmiştir.
|