Kodu görmek için geçerli bir gizli anahtar girin.
Bir kodu sunucunun yapacağı gibi kontrol edin: kayan saatleri tolere etmek için geçerli kod ile öncesinde veya sonrasında en fazla 2 adım kabul edilir.
Nasıl çalışır
TOTP (Time-based One-Time Password, RFC 6238), Google Authenticator, Microsoft Authenticator, Authy veya 1Password'deki altı basamaklı kodların arkasındaki algoritmadır. Hizmet ve telefonunuz bir gizli anahtarı paylaşır; her 30 saniyede bir ikisi de gizli anahtar ile adımlara bölünmüş geçerli zamanın HMAC'ini hesaplar, sonucu altı basamağa kısaltır ve karşılaştırır. Kodu siz yazana kadar kimse iletmediği için telefonun bağlantısı olmasa bile çalışır.
HOTP (RFC 4226) temel algoritmadır: zaman yerine her kod istendiğinde artan bir sayaç kullanır. TOTP, sayacın 1970'ten bu yana geçen süre sayısıyla değiştirildiği HOTP'dir. Gizli anahtar Base32 ile yazılır ve iki adımlı doğrulama etkinleştirilirken QR kodu olarak gösterilen bir otpauth:// URI'sinin içinde taşınır.
Araç, tarayıcının kriptografik üretecini kullanarak gizli anahtarlar oluşturur, geçerli, önceki ve sonraki kodu hesaplar, URI'yi ve QR kodunu hazırlar, mevcut bir URI'yi okur ve bir kodu sunucuların kullandığı saat toleransıyla doğrular. Gizli anahtar tarayıcınızdan asla çıkmaz ve paylaşım bağlantısına eklenmez.
Örnekler
GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ · SHA1 · 8 · T = 59 s94287082RFC 6238 test vektörü. Gizli anahtar, Base32 ile kodlanmış 12345678901234567890 ASCII metnidir; Unix döneminin 59. saniyesinde adım 1'dir ve sekiz basamaklı kod tam olarak bu olmalıdır.GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ · SHA1 · 8 · T = 1111111109 s07081804RFC 6238'den başka bir vektör; uygulamanızın baştaki sıfırları kaybetmediğini kontrol etmek için kullanışlıdır: kod bir tamsayı değil, sabit basamaklı bir sayıdır.HOTP · GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ · contador 0755224RFC 4226'nın altı basamaklı ilk vektörü. Sayaç 1 olduğunda kod 287082 olur.otpauth://totp/Ejemplo:ana%40example.com?secret=JBSWY3DPEHPK3PXP&issuer=EjemploTOTP · SHA1 · 6 · 30 sGoogle Authenticator'ın tanımladığı ve diğer uygulamaların benimsediği Key URI biçimi. algorithm, digits ve period eksikse SHA1, 6 ve 30 varsayılır; bu yüzden QR kodlarının çoğu yalnızca gizli anahtarı ve sağlayıcıyı içerir.Kullanım senaryoları
- Uygulamanızın 2FA etkinleştirmesini test etmek: bir gizli anahtar oluşturmak, QR'ı telefonla taramak ve sunucunun uygulamada görünen kodun aynısını kabul ettiğini kontrol etmek.
- Bir sunucunun geçerli kodları neden reddettiğini ayıklamak: kodların önceki veya sonraki adımla eşleşmesi saat kaymasını ortaya çıkarır.
- Kendi TOTP veya HOTP uygulamanızı RFC 6238 ve 4226 test vektörlerine karşı doğrulamak.
- Hesabın hangi algoritmayı, kaç basamağı ve hangi süreyi kullandığını incelemek için başka bir uygulamadan dışa aktarılmış bir otpauth:// URI'sini okumak.
- Gizli anahtarı zaten Base32 olarak elinizde bulunan bir test hesabını ikinci bir uygulamaya veya şifre yöneticisine eklemek.
Sık sorulan sorular
Sunucu, uygulamanın geçerli gösterdiği bir kodu neden reddediyor?
Neredeyse her zaman sebep saattir. TOTP, telefon ile sunucunun saat konusunda anlaşmasına dayanır: 30 saniyelik bir farkla bile farklı adımlar hesaplarlar. Bu yüzden sunucular her iki yönde bir veya iki adım kabul eder. Kod önceki veya sonraki adımla eşleşiyorsa sunucunun saatini NTP ile senkronize edin ve telefonda otomatik saati etkinleştirin.
Gerçek bir hesabın gizli anahtarını burada oluşturmak güvenli mi?
Gizli anahtar crypto.getRandomValues ile oluşturulur ve tarayıcınızdan çıkmaz, ancak üretim ortamında kodları doğrulayacak sunucu tarafından oluşturulup saklanmalıdır. Bu araç test ve hata ayıklama içindir. Gerçek her gizli anahtara bir şifre gibi davranın: ona sahip olan herkes kodlarınızı sonsuza kadar üretebilir.
SHA-256, 8 basamak veya 60 saniye kullanmak mantıklı mı?
Teoride daha güçlüdürler, ancak aralarında Google Authenticator sürümlerinin de bulunduğu bazı uygulamalar bu parametreleri yok sayar ve her zaman 30 saniyede bir 6 basamaklı SHA-1 hesaplar; bu durumda kullanıcı, sunucunun reddettiği kodlar görür. SHA-1, HMAC olarak hâlâ güvenlidir. Uyumluluk için hizmetlerin neredeyse tamamı varsayılan değerleri kullanır.
Gizli anahtar ne uzunlukta olmalı?
RFC 4226 en az 128 bit şart koşar ve Base32'de 32 karaktere karşılık gelen 160 biti önerir. Birçok hizmet 80 bit (16 karakter) kullanır ve uygulamalar bunları da kabul eder. Bu araç 160 bit oluşturur.
TOTP kimlik avına karşı koruma sağlar mı?
Tam olarak değil. Ele geçirilebilen veya SIM değiştirme yoluyla çalınabilen SMS'ten çok daha iyidir, ancak sahte bir site sizden kodu isteyip aynı 30 saniye içinde gerçek sitede kullanabilir. FIDO2 güvenlik anahtarları ve passkey'ler alan adına bağlıdır ve bu saldırıya dayanıklıdır.
Telefonumu kaybedersem ne olur?
Gizli anahtar olmadan kodları hesaplamanın bir yolu yoktur. Bu yüzden hizmetler 2FA etkinleştirilirken kurtarma kodları verir: bunları telefonun dışında saklayın. Bazı uygulamalar hesapları şifrelenmiş olarak buluta yedeklemeye veya başka bir cihaza aktarmak için QR olarak dışa aktarmaya izin verir.