Tüm makaleler

TOTP: kimlik doğrulama uygulamalarındaki tek kullanımlık kodlar nasıl çalışır

Türkiye'nin e-Devlet kapısı, vergi beyanından sağlık kayıtlarına kadar yüzlerce devlet hizmetine tek bir hesapla erişim sağlar ve giderek daha fazla işlem için mobil imza veya uygulama tabanlı doğrulama ister. Bankalar da benzer şekilde SMS OTP'den, sırrın cihazda kalıp hiçbir zaman operatör ağından geçmediği TOTP tarzı uygulama içi kodlara kayıyor — SIM takas dolandırıcılığına karşı önemli bir fark.

Paylaşılan bir sır artı zaman

Kurulum sırasında, sunucu ve kimlik doğrulama uygulaması tek bir paylaşılan gizli anahtar değiş tokuş eder (tam olarak QR kodunda kodlanan şey budur). Bundan sonra, her iki taraf da bu sırdan ve 30 saniyelik bir aralığa yuvarlanmış geçerli unix zamanından bağımsız olarak bir HMAC hesaplar — birbirleriyle iletişim kurmadan aynı koda ulaşırlar.

Bu neden internet olmadan çalışır

Kod, sırdan ve cihazın sistem saatinden yerel olarak hesaplandığından, kimlik doğrulama uygulamasının bir kod üretmek için ağ bağlantısına ihtiyacı yoktur. Tek gereklilik, sunucunun ve telefonun saatlerinin küçük bir izin verilen sapma içinde (genellikle ±30–60 saniye) senkronize kalmasıdır.

Kod neden her 30 saniyede bir değişir

Kısa zaman aralığı, ele geçirilmiş bir kodun geçerli kaldığı pencereyi sınırlayarak bir saldırgan tarafından yeniden kullanılma riskini azaltır. Sunucu genellikle, kodu girerken oluşan küçük bir ağ gecikmesini telafi etmek için geçerli aralığı ve bir önceki aralığı kabul eder.

Bu neden gereklidir

  • Kimlik doğrulama uygulamalarını kurarken veya sorun giderirken iki faktörlü kimlik doğrulamanın mekaniğini anlamak.
  • Bir kimlik doğrulama sistemi geliştirirken kendi TOTP uygulamanızı test etmek.
  • Telefondan manuel olarak girmeden otomatik testler için kodlar üretmek.

TOTP'nin korumadığı şey

TOTP, parolayı koddan ayrı çalınmaya karşı güvenilir bir şekilde korur, ancak gerçek zamanlı kimlik avına karşı korumaz: kurban hem parolasını hem de geçerli TOTP kodunu sahte bir sitede girerse, saldırgan kod hâlâ geçerliyken her iki değeri de gerçek sitede anında kullanabilir. Bu tür bir saldırıya karşı yalnızca belirli bir alan adına kriptografik olarak bağlı olan FIDO2/WebAuthn standardına dayalı donanım anahtarları koruma sağlar.

Aracı dene