Blog

Erişilebilir kimlik doğrulama sistemleri nasıl oluşturulur?

Erişilebilir kimlik doğrulama sistemleri nasıl oluşturulur?

Dijital çağda "güvenlik" dendiğinde akla ilk gelenlerden biri şüphesiz şifrelerdir. Ancak her gün onlarca farklı hesap için karmaşık, benzersiz şifreler oluşturmak, hatırlamak ve yönetmek, birçoğumuz için yorucu bir angaryaya dönüştü. Peki ya bu süreç, bilişsel yetenekleri farklı olan kullanıcılar için nasıl bir deneyim sunuyor? Güvenliği artırmak adına eklediğimiz her katman, istemeden de olsa dijital dünyada yeni engeller mi yaratıyor?

Geleneksel şifre tabanlı kimlik doğrulama ve hatta bazı modern çok faktörlü kimlik doğrulama (MFA) yöntemleri, özellikle hafıza sorunları, dikkat eksikliği, öğrenme güçlüğü veya disleksi gibi bilişsel farklılıklara sahip kullanıcılar için ciddi zorluklar çıkarabiliyor. Güvenlik ve erişilebilirlik arasındaki bu hassas denge, uzun süredir web geliştirme dünyasının gündeminde.

Neyse ki, Web İçeriği Erişilebilirlik Yönergeleri'nin (WCAG) en son sürümü olan WCAG 2.2, bu önemli konuya doğrudan eğiliyor ve "Erişilebilir Kimlik Doğrulama" başlığı altında yeni başarı kriterleri sunuyor. Bu blog yazısında, WCAG 2.2'nin getirdiği bu gereksinimleri derinlemesine inceleyecek, geleneksel yöntemlerin neden yetersiz kaldığını tartışacak ve en önemlisi, şifrelerin ötesine geçerek herkes için hem güvenli hem de erişilebilir kimlik doğrulama sistemleri nasıl tasarlayıp uygulayabileceğimize dair pratik yöntemleri ve çalışan kod örneklerini keşfedeceğiz.

 

WCAG 2.2 ve Erişilebilir Kimlik Doğrulama: Yeni Standartlar Neler Getiriyor?

WCAG 2.2, kullanıcıların kimliklerini doğrulamak için bilişsel yeteneklerine aşırı derecede bağımlı olan yöntemlerden kaçınılmasını veya alternatifler sunulmasını şart koşuyor. Bu, özellikle bilişsel engelleri olan kullanıcıların dijital hizmetlere eşit erişimini sağlamak adına atılmış büyük bir adım. İki temel başarı kriteri bulunuyor:

 

3.3.8 Erişilebilir Kimlik Doğrulama (Minimum) - Seviye AA

Bu kriter, kimlik doğrulama sürecinde bilişsel işlev testlerinin kullanımını kısıtlar. Peki, nedir bu bilişsel işlev testi? Kullanıcının bir bilgiyi hatırlamasını (şifre, güvenlik sorusu cevabı), bir bilgiyi bir yerden başka bir yere manuel olarak kopyalamasını (SMS kodu, e-posta kodu) veya karmaşık bir bulmacayı çözmesini (bazı CAPTCHA türleri) gerektiren her türlü adımdır.

Kriter özetle şunu söyler: Bir bilişsel işlev testi, kimlik doğrulama adımı olarak kullanılamazmeğer ki aşağıdaki durumlardan en az biri sağlanmış olsun:

  1. Alternatif Yöntem: Bilişsel teste dayanmayan başka bir kimlik doğrulama yöntemi de sunulmalıdır (Örn: Şifreye ek olarak biyometrik doğrulama veya sihirli bağlantı seçeneği).
  2. Yardımcı Mekanizma: Kullanıcının testi tamamlamasına yardımcı olacak bir mekanizma mevcut olmalıdır (Örn: Şifre yöneticilerinin otomatik doldurmasına izin vermek, OTP kodlarının kopyalanıp yapıştırılmasına veya otomatik okunmasına izin vermek - autocomplete="one-time-code").
  3. Nesne Tanıma: Test, sadece tanıdık nesneleri tanımayı içeriyorsa (Örn: "Lütfen kedi resimlerini seçin" gibi görsel CAPTCHA'lar - ancak bunların da erişilebilir alternatifleri olmalıdır).
  4. Kişisel İçerik Tanıma: Test, kullanıcının daha önce siteye yüklediği metin olmayan içeriği (resimler, sesler, videolar) tanımasını içeriyorsa.

Önemli Not: Şifre alanlarının şifre yöneticileri tarafından otomatik doldurulmasına izin vermek (yani autocomplete attribute'unu engellememek), 3.3.8'in "Yardımcı Mekanizma" şartını karşılar. Bu nedenle, "Şifremi Hatırla" veya şifre yöneticisi kullanımı, şifre bazlı girişler için bir nebze erişilebilirlik sağlar. Ancak tek başına şifreye dayanmak hala ideal değildir.

 

3.3.9 Erişilebilir Kimlik Doğrulama (Gelişmiş) - Seviye AAA

Daha yüksek erişilebilirlik standardı olan AAA seviyesi, çok daha nettir:

Kimlik doğrulama sürecindeki herhangi bir adım için hiçbir bilişsel işlev testi gerekli olmamalıdır.

Bu, ideal olarak şifre hatırlama, kod kopyalama veya bulmaca çözme gibi adımların tamamen ortadan kaldırılmasını hedefler.

 

Bilişsel İşlev Testlerinin Anatomisi ve Zorlukları

WCAG 2.2'nin odaklandığı bilişsel işlev testleri, günlük dijital hayatımızın bir parçası haline gelmiş durumda:

  1. Hatırlama Testleri:
    • Şifreler: En yaygın örnek. Özellikle her site için farklı ve karmaşık şifreler oluşturma zorunluluğu, ciddi bir hafıza yükü bindirir.
    • Güvenlik Soruları: "İlk evcil hayvanınızın adı?" gibi soruların cevaplarını hatırlamak da bir bilişsel testtir.
  2. Kopyalama (Transkripsyon) Testleri:
    • SMS/E-posta Kodları (OTP): Telefona veya e-postaya gelen 6 haneli kodu web sitesindeki alana manuel olarak yazmak. Dikkat, kısa süreli hafıza ve doğru yazım becerisi gerektirir.
    • Authenticator Uygulama Kodları: Google Authenticator, Authy gibi uygulamalardaki süreli kodları kopyalamak.
  3. Bulmaca Çözme Testleri:
    • CAPTCHA: Özellikle bozuk harfleri okuma, nesneleri seçme veya basit matematik problemleri çözme gibi görevler içerenler.

Bu testler neden sorunlu? Çünkü:

  • Hafıza Sorunları Olanlar: Demans, beyin hasarı veya yaşa bağlı unutkanlık yaşayanlar için şifreleri veya güvenlik cevaplarını hatırlamak imkansız olabilir.
  • Dikkat Eksikliği ve Hiperaktivite Bozukluğu (DEHB) Olanlar: Kodları kopyalarken dikkatleri dağılabilir, hata yapma olasılıkları artar.
  • Disleksi veya Öğrenme Güçlüğü Olanlar: Harf ve rakamları doğru okumak, sırasını takip etmek veya kopyalamak zorlayıcı olabilir.
  • Stres ve Anksiyete: Kimlik doğrulama süreci zaten stresli olabilir. Bilişsel testler bu stresi artırabilir ve hata yapma olasılığını yükseltebilir.

 

Geleneksel Şifrelemeler

Şifreler, dijital güvenliğin temel taşı gibi görünse de, erişilebilirlik perspektifinden bakıldığında birçok zaafı vardır:

  1. Ağır Bilişsel Yük: Güçlü şifre politikaları (uzunluk, büyük/küçük harf, rakam, özel karakter) hatırlamayı neredeyse imkansız hale getirir. Bu, şifre yöneticisi kullanmayan veya kullanamayan herkes için, özellikle de bilişsel engelli kullanıcılar için büyük bir engeldir.
  2. Giriş (Yazma) Zorlukları: Motor becerilerinde (örneğin, titreme, kas zayıflığı) sınırlılık olan kullanıcılar için karmaşık şifreleri klavyede hatasız yazmak zor olabilir.
  3. Görsel Zorluklar: Şifre alanlarındaki maskelenmiş karakterler (*****), az gören kullanıcıların yazdıklarını kontrol etmelerini engeller. "Şifreyi Göster" butonu bir çözüm olsa da, her zaman mevcut veya erişilebilir olmayabilir. Ekran okuyucu kullanıcıları için de bu alanlar bazen kafa karıştırıcı olabilir.
  4. 2FA/MFA Engelleri: Şifreye ek olarak kullanılan SMS veya e-posta kodlarının manuel olarak girilmesi (transkripsyon), yukarıda belirtilen bilişsel test sorunlarını beraberinde getirir.

Bu nedenlerle, WCAG 2.2'nin de işaret ettiği gibi, daha kapsayıcı ve erişilebilir alternatiflere yönelmek kaçınılmaz hale geliyor.

 

Erişilebilir Kimlik Doğrulama Alternatifleri

Neyse ki, teknolojinin gelişimiyle birlikte şifrelere mahkum değiliz. İşte WCAG 2.2 uyumlu, daha erişilebilir ve çoğu zaman daha güvenli kimlik doğrulama yöntemleri ve çalışma prensipleri:

 

1. WebAuthn ve Passkeys: Modern Standardın Gücü

Nedir? Web Authentication (WebAuthn), W3C tarafından geliştirilen ve FIDO Alliance tarafından desteklenen, web üzerinde güçlü ve şifresiz kimlik doğrulama sağlayan bir standarttır. Passkeys (Geçiş Anahtarları) ise WebAuthn üzerine kurulu, kullanıcı dostu bir uygulamadır. Temelde, kullanıcının cihazını (telefon, bilgisayar) veya özel bir güvenlik anahtarını kullanarak kimlik doğrulamasını sağlar.

Nasıl Çalışır? Kayıt sırasında, kullanıcının cihazında veya güvenlik anahtarında bir çift anahtar (özel ve genel) oluşturulur. Özel anahtar cihazdan asla ayrılmaz. Genel anahtar ise sunucuya kaydedilir. Giriş sırasında, sunucu bir "challenge" (rastgele bir veri) gönderir, cihaz bu challenge'ı özel anahtarla imzalar ve sunucuya geri gönderir. Sunucu, kayıtlı genel anahtarla bu imzayı doğrular. Bu işlem genellikle cihazın biyometrik sensörleri (parmak izi, yüz tanıma) veya PIN'i ile tetiklenir.

Nasıl Yardımcı Olur?

  • Şifre Yok: Kullanıcının hatırlaması gereken bir şifre yoktur.
  • Bilişsel Yük Yok: Hatırlama veya kopyalama gerekmez.
  • Phishing'e Dayanıklı: Kimlik bilgileri (şifre gibi) çalınamaz çünkü özel anahtar cihazdan ayrılmaz.
  • Kullanıcı Dostu: Biyometrik veya tek dokunuşla hızlı giriş sağlar.

Teknik Uygulama (WebAuthn/Passkey Kayıt ve Giriş - İstemci Tarafı Konsepti):

Not: WebAuthn uygulaması hem istemci (JavaScript) hem de sunucu tarafı (challenge oluşturma, genel anahtar kaydetme, imza doğrulama) kodlaması gerektirir. Aşağıdaki kod, yalnızca tarayıcıda çalışan istemci tarafı etkileşimlerini göstermektedir.

See the Pen WebAuthn ve Passkeys by Volkan İnanç (@Volkan-nan-) on CodePen.

Erişilebilirlik Notları:

  • Bu yöntem, şifre hatırlama veya kod kopyalama gerektirmediği için bilişsel yükü ortadan kaldırır.
  • Cihazın kendi erişilebilirlik özelliklerini (biyometrik okuyucu, ekran okuyucu ile PIN girişi vb.) kullanır.
  • Sunucu tarafı doğru şekilde uygulandığında son derece güvenlidir.

 

2. Sihirli Bağlantılar (Magic Links)

Nedir? Kullanıcının girdiği e-posta adresine, tıklandığında otomatik olarak oturum açmasını sağlayan, benzersiz ve süreli bir bağlantı gönderme yöntemidir.

Nasıl Çalışır?

  1. Kullanıcı e-posta adresini girer.
  2. Sunucu, benzersiz bir token oluşturur, bu token'ı kullanıcı e-postasıyla ilişkilendirir ve veritabanında (veya geçici bir depoda) saklar (genellikle kısa bir süre için geçerlidir, örn: 15 dakika).
  3. Sunucu, bu token'ı içeren özel bir URL (sihirli bağlantı) oluşturur ve kullanıcıya e-posta ile gönderir.
  4. Kullanıcı e-postadaki bağlantıya tıklar.
  5. Tarayıcı, token içeren URL'yi sunucuya gönderir.
  6. Sunucu, token'ı doğrular (geçerli mi, süresi dolmuş mu, hangi kullanıcıya ait?).
  7. Doğrulama başarılıysa, kullanıcı için bir oturum başlatılır ve kullanıcı giriş yapmış olur. Token geçersiz kılınır.

Nasıl Yardımcı Olur?

  • Şifre hatırlama derdini ortadan kaldırır.
  • Kopyalama gerekmez (sadece linke tıklanır).
  • E-posta erişimi olan herkes kullanabilir.

Teknik Uygulama (Sihirli Bağlantı - İstemci ve Sunucu Konsepti):

See the Pen Magic Links by Volkan İnanç (@Volkan-nan-) on CodePen.

Erişilebilirlik Notları:

  • Kullanıcıdan sadece e-posta adresi istenir, hatırlama veya kopyalama gerekmez.
  • E-postadaki bağlantıya tıklamak yeterlidir.
  • E-postanın kendisinin erişilebilir formatta (HTML ve düz metin alternatifli) olması önemlidir.

 

3. Tek Kullanımlık Şifreler (OTP) - Erişilebilir Uygulama

Nedir? Kullanıcının telefonuna SMS, e-postasına veya bir authenticator uygulamasına gönderilen, genellikle 6 haneli ve kısa süreli (örn: 5-10 dakika) geçerli kodlardır.

Nasıl Çalışır? Magic Link'e benzer, ancak bağlantı yerine kod gönderilir. Kullanıcı kodu alır ve web sitesindeki ilgili alana girer. Sunucu kodu doğrular ve oturum açar.

Nasıl Yardımcı Olur (Erişilebilir Yapılırsa)? Şifre hatırlama yükünü kaldırır. Ancak manuel kopyalama bilişsel bir testtir. Erişilebilir olması için:

  • autocomplete="one-time-code" Attribute'u: Modern tarayıcıların ve işletim sistemlerinin (iOS, Android) SMS'ten gelen kodu otomatik olarak algılayıp ilgili alana doldurmasını veya klavyede önermesini sağlar. Bu, WCAG 2.2'nin "Yardımcı Mekanizma" şartını karşılar.
  • Panodan Yapıştırma Butonu: Kullanıcının kodu panoya kopyalayıp tek bir butonla yapıştırmasına olanak tanır. Bu da manuel yazma zorluğunu azaltır.

Teknik Uygulama (OTP - İstemci ve Sunucu Konsepti):

See the Pen OTP ile Giriş by Volkan İnanç (@Volkan-nan-) on CodePen.

Erişilebilirlik Notları:

  • inputmode="numeric" ve pattern="[0-9]*" mobil cihazlarda sayısal klavyenin açılmasını sağlar.
  • autocomplete="one-time-code" otomatik doldurma/önerme mekanizmasını tetikler.
  • "Panodan Yapıştır" butonu, kodu manuel yazmakta zorlananlar için önemli bir yardımcı mekanizmadır.

 

Hangi Yöntemi Seçmeli? İdeal Senaryo ve Fallback Mekanizmaları

En erişilebilir ve güvenli yaklaşım genellikle birden fazla yöntemi bir arada sunmaktır.

  • İdeal Senaryo: Varsayılan olarak WebAuthn/Passkey sunun (biyometrik veya güvenlik anahtarı). Bu, hem en güvenli hem de en kullanıcı dostu yöntemdir.
  • Fallback (Yedek) Yöntemler:
    • Eğer kullanıcının cihazı WebAuthn desteklemiyorsa veya kullanıcı bu yöntemi tercih etmiyorsa, Sihirli Bağlantı mükemmel bir şifresiz alternatiftir.
    • Erişilebilir OTP (otomatik doldurma ve/veya yapıştırma desteği ile) de bir seçenek olabilir, ancak e-posta veya SMS'e erişim gerektirir ve küçük bir bilişsel adım içerir.
  • Geleneksel Şifre: Son çare olarak veya belirli kullanıcı grupları (örneğin, kurumsal SSO entegrasyonları) için hala gerekli olabilir. Ancak sunuluyorsa, mutlaka şifre yöneticileriyle uyumlu olmalı (autocomplete="current-password" veya "new-password") ve "Şifreyi Göster" seçeneği bulunmalıdır.

Unutulmaması Gerekenler:

  • Kullanıcı Eğitimi: Yeni yöntemler (özellikle Passkey) hakkında kullanıcıları bilgilendirmek önemlidir.
  • Kurtarma Seçenekleri: Cihaz kaybı veya e-postaya erişim kaybı gibi durumlar için güvenli hesap kurtarma mekanizmaları tasarlayın (bu mekanizmaların da erişilebilir olması gerekir!).
  • Güvenlik Değerlendirmesi: Her yöntemin kendi güvenlik artı ve eksileri vardır. Uygulamanızın risk profiline göre en uygun kombinasyonu seçin.

 

WCAG 2.2'nin erişilebilir kimlik doğrulama kriterleri, dijital dünyayı daha kapsayıcı hale getirme yolunda önemli bir adımdır. Şifrelerin yarattığı bilişsel ve fiziksel engelleri aşmak, sadece belirli engel grupları için değil, tüm kullanıcılar için daha akıcı, daha hızlı ve genellikle daha güvenli bir deneyim anlamına gelir.

WebAuthn, Passkeys, Sihirli Bağlantılar ve erişilebilir OTP uygulamaları gibi modern teknolojiler sayesinde, artık güvenlik duvarlarımızı erişilebilirlik engellerine dönüştürmek zorunda değiliz. Bu yöntemleri benimseyerek, hem kullanıcılarımızın verilerini koruyabilir hem de dijital kapılarımızı herkese ardına kadar açabiliriz.

Bu yolculukta en önemli adım, kullanıcıların farklı ihtiyaçlarını anlamak, standartları takip etmek ve en önemlisi, tasarladığımız sistemleri gerçek kullanıcılarla test etmektir. Erişilebilirlik, bir varış noktası değil, sürekli iyileştirme gerektiren bir süreçtir. Gelin, bu süreci birlikte inşa edelim ve herkes için daha güvenli, daha erişilebilir bir dijital gelecek yaratalım.