ECDSA (P-256) Şifrele & Çöz
Ücretsiz çevrimiçi ECDSA (P-256) Şifrele & Çöz aracı. %100 yerel işlem — verileriniz asla cihazınızı terk etmez.
Sonuç burada görüntülenecek...
Giriş → Şifrele
Usage Guide
ECDSA (P-256) Hakkında
NIST P-256 eğrisini (secp256r1 veya prime256v1 olarak da bilinir) kullanan ECDSA (Eliptik Eğri Dijital İmza Algoritması), yaygın olarak kullanılan bir dijital imza standardıdır. HTTPS/TLS sertifikalarının, kod imzalama altyapısının ve birçok blok zinciri protokolünün temelini oluşturur. P-256, 128 bitlik güvenlik sağlar — RSA-3072 ile eşdeğer — ve anahtarları kompakt tutar (her biri 32 bayt). WebCrypto, Java, Go, Python ve neredeyse tüm TLS kütüphaneleri P-256'yı yerel olarak destekler.
Kullanım Adımları
Bu araç P-256 anahtar çifti oluşturma, mesaj imzalama ve imza doğrulamayı destekler:
Anahtar Formatı
Bu araçtaki ECDSA P-256 anahtarları PEM kodlamasını (Base64 sarmalı DER) kullanır:
ECDSA ve EdDSA Karşılaştırması
ECDSA ve EdDSA her ikisi de eliptik eğri imza algoritmasıdır, ancak kritik güvenlik özelliklerinde farklılık gösterir:
FAQ
Q: ECDSA ve EdDSA arasındaki fark nedir?
A: Hem ECDSA hem de EdDSA eliptik eğri imza algoritmasıdır, ancak kritik açılardan farklılık gösterir. ECDSA (NIST eğrileri P-256, P-384 ile kullanılır) her imza için rastgele bir nonce (k) gerektirir — nonce yeniden kullanılır veya zayıfsa, özel anahtar tamamen kurtarılabilir. Sony PlayStation 3 özel anahtarı 2010'da tam olarak böyle elde edildi. EdDSA, özel anahtar ve mesaj karma değerinden türetilen deterministik bir nonce kullanarak nonce yeniden kullanımını matematiksel olarak imkânsız kılar. Yeni uygulamalar için EdDSA, ECDSA'ya kesinlikle tercih edilir.
Q: ECDSA'da nonce yeniden kullanımı neden bu kadar tehlikelidir?
A: ECDSA'da her imza, gizli bir rastgele değer k (nonce) gerektirir. Aynı nonce k ile iki farklı mesajı imzalarsanız, her iki imzayı gözlemleyen bir saldırgan, basit cebir kullanarak özel anahtarınızı tamamen ve geri dönüşü olmayacak şekilde kurtarabilir. Bu teorik değildir: Sony, tüm ürün yazılımı imzaları için aynı nonce'u yeniden kullandığında PlayStation 3, 2010'da kırıldı. Çözüm ya her imza için kriptografik olarak güvenli bir rastgele sayı üreteci kullanmak (WebCrypto'nun yaptığı gibi) ya da deterministik türetme yoluyla nonce sorununu tamamen ortadan kaldıran EdDSA'ya geçiş yapmaktır.
Q: ECDSA veri şifreleyebilir mi?
A: Hayır. ECDSA yalnızca bir dijital imza algoritmasıdır — veri şifreleyemez veya çözemez. İmzalama özgünlüğü kanıtlar (mesajı kimin oluşturduğunu) ancak gizlilik sağlamaz (herkes mesajı okuyabilir). Verileri şifrelemek için ChaCha20-Poly1305 veya AES-256-GCM gibi simetrik bir şifre kullanın. Asimetrik anahtar değişimi için X25519 (ECDH) kullanın. P-256 ile asimetrik şifreleme için ECC/ECIES kullanın.
Q: P-256 ve secp256k1 arasındaki fark nedir?
A: Benzer isimlerine rağmen, P-256 (secp256r1, prime256v1) ve secp256k1 farklı parametrelere sahip farklı eliptik eğrilerdir. P-256, TLS sertifikalarında, devlet sistemlerinde ve WebCrypto'da yaygın olarak kullanılan NIST tarafından standartlaştırılmış bir eğridir. secp256k1, Bitcoin ve Ethereum tarafından kullanılan eğridir (normal işlemler için ECDSA imzaları). secp256k1 farklı verimlilik özelliklerine sahiptir ve genellikle TLS kütüphaneleri veya WebCrypto tarafından desteklenmez. Bunları karıştırmayın — iki eğri arasında anahtarlar ve imzalar tamamen uyumsuzdur.
Q: Bir ECDSA P-256 imzası ne kadar büyüktür?
A: Bu araç ve WebCrypto tarafından kullanılan IEEE P1363 formatındaki bir ECDSA P-256 imzası tam olarak 64 bayttır: iki adet 32 baytlık big-endian tam sayı r ve s. Base64 kodlandığında 88 karakterdir. DER formatında (OpenSSL, X.509, TLS tarafından kullanılır), aynı imza değişken uzunluktadır, genellikle 70–72 bayt, çünkü DER, pozitif tam sayılar için baş sıfır baytlarıyla birlikte etiket-uzunluk-değer kodlaması kullanır. OpenSSL veya diğer araçlarla birlikte çalışırken format farkına dikkat edin.
Use Cases
Önerilen: TLS Sertifikaları / HTTPS
ECDSA P-256 sertifikaları, HTTPS için modern standarttır. Tüm önemli tarayıcılar ve TLS 1.3 tarafından desteklenir ve RSA-2048 sertifikalarından çok daha küçük ve hızlıdır. Let's Encrypt gibi Sertifika Yetkilileri ECDSA P-256'yı tam olarak desteklemektedir. CSR için P-256 anahtarı oluşturmak amacıyla openssl ecparam -name prime256v1 -genkey kullanın.
- ✅ Yeni TLS sertifikaları için ECDSA P-256 kullanın
- ✅ Tüm modern tarayıcılar ve TLS 1.3 tarafından yerel olarak desteklenir
- ✅ RSA sertifikalarından daha hızlı TLS el sıkışmaları
- ❌ RSA-1024 kullanmayın; P-256, hız ve boyut açısından RSA-2048'den üstündür
Önerilen: Kod İmzalama
ECDSA P-256, macOS, Windows Authenticode, Android APK imzalama ve birçok paket yöneticisi tarafından kod imzalama için kullanılmaktadır. Kompakt 64 baytlık imza (P1363) veya ~71 baytlık DER imzası, manifestolara ve meta verilere kolayca gömülebilir. Sürüm artefaktlarınızı imzalamak, kullanıcıların ikili dosyaların yayından sonra değiştirilmediğini doğrulamasını sağlar.
- ✅ Sürüm artefaktlarını ve sağlama toplamlarını ECDSA P-256 ile imzalayın
- ✅ İmzanın yanında genel anahtarı veya sertifikayı yayımlayın
- ✅ Üretim imzalama anahtarları için donanım güvenlik modülü (HSM) kullanın
- ❌ Kriptografik imza olmadan yazılım dağıtmayın
Önerilen: Akıllı Sözleşme Uyumluluğu (uyarılarla)
Birçok blok zinciri ekosistemi işlem imzalama için ECDSA kullanır. Ethereum, secp256k1 varyantını (P-256 değil) kullandığından, ECDSA P-256 anahtarları Ethereum cüzdanlarıyla doğrudan uyumlu değildir. Ancak bazı yeni zincirler ve Layer-2 çözümleri P-256 (secp256r1) desteği sunar — örneğin Passkey tabanlı hesap soyutlaması (ERC-4337) P-256 imzalarını kullanır. Anahtar oluşturmadan önce belirli bir blok zincirinin hangi eğriyi gerektirdiğini her zaman doğrulayın.
- ✅ secp256r1'i açıkça destekleyen zincirler için ECDSA P-256 kullanın
- ✅ Passkey / WebAuthn tabanlı hesap soyutlaması için uygundur
- ❌ Bitcoin veya Ethereum için P-256 anahtarları kullanmayın — bunlar secp256k1 kullanır
- 💡 Blok zinciri kullanımı için anahtar oluşturmadan önce eğriyi doğrulayın
Kabul Edilebilir: JWT İmzalama (ES256)
JSON Web Token'lar (JWT), ES256 algoritma tanımlayıcısı (RFC 7518) aracılığıyla ECDSA P-256'yı destekler. ES256, HS256 (simetrik) yerine daha güvenli ve RS256 (RSA) yerine daha verimlidir. Ancak yeni bir proje başlatıyorsanız, deterministik imzalama özellikleri için JWT'deki EdDSA (Ed25519) algoritmasını değerlendirin.
- ✅ ES256 (ECDSA P-256), mevcut sistemlerde JWT için sağlam bir seçimdir
- ✅ Genel anahtarı /.well-known/jwks.json adresinde yayımlayın
- ✅ İmzalama anahtarlarını periyodik olarak döndürün
- 💡 Yeni projeler: deterministik imzalama için EdDSA (Ed25519) değerlendirin
Önerilmez: Yeni Projeler — EdDSA Tercih Edin
Uyumluluk kısıtlamalarının algoritma seçimini belirlemediği yeni projeler için ECDSA P-256 yerine EdDSA (Ed25519) tercih edin. EdDSA'nın deterministik nonce'u, ECDSA'nın en tehlikeli başarısızlık modunu (nonce yeniden kullanımı) ortadan kaldırır ve Ed25519 artık OpenSSH, TLS 1.3 istemci sertifikaları, JWT ve modern kriptografi kütüphanelerinin çoğunda desteklenmektedir.
- ❌ EdDSA mevcut olduğunda ve uyumluluk gereksinimi olmadığında ECDSA P-256'dan kaçının
- ✅ SSH, yeni JWT düzenleyicileri ve modern API'ler için EdDSA (Ed25519) kullanın
- ✅ TLS sertifikaları ve eski sistem birlikte çalışabilirliği için ECDSA P-256'yı koruyun
- 💡 ECDSA kırık değildir — sadece EdDSA'dan daha güvenli uygulamak daha zordur
En İyi Uygulama Özeti
- ECDSA bir imza algoritmasıdır — özgünlüğü kanıtlar ancak şifrelemez. Gizlilik için AES-256-GCM veya ChaCha20-Poly1305 kullanın.
- ECDSA P-256, imza başına güvenli rastgele nonce gerektirir. Nonce yeniden kullanımı özel anahtarı tamamen açığa çıkarır (PS3 saldırısı). WebCrypto bunu otomatik olarak yönetir.
- Özel anahtar (PEM formatı) kesinlikle gizli tutulmalıdır. Genel anahtar (PEM formatı) serbestçe dağıtılabilir.
- İmzaları 'message|signature_base64' giriş formatını kullanarak doğrulayın. Dikey çizgi ayırıcısı zorunludur.
- Eski kısıtlamaları olmayan yeni projeler için EdDSA (Ed25519) tercih edin — deterministiktir, daha hızlıdır ve ECDSA'dan daha zor yanlış kullanılır.