Yazılım Mimarileri ve Tasarım Desenleri Üzerine

Asp.NET Core Identity – Two Factor Authentication Nedir?

Asp.NET Core Identity - Two Factor Authentication Nedir?

Merhaba,

Biliyorsunuz ki, evrendeki en komplike varlıklardan biri insanoğludur. Mükemmel ötesi karmaşık sistemlerin bir araya gelerek oluşturduğu insanoğlu tabiatın en büyük kazanımıyla şereflendirilerek keşfetme enerjisiyle donatılmış ve bu enerjinin istemsiz yarattığı bir vizyon eşliğinde yerküre tarihindeki yerini sarsılmaz bir noktaya kadar taşımıştır. İnsanoğlu keşfin verdiği güçle evrendeki sırları açığa çıkarma çabasını üstlenmiş ve hatta ifşa olmayan tüm sırlara Ferhat’ın Şirin için dağları delmesi misali büyük bir aşkla tutunarak uğruna nice bedeller ödemiştir ve hala ödemektedir. Bu fedakarca öğrenme telaşesinin yanında tabiat dengeyi sağlayabilmek için güven duygusunuda eklemiş ve bundan böyle insanoğlu keşfetmenin yanında elde ettiğinide muhafaza edebilmenin arayışına düşmüştür. İnsanlık tarihi, uzun ve meşakkatli bir zamanın gölgesinde tüm bu süreci bir gelenekten öteye taşıyarak taa genlerine kadar işlemiş ve ‘bilinmeyeni bilmek lakin eldekini ise gizlemek’ içgüdüsüyle günümüze kadar gelmiştir. Öyle ki, insan yaşamı boyunca en büyük hazinesi olan bilgiyi kendisiyle beraber toprak altına götürecek kadar gizliliğe önem vermiş ve bu sayede milyarlarca ilim ve fikirlerin milyarlarca bedenle beraber sonsuza kadar gömülmesine imkan tanımalarından dolayı yeryüzündeki en zengin yerlerin toprak altı olmasını sağlamıştır. Bu durum günümüz insanına beşeri yaşamda hayata karşı alınan gard olarak yansımıştır ve birçoğunun ruhundaki hazinenin parolasının gizlilikten ibaret olduğunu ortaya koymaktadır.

Günümüzde genler arasında en ağır basan ‘gizlilik’ geni kendisini hat safhada göstermekte ve her ne kadar insanoğlu yüksek teknolojide zirveye varmış olsada üretilen bilgileri ve verileri devasa mekanizmalarla gizlemeye çalışmakta ve bunun için gerekli maddi manevi maliyeti gözden çıkarmaktadır. Hatta gizlilik esaslı çalışmalara o kadar odaklanılmaktadır ki var olan önlemlerin üzerine operasyonel anlamda daha fazla derinlik kazandırılmakta ve böylece giz’e erişimin mümkün mertebe imkansız hale getirilmesi yahut kontrollü bir şekilde yetkilendirilmiş kişiler tarafından doğru ve tanımlanmış yöntemlerle erişilebilir kılınması amaçlanmaktadır.

İşte, esasında ‘gizlilik’ten doğan ihtiyaç bir noktadan itibaren güvenliğe evrilerek tüm elektronik ortamlarda dışarıdan kritik veriler için erişime engel oluşturmaya lakin bu engelli kontrollü bir şekilde aşılabilir kılmaya odaklanılmış ve günümüzde sanal inşaat sahasını kapsayan yazılım uygulamalarında veri güvenliği ve kullanıcı denetimi açısından oldukça önem arz eden gelişmelere sebebiyet vermiştir. Şimdi gelin gizliliğin elektronik ortamlardaki evrimi olan güvenliğin, yeni yaklaşım ve yöntemler eşliğinde, kimlik doğrulama mekanizmalarına yansımasını kuramsal izahatlerle değerlendirelim.

Authentication(Kimlik Doğrulama) Nedir?

Bir sisteme erişebilirlik ve müdahale edilebilirlik seviyesine sahip olan kişi olunduğunun beyan edilmesidir. Genellikle kullanıcı adı ve şifre bilgileri kullanılarak çoğu sistem tarafından yeterli seviyede kabul görmüş bir doğrulama yöntemidir. Lakin yetkilendirme(Authorization) ile karıştırılmamalıdır. Authentication kişinin sistem tarafından tanımlanmış kişi olduğunu ifade ederken, Authorization ise kişinin o anda ki işi yapmaya yetkisinin olduğunu ifade eder.

Temelde üç kabul üzerine kurulu bir mantığı vardır;

  1. Bildiğin bir şey olacak
    Sadece kullanıcının bildiği bir bilgiyi doğrulaması gerekmektedir. Örneğin; parola 😉
  2. Sahip olduğun bir şey olacak
    Sadece kullanıcının sahip olduğu bir bilgiyi eşleştirmesi gerekmektedir. Örneğin; bir token yahut doğrulama kodu.
  3. Olduğun bir şey olacak
    Kullanıcıyla bütün, o ya da onun bir parçası ile eşleştirilmesi gereken olgudur. Örneğin; parmak izi, yüz, göz, ses vs.

One Factor Authentication Nedir?


Kullanıcı adı ve şifre ile tek seferde yapılan kimlik doğrulamasıdır. Edinilen bilgilerin doğru olması neticesinde kullanıcıya sistem tarafından tanımlanmış tüm yetkiler çerçevesinde erişim izni verilir.

Two Factor Authentication(2FA) Nedir?


Bir sisteme erişebilirlik ve müdahale edilebilirlik yetkisini One Factor Authentication’da ki gibi tek seferlik kullanıcı adı ve şifre doğrulamasıyla sağlamaktansa bu süreci iki adımda gerçekleştiren ve adımların önceliksel onaylanmasıyla sisteme giriş izni veren, çoklu kimlik doğrulama yapılarının bir alt grubu olan kimlik doğrulamasıdır. Günlük hayattan genellikle ATM’lerden para çekme senaryosundaki öncelik olan banka kartı şifresi girilmesi ve ardından kullanıcının bilgisi doğrultusunda bir doğrulama kodu girilmesi durumunu iki adımlı doğrulamaya örnek olarak verebiliriz.

Peki Hangi Yöntemlerle Uygulanır?

İki adımlı kimlik doğrulama “Google And Microsoft Authenticator”, “SMS” ve “Email” olmak üzere üç farklı yöntemle uygulanabilir.

Böylece uygulamalarımızdaki gizliliği atalarımızdan miras aldığımız genlerimizin yarattığı hissiyatlara dayanarak olabildiğince güvenlik kontrolleriyle derinleştirmekte ve erişim yapmak isteyenin mümkün mertebe yetkili olan kişi olduğunu yüksek doğruluk payıyla tanımlayabilmek için detaylı yöntemler uygulamaktayız.

Umarım Two Factor Authentication yaklaşımı hakkında teorik olarak ele aldığımız makalemizde sizleri aydınlatabilmiş ve sonraki yazılarımızda yöntemsel açıdan pratik içerikler oluşturacağımız makalelerimize doğru altyapıyı atabilmenize yardımcı olabilmişimdir.

İlgilenenlerin faydalanması dileğiyle…
Sonraki yazılarımda görüşmek üzere…
İyi çalışmalar…

Mobil sürümden çık