Auteur de la discussion #1
Giriş
Birçok uygulamada parola güvenliği, kullanıcı deneyimini etkileyen olmazsa olmaz bir güvenlik katmanı. Parolaların hashlenerek saklanması gerekirken, hangi algoritmalar, hangi tuzlama politikaları ve hangi ek güvenlik önlemlerinin uygulanması gerektiğini tartışmak istiyorum. Aşağıda pratik tartışma için bazı noktalar ve sorular var; siz hangi yaklaşımları benimsiyorsunuz ve neden?


1) Doğru hash algoritması seçimi
Günümüzde parolalar için güvenli kabul edilen algoritmalar genellikle tek yönlü hash fonksiyonlarıyla birlikte tuzlama ve mevcut güvenlik önlemlerini içerir. Öne çıkan noktalar:
  • Bcrypt, Argon2 veya scrypt gibi hesaplama yoğunluğu yüksek algoritmalar tercih edilir. Bu algoritmalar, GPU/ASIC saldırılarına karşı direnç sağlar ve zamanla ayarlanabilir maliyet sunar.
  • MD5 veya SHA-1 gibi eski algoritmalar artık güvenli değildir; ancak var olan sistemlerde dönüştürme planlarını düşünmek gerekir. Uygun süreçler olmadan eski parolaları saklamaya devam etmek risklidir.


    CODE
    12345678# Basit bir örnek (Python)
    import bcrypt
    password = b"guvenli_parola"
    salt = bcrypt.gensalt(rounds=12)  # hesaplama yoğunluğu ayarı
    hash = bcrypt.hashpw(password, salt)
    print(hash)
    [b]Doğrulama[/b]
    bcrypt.checkpw(password, hash)  # True/False
    


    2) Tuzlama (salt) ve pepper kavramı
  • Tuzlar parolaya özgü üretildiğinde söz konusu hash’in tekrarlanabilir güvenliği artar. Her kullanıcı için yeni bir tuz üretilmesi gerekir.
  • Pepper, uygulama seviyesinde sabit bir değer olarak saklanır ve tüm hashler üzerinde uygulanır; bu ek katman, veri tabanı sızıntılarında ek koruma sağlar. Ancak pepper’ın güvenli bir şekilde yönetilmesi gerekir (kaydedilmiş olması; güvenli bir gizli depoda tutulması).

    Güvenlik pratiği notu
    Tuz ve pepper uygulamalarında anahtar yönetimi, güncel güvenlik ilkeleriyle uyumlu şekilde yapılmalıdır. Tuzlar genelde kullanıcı bazında olmalı, pepper ise merkezi bir güvenlik katmanı olarak düşünülmelidir; ancak pepper’ın ele geçmesi durumunda tüm parolalar riske girer. Bu nedenle pepper’ın saklanması konusunda risk analizi yapılmalıdır.


    3) Hash saklama ve veritabanı güvenliği
  • Parolalar yalnızca hashlenmiş biçimde saklanır; asla düz metin saklanmamalı. Veritabanı yedeği veya loglar da hashlerle tutarlı biçimde korunmalıdır.
  • HMAC veya ek imza mekanizmalarıyla hashlerin doğrulanması sırasında karşı tarafın veritabanına erişimi minimum tutulur.


    Sık yapılan hatalar
    [list]
  • Eski bir algoritmanın kullanımı (MD5/SHA-1) ve güçlendirilmemiş eski uygulama kodu.
  • Aynı tuzu tüm kullanıcılar için paylaşmak.
  • Pepper’ın yanlış yönetimi veya yanlış saklanması.
  • Hash karşılaştırmalarını zamanla sınırlamadan yapmak (timing attack riskleri).

  • [/list]

    4) Uygulama katmanı güvenliği ve güncel öneriler
  • Parola politikaları: uzunluk, karakter çeşitliliği, periyodik değiştirme politikaları dengeli biçimde belirlenmeli.
  • Çok faktörlü kimlik doğrulama (MFA) parolalara bağımlılığı azaltır.
  • Veritabanı sorgulama güvenliği: hazırlıklı ifadeler (prepared statements) ve minimum ayrıcalık prensibi uygulanmalı.
  • Loglama ve izleme: kimlik doğrulama girişimleri için güvenli oturum kaydı ve anomali tespitine odaklanılmalı.


    [sample]Sizin deneyimleriniz
    [list]
  • Hangi hash algoritmasını tercih ediyorsunuz ve neden?
  • Tuz/pepper yönetimini nasıl uyguluyorsunuz? Hangi araçlar veya servislerle entegre ediyorsunuz?
  • Küçük bir projede (ör. kendi API’niz) güvenliği artırmak için hangi ekstra adımları yaptınız?[/sample]
    [/list]

    Sonuç
    Parola güvenliği, yalnızca uygun bir hash algoritması seçmekten ibaret değildir; tuzlama, pepper, saklama politikaları, kimlik doğrulama yaklaşımı ve uygulama güvenliğiyle entegre bir strateji gerektirir. Sizce hangi bileşen en çok hangi koşullarda revize edilmeli? Deneyimlerinizi ve karşılaştığınız zorlukları paylaşın. Bu konudaki en etkili uygulama örnekleri nelerdir?
  • Vous devez être connecté pour répondre.

    Utilisateurs qui consultent cette discussion (Total: 5, Membres: 5, Invités: 0)
    Total: 5 (membres: 5, invités: 0)
    0 citations sélectionnées