Dijital İmza
ipucu
Bu doküman spesifik bir politikanın detaylı kullanımını anlatır. Eğer Apinizer politika yapısını ilk kez kullanıyorsanız veya politikaların genel çalışma prensiplerini öğrenmek istiyorsanız, öncelikle Politika Nedir? sayfasını okumanızı öneririz.
Genel Bakış
Amacı Nedir?
- İstek veya yanıt mesajının kritik bölümlerine dijital imza ekleyerek bütünlük ve inkâr edilemezlik sağlar.
- Gizli anahtarların merkezi yönetimi sayesinde imzalama sürecini standartlaştırıp denetlenebilir hale getirir.
- Farklı
API Proxy (API Vekil Sunucusu)akışlarında yeniden kullanılabilir imza şablonları oluşturarak bakım maliyetini azaltır. - Mesaj üzerine imza algoritması bilgisini isteğe bağlı ekleyerek doğrulama tarafının dinamik uyarlanmasına imkân tanır.
Çalışma Prensibi
- İstek Gelişi: API Gateway'e gelen her HTTP/HTTPS isteği için, istemin kaynak IP adresi tespit edilir.
- Politika Kontrolü: Dijital İmza politikası aktif ise, sistem aşağıdaki sırayla kontrol yapar:
- Condition (koşul) tanımlı mı? Varsa koşul sağlanıyor mu?
- Politika aktif mi (active=true)?
- Variable kullanılıyor mu yoksa Apinizer default mı?
- Dijital İmza Üretimi: Tanımlı her imza kuralı için kaynak değişkendeki metin okunur, seçilen özel anahtar/sertifika ve algoritma ile imzalanır, çıktı seçilen kodlama (Base64/Hex) ile hedef değişkene yazılır; algoritma değişkeni tanımlıysa aynı anda güncellenir.
- Karar Verme:
- Eşleşme Var: Kaynak değişkende veri bulunursa imza üretilir ve hedef değişkene yerleştirilir.
- Eşleşme Yok: Kaynak veri boşsa imza atlanır, hedef değişken boş değerle güncellenir ve akış devam eder.
- Hata İşleme: Politika kuralına uymayan istekler için özelleştirilebilir HTTP durum kodu ve hata mesajı döndürülür.
Özellikler ve Yetenekler
Temel Özellikler
- Çoklu İmza Tanımı: Tek politika altında farklı mesaj alanlarını farklı algoritmalar ve anahtarlarla imzalama olanağı sağlar.
- Değişken Tabanlı Hedefleme: İmzalanacak veri ve imzanın yazılacağı alan için değişken seçimi yaparak hem istekte hem yanıtta esneklik sunar.
- Sertifika/Anahtar Entegrasyonu: Gizli anahtarlar veya sertifikalar Apinizer Secret Manager üzerinden seçilir, revokasyon kontrolleri otomatik yapılır.
- Aktif/Pasif Durum Kontrolü: Politikanın aktif veya pasif durumunu kolayca değiştirme (active/passive toggle). Pasif durumda politika uygulanmaz ancak yapılandırması saklanır.
- Koşul Bazlı Uygulama: Query Builder ile karmaşık koşullar oluşturarak politikanın ne zaman uygulanacağını belirleme (örn: sadece belirli endpoint'lere veya header değerlerine göre).
İleri Düzey Özellikler
- Dinamik Algoritma Yayını:
signatureAlgorithmVarkullanılarak uygulanan algoritma adı mesaj içine yazdırılabilir ve tüketici sistemlere bilgi sağlar. - Gelişmiş Değişken Yönetimi: Variable Update Dialog ile mevcut değişkenler üzerinde düzenleme yapmadan seçilip güncellenebilir.
- Anında Anahtar/Sertifika Oluşturma: Yapılandırma ekranından yeni Crypto Key veya sertifika kayıtları oluşturularak bekleme süresi olmadan politika güncellenir.
- Export/Import Özelliği: Politika yapılandırmasını ZIP dosyası olarak export etme. Farklı ortamlara (Geliştirme, Test, Canlı Ortam) import etme. Versiyon kontrolü ve yedekleme imkanı.
- Policy Group ve Proxy Group Desteği: Birden fazla politikayı Policy Group içinde yönetme. Proxy Group'lara toplu politika atama. Merkezi güncelleme ve deploy işlemleri.
- Deploy ve Versiyonlama: Politika değişikliklerini canlı ortama deploy etme. Hangi API Proxy'lerde kullanıldığını görme (Policy Usage). Proxy Group ve Policy Group kullanım raporları.
Kullanım Senaryoları
| Senaryo | Durum | Çözüm (Politika Uygulaması) | Beklenen Davranış / Sonuç |
|---|---|---|---|
| REST Yanıtında JSON İmzalama | Dış sistemler yanıt gövdesinin bütünlüğünü doğrulamak istiyor | sourceVar=response.content, signatureVar=response.header.X-Signature, algoritma SHA256withRSA, Base64 çıktı, Crypto Key seç | Yanıt gönderilmeden önce imza hesaplanır, başlığa eklenir, doğrulama tarafı imzayı kontrol eder |
| SOAP İsteğinde Body İmzalama | ESB, gelen SOAP body'i imzalamak zorunda | sourceVar=request.soap.body, signatureVar=request.soap.header.Signature, algoritma SHA1withRSA, Hex çıktı, sertifika seç | İmza SOAP header'a eklenir, alt sistemler mesajın değişmediğini teyit eder |
| IoT Mesajında Algoritma Bildirimi | IoT ağ geçidi imzalama algoritmasını dinamik bildirmek istiyor | signatureAlgorithmVar=request.header.X-Sign-Alg tanımlanır, algoritma SHA512withECDSA | Mesaj hem imza hem algoritma adıyla zenginleşir, cihaz güncellemeye gerek kalmadan çalışır |
| Çoklu Alan İmzalama | Birden fazla JSON alanı ayrı anahtarlarla imzalanacak | İki farklı tanım ile farklı sourceVar ve Crypto Key seçilir | Her alan için bağımsız imza üretilir, tüketici taraf kombinasyon doğrulaması yapar |
| Mikroservisler Arası Yetkilendirme | Servisler arası çağrılarda kimlik doğrulaması için imza gerekiyor | İstek üstbilgisine imza eklenir, Condition ile sadece dahili çağrılarda çalışır | Mikroservis gelen isteğin gerçekten beklenen servisten geldiğini doğrular |
| Arşivleme Öncesi İmza | Belgeler saklanmadan önce değişmezlik garantisi isteniyor | Policy Group üzerinden toplu atanır, sourceVar belge içeriği, imza metadata alanına yazılır | Arşivlenen her belge imzalı hale gelir, denetimlerde kanıtlanabilirlik sağlanır |
| (opsiyonel) Veri Maskeleme Sonrası İmza | Maskelenmiş alanların değişmediğini göstermek için | Maskeleme politikası ardından çalıştırılır, aynı alan üzerine imza atılır | Maskelenmiş verinin bütünlüğü korunur, zincir halinde izlenebilir |