Glossary
TOTP
Zamana Dayalı Tek Kullanımlık Parola
By Buğra SözeriPublished Updated
TOTP (Zamana Dayalı Tek Kullanımlık Parola), Google Authenticator, Authy, 1Password’ün TOTP özelliği ve çoğu yazılım tabanlı 2FA’nın arkasındaki algoritmadır. RFC 6238 (2011) ile tanımlanmıştır.
Nasıl çalışır: kayıt sırasında sunucu ve kimlik doğrulayıcı uygulama paylaşılan bir gizliyi değiş tokuş eder (genellikle base32 dizisi veya QR kodu olarak kodlanmış 160 bitlik bir değer). Mevcut OTP’yi oluşturmak için her iki taraf da şunları yapar:
- Mevcut Unix zamanını alır, periyoda böler (varsayılan 30 saniye), aşağıya yuvarlar.
- Bu sayacın HMAC-SHA1’ini paylaşılan gizliyi kullanarak hesaplar.
- 6 haneye kısaltır.
Her iki taraf da iletişim kurmadan aynı kodu üretir. 30 saniyelik pencere artı ±1 pencere toleransı, saat sapmasını yönetir. Kayıt sonrası paylaşılan gizli cihazdan ayrılmaz.
TOTP, SMS OTP’den (SIM takas saldırısı riski yok) çok daha iyidir; ancak kendi başına kimlik avını engellemez — mevcut kodu çalan bir saldırgan onu pencere içinde kullanabilir. WebAuthn / passkey’ler yeni nesil yanıttır.
Paylaşılan gizli sağlama biçimi: Google Authenticator, GitHub, AWS IAM ve diğerlerinin gösterdiği QR kodları, otpauth://totp/İhraçcı:etiket?secret=BASE32GIZLI&algorithm=SHA1&digits=6&period=30 URI’sini kodlar. Şema, resmi bir IETF spesifikasyonu değil 2011’de Google’ın belirlediği bir kuraldır; ancak her büyük kimlik doğrulayıcı uygulama onu destekler. Bazı hizmetler (Microsoft, Steam) daha yüksek entropi için hane sayısını 7-8’e çıkarır veya periyodu 15 saniyeye kısaltır; bu daha dar bir pencere maliyetiyle gelir. QR kodunu genel bir QR okuyucu uygulamasıyla bir kez okuyarak gizliyi yakalayın, ardından çevrimdışı yedekleyin — kimlik doğrulayıcıya erişimi bu yedek olmadan kaybetmek hesap kurtarmaya gitmek anlamına gelir.
2026 spesifikasyonunda SHA-1 — güvenli mi? Evet, bu bağlamda. TOTP’nin HMAC-SHA1 kullanımı, SHA-1’i TLS sertifikaları için emekliye ayıran çarpışma saldırılarına karşı savunmasız değildir; HMAC, SHA-1’in hâlâ bozulmamış olan ön görüntü direncine dayanır. RFC 6238 ayrıca SHA-256 ve SHA-512’ye de izin verir; ancak neredeyse her kimlik doğrulayıcı uygulama, çapraz satıcı uyumluluğu için SHA-1’e varsayılan olarak ayarlanmıştır. Sağlama URI’si algorithm=SHA256 belirtiyorsa, doğrulayıcı ve kimlik doğrulayıcının her ikisi de desteklemelidir — eski uygulamaların çoğu sessizce bozulacaktır. İlgili: OTP, SHA-256, JWT.
Çalışılmış örnek: kod türetme
Paylaşılan gizli (base32) JBSWY3DPEHPK3PXP. Mevcut Unix zamanının 1700000000 olduğunu varsayalım. Sayaç = kat(1700000000 / 30) = 56666666. Sayacı 8 baytlık büyük-endian tam sayı olarak paketleyin, paylaşılan gizliyi kullanarak HMAC-SHA1(gizli, sayaç) hesaplayın ve 20 baytlık özet elde edin; son baytın düşük dereceli nibble’ını o ofseti olarak alın, o’dan başlayarak 4 bayt okuyun, yüksek biti maskeleyin ve 10⁶’ya göre mod alın. Sonuç 359152 gibi 6 haneli bir koddur. t = 1700000030’da sayaç 1 artar ve kod döner. Sunucu ile telefon arasındaki on iki saniyelik saat sapması zararsızdır; altmış saniye genellikle doğrulamayı başarısız kılar; sunucu tolerans penceresini genişletmedikçe.
TOTP doğru seçim olduğunda
TOTP, parolaya zaten sahip bir saldırganın yine de engellendiği her yerde ikinci faktör olarak mantıklıdır: banka girişleri, kod barındırma, bulut konsolları, e-posta. Parola’nın yerini almaz (gizli simetriktir — sunucu ele geçirilirse her kullanıcının tohumu açığa çıkar) ve giriş akışını proxy yapan evilginx gibi gerçek zamanlı kimlik avı kitlerini durdurmaz. Kimlik avına karşı dayanıklı kimlik doğrulama için, kimlik bilgisini meşru kaynağa kriptografik olarak bağlayan WebAuthn / passkey’leri tercih edin. Referans: NIST SP 800-63B — Dijital Kimlik Kılavuzları (Kimlik Doğrulama).
Frequently asked questions
- TOTP nedir?
- TOTP (Zamana Dayalı Tek Kullanımlık Parola, RFC 6238), paylaşılan bir gizli ve mevcut 30 saniyelik zaman penceresinden türetilen 6 haneli bir kimlik doğrulama kodudur. Google Authenticator, Authy ve çoğu kimlik doğrulayıcı uygulama tarafından kullanılan algoritmadır.
- TOTP pratikte nasıl çalışır?
- Kurulum sırasında sunucu ve cihaz bir gizliyi paylaşır (QR kodu olarak gösterilir). Her 30 saniyede bir her iki taraf da bağımsız olarak HMAC-SHA1(gizli, kat(Unix-zaman bölü 30)) hesaplar ve son 6 haneyi görüntüler. Her iki taraf da aynı gizliyi ve saati kullandığından kodlar herhangi bir ağ iletişimi olmaksızın eşleşir.
- TOTP ile HOTP arasındaki fark nedir?
- HOTP (HMAC tabanlı OTP, RFC 4226), zaman yerine bir sayaç artırır; kodlar kullanılana kadar geçerlidir; bu da saat sapmasını daha iyi tolere eder ancak bir kod hiç kullanılmaz ve sayaç senkronizasyonu bozulursa tekrar saldırısına açık olur. TOTP ise zaman penceresi kullanır, dolayısıyla kodlar her 30 saniyede bir otomatik olarak sona erer.
Related
Published May 15, 2026 · Last reviewed May 31, 2026