-
Tc4dy
OPSEC Specialist | Free internet - Open Source ADV
🔐 KRAL YOLU: KRİPTO PROTOKOL TİER LİST
Şifreleme dünyası, güvenlik ile performans arasında yapılan sonsuz bir savaştır. Her protokolün bir "işi" vardır ve doğru aracı doğru iş için seçmek, siber güvenliğin en kritik becerilerinden biridir. Bu rehberde, sohbet uygulamalarından dosya depolamaya, veritabanından ağ/VPN'ye kadar 4 ana kategoride en iyi 20+ şifreleme protokolünü karşılaştıracak, nerede kullanılacağını, hangi kütüphanelerin işe yaradığını ve nasıl kodlanacağını anlatacağım.
🧠 BÖLÜM 1: KRİPTO DÜNYASININ İYİ KATEGORİLERİ
🎯 1. SOHBET UYGULAMALARI (E2EE)
🏆 TİER LİST
| Tier | Protokol | Kullanan Uygulamalar | Güçlü Yönleri | Zayıf Yönleri |
|---|---|---|---|---|
| S | Signal Protocol | Signal, WhatsApp, Google Messages | X3DH + Double Ratchet ile ileri gizlilik (forward secrecy) ve sonradan gizlilik (post-compromise security) sağlar. 2025'te SPQR (Sparse Post-Quantum Ratchet) ile kuantum sonrası güvenliğe hazır hale geldi | Karmaşık implementasyon |
| S | Noise Protocol Framework | WireGuard, WhatsApp, Slack | Modüler yapısıyla özelleştirilebilir, aynı framework hem messaging hem VPN'te çalışır | Doğru pattern seçimi kritik |
| A | OMEMO | Conversations (XMPP) | Signal Protocol'ün XMPP'ye uyarlanmış hali, çoklu cihaz desteği | XMPP dışında yaygın değil |
| A | Matrix/Megolm | Element (Matrix) | Oda tabanlı çoklu katılımcılı sohbetler için optimize edilmiş | Bire bir sohbetler için ağır |
| B | OTRv3 | Pidgin, Jabber | Eski ama sağlam, basit yapısıyla anlaşılması kolay | Çoklu cihaz desteği yok, eski |
💾 2. DOSYA DEPOLAMA VE SAKLAYICILAR
| Tier | Araç / Protokol | Kullanım Alanı | Güçlü Yönleri | Zayıf Yönleri |
|---|---|---|---|---|
| S | VeraCrypt | Full disk / container | AES-256, Serpent, Twofish kombine edilebilir. On-the-fly şifreleme, hidden volume, açık kaynak | Kullanımı karmaşık, mobil desteği zayıf |
| S | age | Dosya / pipeline | Basit, minimalist, tek binary. SSH key ile çalışır, stream edilebilir | GUI yok |
| A | Cryptomator | Cloud storage (Google Drive, Dropbox) | Client‑side şifreleme, dosya adı şifreler, ECDH + ECDSA ile anahtar değişimi | Ücretsiz sürümde mobil uygulama ücretli |
| A | Kryptor | Dosya / klasör | age'in gelişmiş versiyonu, imzalama desteği, daha modern | Daha az tanınır |
| B | 7‑Zip (AES‑256) | Ad‑hoc arşivleme | Her yerde var, kullanımı kolay | Yalnızca arşiv bazlı, metadata sızdırabilir |
🗄️ 3. VERİTABANI ŞİFRELEME
| Tier | Yöntem / Araç | Kullanım Alanı | Güçlü Yönleri | Zayıf Yönleri |
|---|---|---|---|---|
| S | Application‑layer + TDE | Kritik veri (sütun düzeyi) | En yüksek güvenlik, HSM/KMS ile anahtar yönetimi | Performans yükü, geliştirme maliyeti |
| S | Transparent Data Encryption (TDE) | Tüm veritabanı (MySQL, MSSQL, MongoDB) | Uygulamaya şeffaf, performans kaybı minimal | Anahtar yönetimi kritik |
| A | SQLCipher | SQLite tabanlı uygulamalar | AES‑256 ile sayfa düzeyinde şifreleme, açık kaynak | Sadece SQLite için |
| A | MongoDB Queryable Encryption | MongoDB (7.0+) | Kısmi alanlarda sorgulama yaparken bile şifreli kalır | Yalnızca MongoDB Enterprise |
| B | Column‑level encryption (AES‑CBC) | Belirli hassas sütunlar | Esnek, hedefli şifreleme | Index performansını düşürür |
📡 4. AĞ / VPN
| Tier | Protokol | Kullanan Uygulamalar | Güçlü Yönleri | Zayıf Yönleri |
|---|---|---|---|---|
| S | WireGuard | Mullvad, ProtonVPN, Tailscale | Noise Framework tabanlı, 4.000 satır kod, 3‑4 kat daha hızlı (1,011 Mbps), CPU tüketimi OpenVPN'in %15'i | IP adresleri sabit, yapılandırması az |
| A | IPsec/IKEv2 | Kurumsal VPN, macOS, iOS | 3‑5 Gbps (kernel mode), geniş uyumluluk | Karmaşık konfigürasyon (9 paket el sıkışma) |
| A | OpenVPN (AES‑256‑GCM) | Çoğu ticari VPN | 1.2‑1.6 Gbps çekirdek başına, en esnek yapılandırma | WireGuard'dan %40‑50 daha yavaş |
| B | OpenVPN (ChaCha20‑Poly1305) | Eski mobil cihazlar, yazılım AES desteği olmayanlar | AES‑NI yoksa daha hızlı, doğal yan kanal direnci | Modern donanımda AES‑GCM'den yavaş |
⚙️ BÖLÜM 2: KÜTÜPHANELER VE KURULUM (5 DİL)
🐍 PYTHON
| Kütüphane | Ne İşe Yarar | Kurulum | Kod İçinde Kullanma (Mini Örnek) |
|---|---|---|---|
| cryptography | Yüksek seviyeli AES‑GCM, ChaCha20, X.509, Fernet | pip install cryptography | from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes |
| PyCryptodome | Düşük seviyeli primitifler (AES, RSA, SHA). PyCrypto'nun aktif devamı | pip install pycryptodome | from Crypto.Cipher import AES |
| pynacl | NaCl portu. SecretBox (authenticated encryption), Sign, Box | pip install pynacl | from nacl.secret import SecretBox |
python
import os
from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes
from cryptography.hazmat.backends import default_backend
key = os.urandom(32) # 256 bit key
nonce = os.urandom(12)
cipher = Cipher(algorithms.AES(key), modes.GCM(nonce), backend=default_backend())
encryptor = cipher.encryptor()
ciphertext = encryptor.update(b"Selam") + encryptor.finalize()
print(ciphertext)
🦀 RUST
| Kütüphane | Ne İşe Yarar | Kurulum | Kod İçinde Kullanma (Mini Örnek) |
|---|---|---|---|
| RustCrypto (traits) | Ekosistem (aes‑gcm, chacha20poly1305, ed25519) | cargo add aes-gcm | use aes_gcm::{Aes256Gcm, Key, Nonce}; |
| ring | BoringSSL tabanlı, hızlı ve güvenli | cargo add ring | use ring::aead::{UnboundKey, SEAL}; |
| orion | Kullanımı kolay high‑level API | cargo add orion | use orion::aead::secret_box::SealedBox; |
rust
use chacha20poly1305::{ChaCha20Poly1305, Key, Nonce};
use chacha20poly1305::aead::{Aead, KeyInit};
let key = Key::from_slice(b"an example very very secret key."); // 32 bytes
let cipher = ChaCha20Poly1305::new(key);
let nonce = Nonce::from_slice(b"unique nonce"); // 12 bytes
let ciphertext = cipher.encrypt(nonce, b"Selam").unwrap();
🐹 GO
| Kütüphane | Ne İşe Yarar | Kurulum | Kod İçinde Kullanma (Mini Örnek) |
|---|---|---|---|
| crypto/aes + crypto/cipher | Standart kütüphane AES‑GCM, en hızlı seçenek (2.1 GB/s) | import "crypto/aes" | block, _ := aes.NewCipher(key) |
| golang.org/x/crypto/chacha20poly1305 | ChaCha20‑Poly1305, x/crypto altında | go get golang.org/x/crypto/chacha20poly1305 | import "golang.org/x/crypto/chacha20poly1305" |
| crypto/ed25519 | Ed25519 imzalar | import "crypto/ed25519" | pub, priv, _ := ed25519.GenerateKey(rand.Reader) |
go
package main
import (
"crypto/aes"
"crypto/cipher"
"crypto/rand"
"io"
)
func main() {
key := make([]byte, 32) // 256 bit
io.ReadFull(rand.Reader, key)
block, _ := aes.NewCipher(key)
gcm, _ := cipher.NewGCM(block)
nonce := make([]byte, gcm.NonceSize())
io.ReadFull(rand.Reader, nonce)
ciphertext := gcm.Seal(nil, nonce, []byte("Selam"), nil)
}
📜 JAVASCRIPT (NODE.JS)
| Kütüphane | Ne İşe Yarar | Kurulum | Kod İçinde Kullanma (Mini Örnek) |
|---|---|---|---|
| crypto (built‑in) | Node.js standart AES‑GCM, ChaCha20, HKDF | const crypto = require('crypto') | crypto.createCipheriv('aes-256-gcm', key, iv) |
| libsodium‑wrappers | NaCl'in WebAssembly portu, SecretBox, generichash | npm install libsodium-wrappers | await sodium.ready; const box = sodium.crypto_secretbox_easy(msg, nonce, key); |
| tweetnacl | Küçük, kendi kendine yeten NaCl | npm install tweetnacl | nacl.secretbox(message, nonce, key) |
⚛️ JAVASCRIPT (WEB)
| Kütüphane | Ne İşe Yarar | Kurulum | Kod İçinde Kullanma (Mini Örnek) |
|---|---|---|---|
| Web Crypto API | Tarayıcı AES‑GCM, RSA‑OAEP, ECDH | Built‑in | window.crypto.subtle.encrypt({ name: "AES-GCM", iv }, key, data) |
| libsodium‑wrappers | NaCl'in WebAssembly portu | npm install libsodium-wrappers | await sodium.ready; const box = sodium.crypto_secretbox_easy(...); |
🧩 BÖLÜM 3: PROTOKOL DERİNLEMESİ (NEDEN S?)
🔐 1. Signal Protocol (S Tier)
Signal Protocol, modern güvenli iletişimin temelidir. WhatsApp, Google Messages ve Signal'in kendisi tarafından kullanılır. Çalışma prensibi:- X3DH (Extended Triple Diffie‑Hellman): İlk anahtar değişimini yapar, asenkron çalışır (çevrimdışı bile olsa bağlantı kurulabilir).
- Double Ratchet: Her mesajda anahtarı değiştirir. İleri gizlilik (geçmiş mesajlar çözülemez) ve sonradan gizlilik (ele geçirilse bile sonraki mesajlar güvende) sağlar.
- SPQR (Sparse Post‑Quantum Ratchet): 2025'te eklendi. Geleneksel Double Ratchet ile yeni Post‑Quantum Ratchet paralel çalışır, mesaj anahtarları hem EC hem ML‑KEM (eski adıyla Kyber) ile oluşturulup birleştirilir. Kuantum bilgisayarlara karşı dayanıklıdır.
🎲 2. Noise Protocol Framework (S Tier)
Noise, herhangi bir DH fonksiyonu ve hash üzerine inşa edilebilen modüler bir framework'tür. WireGuard, WhatsApp ve Slack tarafından kullanılır.Çalışma prensibi: İki tarafın kimlik anahtarlarını (statik) ve geçici anahtarlarını (ephemeral) nasıl birleştireceğini belirten el sıkışma pattern'leri tanımlar. Örneğin WireGuard'ın kullandığı IK pattern:
text
IK pattern:
-> e
<- e, ee, s, es
-> s, se
Kütüphane: snow (Rust), noise (Go), noise-c (C)
🛡️ 3. AES‑256‑GCM (S Tier)
Advanced Encryption Standard (AES), simetrik şifrelemenin tartışmasız kralıdır. GCM (Galois/Counter Mode) hem şifreler hem de kimlik doğrulama (authentication) sağlar.- Donanım hızlandırmalı (AES‑NI) CPU'larda 1.2‑1.6 Gbps çekirdek başına hız.
- 256‑bit anahtar, kuantum sonrası bile güvenli kabul edilir.
- AES‑128 ile arasında pratikte %40 performans farkı vardır.
- AES‑XTS (disk şifreleme için, örneğin BitLocker) kullanılır.
🌿 4. ChaCha20‑Poly1305 (S Tier – Yazılım AES desteği olmayan ortamlar)
ChaCha20 bir akış şifresidir; Poly1305 ise bir evrensel hash işlevidir. Birlikte authenticated encryption sağlarlar.- AES‑NI olmayan cihazlarda (eski telefonlar, gömülü sistemler) AES‑GCM'den çok daha hızlı.
- Doğal olarak sabit zamanlı çalışır, yan kanal saldırılarına karşı daha dayanıklıdır.
- TLS 1.3, WireGuard ve OpenVPN tarafından da desteklenir.
🧬 5. WireGuard (S Tier – Ağ/VPN)
WireGuard, Noise Framework üzerine inşa edilmiş 4.000 satır kodluk minimalist bir VPN protokolüdür.- ChaCha20‑Poly1305 şifreleme, Curve25519 anahtar değişimi, BLAKE2 hash kullanır.
- 4‑paket el sıkışma (IPsec'te 9 paket), 3‑4 kat daha yüksek verim (1,011 Mbps), CPU tüketimi OpenVPN'in %15'i.
- Sabit IP adresleri, roaming desteği, kriptografik anahtar yönlendirme.
📚 BÖLÜM 4: BONUS – KRİPTO BEST PRACTICES
| Kural | Açıklama |
|---|---|
| Donanım hızlandırma varsa AES‑256‑GCM kullan | AES‑NI destekli CPU'larda en hızlı ve endüstri standardı |
| Yazılım AES yoksa ChaCha20‑Poly1305 kullan | Eski mobil cihazlarda, gömülü sistemlerde, kısıtlı donanımda |
| Key size önemli | AES‑128 yeterli, AES‑256 daha güvenli. Performans farkı donanım hızlandırmayla minimum |
| Nonce'i asla tekrar kullanma | GCM'de nonce tekrarı felaket doğurur (anahtar sızdırır). Her şifreleme için rastgele nonce üret |
| Authenticated encryption (AEAD) şart | GCM ve ChaCha20‑Poly1305 gibi AEAD modları hem şifreler hem de kimlik doğrular. Ayrıca MAC'e gerek yok |
| Kuantum sonrasına hazırlan | Signal'in SPQR veya X25519 + ML‑KEM gibi hibrit şemalar kullan |
| Kütüphane seçimi | High‑level işler için cryptography (Python), ring (Rust), crypto/aes (Go). Low‑level kontrol gerekiyorsa PyCryptodome |
🔚;
Her protokolün bir işi vardır. Sohbet ediyorsan Signal Protocol, VPN kuruyorsan WireGuard, dosya şifreliyorsan age veya VeraCrypt, veritabanı koruyorsan TDE + application‑layer kullan. Doğru aracı doğru yerde kullanmak, güvenliğin yarısıdır. Kuantum sonrası güvenlik artık "bir gün" değil, "bugün" meselesidir. Yeni sistemlerinizi hibrit şemalarla (klasik + PQC) tasarlayın. Gerisi teferruat.@Tc4dy | github.com/tc4dy
Bu rehber, eğitim ve farkındalık için yazılmıştır.
💬 SpyHackerz Telegram — Anlık tartışmalar ve duyurular için katıl