Testnizer

WS-Security

SOAP envelope'larını yerel olarak imzalayın, şifreleyin, doğrulayın ve şifresini çözün — çevrimiçi araç gerekmez.

WS-Security, SOAP mesaj düzeyi güvenlik spesifikasyonudur — XML envelope’larını imzalamayı, şifrelemeyi ve kimlik doğrulamayı kapsar. Çoğu modern API test aracı bunu hiç desteklemiyor ya da envelope’unuzu bir satıcıya yükleyen çevrimiçi “SOAP hata ayıklayıcı”ya yönlendiriyor.

Testnizer bunu cihazda, isteği gönderen aynı ana süreçte yapar. Özel anahtarlar diskten belleğe yüklenir, işlem için kullanılır ve istek tamamlandığında sıfırlanır.

Neler destekleniyor

ÖzellikDurum
UsernameToken — Nonce / created ile Password Text + Password Digest
Timestamp özel TTL ile
XML İmzası RSA-SHA1 / RSA-SHA256, tüm envelope veya belirli öğeler
XML Şifreleme AES-128/256-CBC, AES-128/256-GCM, RSA-OAEP anahtar sarmalama
Doğrulama ekli sertifikaya karşı imza
Şifre çözme proje deposundaki özel anahtarla
Bağımsız çalışma masası aracı (rastgele XML’e uygula / doğrula / imzala / şifre çöz)

SOAP isteğine güvenlik ekleme

SOAP isteği açın → Auth sekmesi → WS-Security.

Yapılandırma koleksiyon başına değil, istek başınadır. Bu, pratikte WS-Security header’larının çoğunun çalışma şekliyle örtüşür — aynı uç noktadaki farklı operasyonlar genellikle farklı güvenlik öğelerine ihtiyaç duyar.

UsernameToken (Password Text)

<wsse:Security xmlns:wsse="...">
  <wsse:UsernameToken>
    <wsse:Username>alice</wsse:Username>
    <wsse:Password Type="...PasswordText">secret</wsse:Password>
  </wsse:UsernameToken>
</wsse:Security>

WS-Security panelinde:

  • Kullanıcı adı: alice
  • Parola türü: PasswordText
  • Parola: secret (işletim sistemi anahtarlık üzerinden geçer — diskte asla düz metin olarak saklanmaz)

UsernameToken (Password Digest)

Nonce + created zaman damgası + nonce + created + parola’nın SHA-1 özetini ekler. Alıcı servis, saklanan karma ile karşılaştırır.

  • Kullanıcı adı: alice
  • Parola türü: PasswordDigest
  • Parola: secret
  • Nonce uzunluğu: 16 bayt (varsayılan)
  • Created TTL: 5 dakika (varsayılan)

Timestamp

Created ve Expires ile bir <wsu:Timestamp> öğesi ekler. Bayat istekte reddetme davranışı sunucu tarafında uygulanır; TTL’yi uç noktanın tolerans penceresine göre yapılandırın.

XML İmzası

Projenin sertifika deposundan bir sertifika seçer. İmzala:

  • Tüm envelope<soap:Body>’yi imzalar (en yaygın)
  • Belirli öğeler — XPath ifadesi listesi, her eşleşmeyi imzalar

Algoritma: varsayılan olarak RSA-SHA256; eski uç noktalar için RSA-SHA1. Sertifikanın açık anahtarı, alıcının ayrı bir anahtar alışverişi olmadan doğrulayabilmesi için BinarySecurityToken olarak gömülür.

XML Şifreleme

Gövde öğesini hibrit şemayla şifreler:

  • Rastgele 128 veya 256 bitlik bir AES anahtarı gövdeyi şifreler
  • AES anahtarı alıcının sertifikasıyla RSA-OAEP kullanılarak sarmalanır
  • Her ikisi de güvenlik header’ına girer

Alıcının sertifikası projenin sertifika deposunda bulunur. Sertifikalar → + Yeni bölümünden ekleyin ve açılır menüden seçin.

Bağımsız çalışma masası

Araçlar → WS-Security çalışma masası, bir istek göndermeden rastgele XML’e uygulama / doğrulama / imzalama / şifre çözme işlemi yapmanıza olanak tanır. Bir envelope yakaladığınızda ve gerçek bir gönderim yapmadan önce onu incelemek istediğinizde kullanışlıdır.

Aynı motor, aynı özel anahtarlar — çevrimiçi araç gerekmez.

Bu neden önemli

Çevrimiçi “SOAP hata ayıklayıcıları”, üretim XML envelope’larının başkasının S3 klasörüne girmesinin yoludur. WS-Security envelope’ları genellikle şunları içerir:

  • <soap:Body> içinde müşteri PII’si
  • Güvenlik header’ında kimlik doğrulama token’ları
  • Ele geçirildiğinde tekrar oynatılabilecek imzalı iddialar

Ekibinizin imzalı envelope’ları düzenlenmiş veri (bankacılık, sağlık, kamu) içeriyorsa tek doğru yanıt yerel kriptodur. Testnizer tam olarak bunu sağlar.

Referans