Araç hakkında
İmzalama ve doğrulama
İmzalama modunda mesaj ve PKCS#8 özel anahtar, doğrulama modunda mesaj, SPKI açık anahtar ve Base64 imza girilir. Algoritma ECDSA, eğri P-256, hash SHA-256’dır (JWT’deki ES256 ile aynı).
ECDSA her imzada rastgele bir değer (k) kullanır; aynı mesajın imzaları her seferinde farklıdır. Web Crypto bu değeri güvenli üretir. Aynı k’nin iki farklı mesajda kullanılması özel anahtarı açığa çıkarır; PlayStation 3 anahtarı bu hatayla ele geçirilmişti.
İmza biçimi: r||s ve DER
Web Crypto, imzayı 64 baytlık ham r || s biçiminde (IEEE P1363) üretir. OpenSSL, Java ve X.509 ise ASN.1 DER biçimini (genellikle 70–72 bayt) kullanır. JWT (ES256) ham biçimi kullandığı için bu araçla uyumludur; OpenSSL ile karşılaştırırken biçim dönüşümü gerekir.
Sık sorulan sorular
OpenSSL ile ürettiğim imza neden geçersiz görünüyor?
OpenSSL ECDSA imzalarını DER biçiminde üretir. Bu araç 64 baytlık ham r||s bekler; DER imzadaki r ve s tamsayılarını 32’şer bayta tamamlayıp birleştirmeniz gerekir.