Documentation
¶
Overview ¶
Package totp, RFC 6238 zaman tabanlı tek kullanımlık kodları üretir ve doğrular.
NEDEN ELLE YAZILDI: TOTP, HMAC üzerine ~40 satırlık bir belirtim ve RFC 6238 RESMÎ TEST VEKTÖRLERİ yayımlıyor — yani doğruluğu iddia edilmiyor, ölçülüyor (totp_test.go). Kimlik doğrulamanın kalbine duruma göre denetlenmesi gereken bir bağımlılık koymamak, bu ölçüm mümkünken tercih edilir.
Index ¶
Constants ¶
const ( Digits = 6 Period = 30 * time.Second // SecretBytes, üretilen sırrın uzunluğu. RFC 4226 en az 128 bit // istiyor, 160 bit öneriyor; base32'de 32 karakter ediyor. SecretBytes = 20 )
* Parametreler. * * ⚠️ SHA-1 ve 6 hane, RFC 6238'in varsayılanı ve kimlik doğrulayıcı * uygulamalarının (Google Authenticator, Aegis, 1Password) fiilen * desteklediği tek birleşim. "Daha güçlü" diye SHA-256 seçmek, * kullanıcının telefonundaki uygulamanın sessizce YANLIŞ kod üretmesi * demek olurdu — hesabın kilitlenmesi, güvenlik kazancı değil.
const Skew = 1
* Skew, kabul edilen adım toleransı (her yönde). * * ⚠️ 1 ADIM, yani ±30 saniye. Gerekçe: telefon saatiyle sunucu saati * birkaç saniye kayabilir ve kullanıcı kodu okuyup yazarken adım * sınırını geçebilir. Daha geniş bir pencere (±2, ±3) her kodu 2,5–3,5 * dakika geçerli kılar — çalınan bir kodun kullanılabilir ömrünü * gereksizce uzatır.
Variables ¶
This section is empty.
Functions ¶
func URI ¶
* URI, kimlik doğrulayıcı uygulamasının okuduğu otpauth bağlantısı. * * ⚠️ issuer HEM yolda HEM parametrede: uygulamaların bir kısmı birini, * bir kısmı diğerini okuyor. Yalnızca birini yazmak, hesabın telefonda * "issuer" olmadan görünmesine yol açıyor — iki bastion kullanan biri * hangi kodun hangisine ait olduğunu ayırt edemez.
func Verify ¶
* Verify, kodu doğrular ve HANGİ ADIMIN kullanıldığını döner. * * ⚠️ ADIM DIŞARI VERİLİYOR ÇÜNKÜ TEKRAR KORUMASI ÇAĞIRANIN İŞİ. TOTP'nin * kendisi bir kodun daha önce kullanılıp kullanılmadığını bilemez: * aynı kod 30 saniye boyunca geçerlidir. Omuz üstünden okuyan ya da * araya giren biri, kodu aynı pencerede İKİNCİ kez kullanabilir. * Kullanılan adımı saklamak ve tekrarını reddetmek zorunlu * (bkz. store.UseTOTPStep). * * used=false dönüşü, "yanlış kod" ile "geçersiz sır"ı ayırmıyor * bilerek: ikisi de kullanıcıya aynı cevabı vermeli.
Types ¶
This section is empty.