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 toplu olarak, istemci isteklerinin bütünlüğünü, gerçekliğini ve tekrarlanamazlığını ve ayrıca yinelenen gönderimlerin güvenli bir şekilde ele alınmasını sağlar.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.
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.
İ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:
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.
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.
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).
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-Timestamp için izin verilen maksimum bir zaman eğriliği uygular ve belirli bir pencere içinde kullanılmış/tekrarlanmış X-Nonce veya X-Idempotency-Key değerlerini reddeder.