# Argon2
[Argon2](https://www.nedemek.page/kavramlar/argon2), parola özetleme (password hashing) için tasarlanmış bir anahtar türetme fonksiyonu ve parola karma algoritmasıdır. Amacı, parola güvenliğini artırmak ve saldırılara karşı direnci yükseltmektir. Özellikle, kaba kuvvet (brute-force) ve gökkuşağı tabloları (rainbow tables) gibi saldırılara karşı dayanıklılığı hedefler.
Argon2, [Password Hashing Yarışması (Password Hashing Competition)](https://www.nedemek.page/kavramlar/password%20hashing%20yarışması)'nı kazanmıştır ve bu nedenle modern sistemlerde parola güvenliği için önerilen bir algoritmadır.
## Argon2'nin Temel Özellikleri
* **Bellek Yoğunluğu:** Argon2, parola türetme işlemi sırasında önemli miktarda bellek kullanır. Bu, donanım maliyetlerini artırarak saldırganların paralel hesaplamalar yapmasını zorlaştırır.
* **Zaman Maliyeti:** Bellek kullanımına ek olarak, Argon2'nin zaman maliyeti de ayarlanabilir. Bu, parola türetme işleminin ne kadar süreceğini kontrol etmeyi sağlar.
* **Paralelizm:** Argon2, birden fazla işlemci çekirdeğini kullanabilir. Bu, performansı artırır ancak aynı zamanda bellek gereksinimini de artırır.
* **Tuz (Salt):** Her parola için benzersiz bir tuz kullanır. Bu, aynı parolaların farklı özet değerlerine sahip olmasını sağlar ve [Gökkuşağı Tablosu Saldırıları](https://www.nedemek.page/kavramlar/gökkuşağı%20tablosu%20saldırıları)'na karşı koruma sağlar.
* **Çeşitler:** Farklı kullanım senaryoları için optimize edilmiş üç temel çeşidi vardır:
* **Argon2d:** [Kripto Para](https://www.nedemek.page/kavramlar/kripto%20para) gibi GPU direncinin yüksek olduğu senaryolar için tasarlanmıştır ve veri kümelerine bağımlı bellek erişimi kullanır.
* **Argon2i:** Yan kanal saldırılarına karşı daha dirençli olan ve parolaları güvenli bir şekilde saklamak için idealdir. Veri kümelerine bağımsız bellek erişimi kullanır.
* **Argon2id:** Argon2i ve Argon2d'nin en iyi özelliklerini bir araya getiren hibrit bir yaklaşımdır. Çoğu kullanım durumu için önerilen çeşittir.
## Argon2 Parametreleri
Argon2'nin güvenliğini ve performansını ayarlamak için aşağıdaki parametreler kullanılır:
* **Password (P):** Özetlenecek parola.
* **Salt (S):** Rastgele oluşturulmuş bir dize. Her parola için benzersiz olmalıdır.
* **Memory (m):** Algoritmanın kullanacağı bellek miktarı (KB cinsinden).
* **Iterations (t):** Karma işleminin kaç kez tekrarlanacağı.
* **Parallelism (p):** Kaç paralel iş parçacığı kullanılacağı.
* **Key Length (K):** Türetilecek anahtarın uzunluğu (bayt cinsinden).
* **Associated Data (X):** Ek veri (isteğe bağlı).
## Güvenlik Önerileri
* Güçlü ve rastgele bir tuz kullanın.
* Bellek (m) ve yineleme (t) değerlerini, sunucunuzun kaynaklarına ve güvenlik gereksinimlerinize göre dikkatlice ayarlayın.
* Argon2id, çoğu uygulama için önerilen çeşittir.
* Parolaları saklarken en güncel kütüphaneleri ve uygulamaları kullanın.
Ne Demek sitesindeki bilgiler kullanıcılar vasıtasıyla veya otomatik oluşturulmuştur. Buradaki bilgilerin doğru olduğu garanti edilmez. Düzeltilmesi gereken bilgi olduğunu düşünüyorsanız bizimle iletişime geçiniz. Her türlü görüş, destek ve önerileriniz için iletisim@nedemek.page