Documentation Index
Fetch the complete documentation index at: https://api-docs.iklim.co/llms.txt
Use this file to discover all available pages before exploring further.
Güvenli API İstek İmzalama ve Idempotency Mekanizması
Genel Bakış
🧩 Bu API, HMAC tabanlı istek imzalama, zaman damgası, benzersiz istek tanımlama (nonce) ve idempotency anahtarları içeren sağlam bir güvenlik mekanizmasından yararlanır. Bu mekanizmalar; isteğin bütünlüğünü, kimlik doğrulamasını ve yeniden oynatılamamasını güvence altına alır, aynı zamanda yinelenen gönderimleri güvenle yönetir. 🛡️ 📘 Bu belgede her bir mekanizma, amaçları ve gerekli istemci mantığının nasıl uygulanacağı (örneğin Postman veya özel API istemcilerinde) açıklanmaktadır.1. HMAC İmzası (X-Signature Başlığı)
Nedir?
🔑 Bir HMAC (Karma Tabanlı Mesaj Kimlik Doğrulama Kodu), paylaşılan bir sır ve istek verileri kullanılarak oluşturulan bir kriptografik imzadır. Talebin değiştirilememesini ve gönderenin kimliğinin doğrulanabilmesini sağlar.Amacı
- Bütünlük 🛡️: İsteğin herhangi bir kısmının (yöntem, URI, gövde, zaman damgası) değiştirilip değiştirilmediğini tespit eder.
- Kimlik Doğrulama 🔐: İsteğin gizli anahtarı bilen güvenilir bir istemciden geldiğini doğrular.
- Yeniden Oynatma Önleme ♻️: Bir zaman damgasına ve benzersiz değerlere bağlı olarak yeniden oynatma saldırılarını tespit edilebilir hale getirir.
Nasıl Kullanılır?
- İstemci imzalamak için HTTP yöntemini, tam istek yolunu (sorgu dahil), milisaniye cinsinden geçerli zaman damgasını ve çözümlenmiş istek gövdesini birleştiren bir dize oluşturur 🧾:
- İstemci, paylaşılan anahtarı (güvenli bir kasada tutulur, asla ifşa edilmez) kullanarak HMAC SHA256 imzasını oluşturur 🔒:
- Bu imza
X-Signatureistek başlığında gönderilir 🚀.
Kullanılmazsa ne olur?
- İstemci http durumu
400 - Hatalı İstekile bir hata mesajı alacaktır
İmza geçerli değilse ne olur?
- İstemci, http durumu
401 - Yetkisizolan bir hata mesajı alacaktır.
2. Zaman Damgası (X-Timestamp Başlığı)
Nedir?
⏱️ İsteğin oluşturulduğu andaki Unix zaman damgası (milisaniye cinsinden).Amaç
- Tekrar Oynatma Önleme 🛑: Sunucu geçerli istekler için katı zaman pencereleri uygulayabildiğinden, bir saldırganın daha önce geçerli olan bir isteği tekrar kullanmasını önler.
Nasıl Kullanılır?
- İstemci, isteği göndermeden hemen önce zaman damgasını oluşturur ve bunu
X-Timestampbaşlığı olarak ekler ⌚.
Kullanılmazsa ne olur?
- İstemci, http durumu
400 - Hatalı İstekolan bir hata mesajı alacaktır
3. Nonce - Tek Seferlik (X-Nonce Başlığı)
Nedir?
🎲 Bir nonce, her istekte bulunan rastgele oluşturulmuş benzersiz bir tanımlayıcıdır (UUID v4).Amaç
- Yeniden Oynatma Önleme 🔁: Her isteği benzersiz bir şekilde tanımlayarak isteğin yeniden oynatılmasını daha da önler. Yöntem, URI ve gövde aynı olsa bile, nonce farklı olacaktır.
Nasıl Kullanılır?
- İstemci her istek için yeni bir UUID v4 oluşturur ve bunu
X-Noncebaşlığı olarak ekler 🎯.
Kullanılmazsa ne olur?
- İstemci, http durumu
400 - Hatalı İstekolan bir hata mesajı alacaktır
Yeniden kullanılırsa ne olur?
- İstemci http durumu
409 - Çakışmaile bir hata mesajı alacaktır
4. Idempotency Anahtarı (X-Idempotency-Key Başlığı)
Nedir?
🪪 Her istek için bir tekil tanımlayıcı (UUID v4), sunucunun yinelenen gönderimleri tanımasını ve güvenli bir şekilde göz ardı etmesini sağlar (örneğin, bir POST isteğinin yeniden denenmesi).Amaç
- Idempotency 🔂: Ağ hataları nedeniyle bir isteğin yeniden denenmesinin yinelenen kaynak oluşturma veya yan etkilere neden olmayacağını garanti eder.
Nasıl Kullanılır?
- İstemci her işlem için yeni bir UUID v4 oluşturur ve bunu
X-Idempotency-Keybaşlığı olarak gönderir 📮.
Kullanılmazsa ne olur?
- İstemci, http durumu
400 - Hatalı İstekolan bir hata mesajı alacaktır
Yeniden kullanılırsa ne olur?
- İstemci http durumu
409 - Çakışmaile bir hata mesajı alacaktır
Güvenlikle İlgili Hususlar
- HMAC için kullanılan
anahtaristemci kodunda veya belgelerinde asla paylaşılmamalı veya ifşa edilmemelidir 🔐. - Ortadaki adam saldırılarını önlemek için her zaman HTTPS kullanın 🌐.
- Sunucular,
X-Timestampiçin izin verilen maksimum bir zaman eğriliği uygular ve belirli bir pencere içinde kullanılmış/tekrarlanmışX-NonceveyaX-Idempotency-Keydeğerlerini reddeder ⛔.
Örnek Başlıklar
Özet Tablo 📊
| Başlık | Değer/Format | Amaç |
|---|---|---|
| X-Signature | Hexadecimal string | Orijinallik/bütünlük talebi |
| X-Timestamp | Milliseconds since epoch | Yeniden oynatmayı önler |
| X-Nonce | UUID v4 | Teklik/tekrarı önleme |
| X-Idempotency-Key | UUID v4 | Yeniden denemeler için Idempotency |