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?

Asp.NET Core Identity - Two 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?

Asp.NET Core Identity - Two Factor Authentication 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.

  • Google And Microsoft Authenticator
    Google & Microsoft Authenticator her 30 saniyede bir 6 haneli geçici kodlar üreten ve ilişkilendirildiği 2FA doğrulama yöntemini kullanan uygulamalarda kullanıcıya özel olarak üretilmiş kodun girilmesi ile eşleştirilerek doğrulamayı sağlayan bir uygulamadır. Doğrulama kodlarının güvencesi sınırlı süreliğine üretilmeleri ve tek kullanımlık olmalarıdır. Yani üretilen kod ilk kullanıldığında yahut süresi dolduktan sonra geçerliliğini yitirecek ve böylece sürekli güvenlik zaafiyetine sebebiyet verilmemiş olacaktır.

    Biz her ne kadar Google ve Microsoft Authenticator desekte esasında aşağıdaki tüm sağlayıcılar bu doğrulayıcı algoritmasını desteklemektedirler;

    • LastPass
    • Google
    • Microsoft
    • Facebook
    • GitHub
    • Dropbox
    • Mailchimp
    • DigitalOcean

    Peki dezavantajı nedir?
    Google & Microsoft authenticator, akıllı telefon yahut bir tablete yüklenen uygulama ile iki adımlı doğrulama yapılacak sistemde bir barkod ile eşleştirilerek o sisteme uygun şifreler üreten ve ancak bu şifreler ile sisteme giriş yapmamıza müsade eden bir yapılanmadır. Dolayısıyla ilgili barkod ile eşleşme yapan telefon yahut tablet bozulduğunda ya da değiştiğinde artık eşleşme yapılan sisteme ait kodlar üretilmeyeceği için doğrulama imkansız hale gelecektir. Dolayısıyla en büyük dezavantajı kullanıcıyı kullandığı akıllı telefon yahut tablede bağımlı hale getirmesidir. Eğer bu donanımlarda bir değişiklik söz konusu olacaksa bunun için ya ilgili hesaba dair iki adımlı doğrulama durdurulmalı yahut başka bir donanım ile hesap ilişkilendirilerek var olan bağımlılık biraz olsun esnetilmelidir. Tüm bunların dışında ekstradan kurtarma kodu üretilerek mümkün mertebe harici imkanlar doğrultusunda saklanmalı ve bu olası durumlar ceyran ettiğinde son hamle olarak kullanılmalıdır.

  • SMS
    Kullanıcı; kullanıcı adı ve şifre ile başarılı giriş yaptıktan sonra ikinci adımda telefonuna SMS ile gönderilen bir kod ile doğrulama yaparak doğrulama gerçekleştirmektedir. Bu yöntem sürekli çalışan bir cep telefonu olmasını zaruri kılmakta ve olası bir hasar durumunda “kurtarıcı kod” olmadığı taktirde giriş işlemini neredeyse imkansız hale getirmektedir. Ayriyetten operatörsel açıdan ekstradan ücret söz konusu olabilir. Tüm bunların yanında kısa mesajlar anında gönderilmeyebilir buda kullanıcı açısından ekstradan zamandan maliyettir.

  • Email
    SMS ile benzer mantıkta ikinci doğrulama Email üzerinden gönderilen bir kod ile gerçekleştirilmektedir. Genellikle cep telefonlarında Email her daim açık bulunmakta ve bir çalıntı durumu ceyran ettiğinde doğrulama koduna direkt olarak erişim söz konusu olabilmektedir.

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…

Bunlar da hoşunuza gidebilir...

3 Cevaplar

  1. 10 Mart 2020

    […] Asp.NET Core Identity – Two Factor Authentication Nedir? […]

  2. 12 Mart 2020

    […] önceki Two Factor Authentication Nedir? başlıklı makalemizin akabinde artık Google & Microsoft Authenticator ile iki adımlı […]

  3. 01 Mayıs 2020

    […] alternatif yol ise Two Factor Authentication ile iki aşamalı doğrulama yapılarak kullanıcı girişlerinin gerçekleştirilmesidir. Kötü […]

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*