Python TOTP ile İki Faktörlü Doğrulama

0 Yanıt 2 Görüntülenme
Puanlayanlar
Katılımcılar
Konuyu Açan #1
Giriş ve Temel Kavramlar
İki faktörlü doğrulama (2FA), kullanıcıların hesaplarına giriş yaparken iki farklı kimlik doğrulama adımı kullanmasıyla güvenliği artıran önemli bir yöntemdir. Bunlar genellikle "şeytan" (şifre) ve "şey" (mobil cihazda üretilen kod veya biyometrik veri) şeklinde kategorilendirilebilir. Python'da TOTP (Time-Based One-Time Password) algoritması, bu ikinci adımı kolayca uygulamayı sağlar. TOTP, RFC 6238 standardına uygun olarak, genellikle Google Authenticator veya Authy gibi uygulamalarla entegre edilir.

TOTP Nasıl Çalışır?
TOTP, zaman tabanlı rastgele kodlar üretir. Bu kodlar, gizli bir anahtar ve cihazın saat dilimine göre belirli aralıklarla (genellikle 30 saniye) yenilenir. Bu sayede, her kod sadece kısa bir süre geçerlidir ve yeniden kullanılamaz. Python'da bu algoritmayı kullanmak için 'pyotp' kütüphanesi en yaygın tercih edilir.

Python'da TOTP Uygulaması
İşte temel bir örnek:

PYTHON
123456789101112131415161718192021  
import pyotp

[b]Kullanıcıya özel gizli anahtar oluşturuyoruz[/b]
secret = pyotp.random_base32()
print("Gizli anahtar:", secret)

[b]Kullanıcının giriş yaparken kullanacağı QR kodu veya gizli anahtarı gösterilir[/b]
[b]Bu, genellikle Google Authenticator gibi uygulamalara eklenir[/b]

[b]Kod üretmek[/b]
totp = pyotp.TOTP(secret)
current_code = totp.now()
print("Şu anki kod:", current_code)

[b]Doğrulama[/b]
kullanıcı_kodu = input("Kodunuzu girin: ")
if totp.verify(kullanıcı_kodu):
    print("Doğrulama başarılı")
else:
    print("Hatalı kod veya zaman aşımı")


Bu örnekte, ilk olarak rastgele bir gizli anahtar oluşturulur ve kullanıcıyla paylaşılır. Kullanıcı bu anahtarı Google Authenticator veya benzeri uygulamaya ekleyerek, cihazında geçerli kodu görebilir. Giriş sırasında alınan kod, doğrulama adımında karşılaştırılır.

Güvenlik ve Uygulama İpuçları
  • Gizli anahtar, güvenli bir şekilde saklanmalı; özellikle sunucu tarafında asla açıkta bırakılmamalıdır.
  • Kullanıcıların QR kodu veya gizli anahtarı güvenli bir şekilde almasını sağlayın.
  • Kodların zaman senkronizasyonu, saatin doğru ayarlanmış olmasına bağlıdır. Bu nedenle, sistem saatinin düzgün çalıştığından emin olunmalı.
  • 2FA uygulaması ve sunucu arasındaki iletişimi HTTPS gibi güvenli protokoller üzerinden gerçekleştirin.


Bu temel yapı, Python ile 2FA uygulamalarını hızlıca geliştirmeye ve kullanıcı güvenliğini artırmaya olanak sağlar.
İleri seviye uygulamalarda, anahtar yönetimi, yedekleme ve kullanıcı deneyimini iyileştirme detaylarına da dikkat edilmelidir.

Yanıt vermek için giriş yapmış olmalısınız.

0 alıntı seçildi