Aracı Ödemelerinde Yetki ve Denetim Ayrılığı: Fişi Yazan Kalem Onu Denetleyemez Yazılım

Aracı Ödemelerinde Yetki ve Denetim Ayrılığı: Fişi Yazan Kalem Onu Denetleyemez

Aracı ödemelerinde güvenlik, yetkilendirme ve denetim ayrılığına dayanır. Makalede, üç kritik prensip ele alınıyor.

Aracı ödemelerinde standartlar, bir imzaya odaklanıyor: Yetkilendirilmiş aracıyı kanıtlamak için yetki belgesini imzalayıp ödeme çağrısına ekleyin, böylece transfer güvence altına alınsın. Ancak transferin güvence altına alınması, sınırın kanıtlanabilir olması anlamına gelmez. İşte bu boşluk, aracı ödemelerinin başarısız olacağı yerdir. Bu yazıda, John Frandsen (open-banking.io) ile yapılan açık tartışmalardan çıkan üç temel özellik üzerinden bu konuyu derinlemesine inceliyoruz.

İlk prensip: Yetkilendirmenin bir saati vardır. T0 anında yakalanan bir yetki belgesi, T0+delta anında oluşan bir niyeti bağlamaz çünkü aradaki yetkilendirme durumu değişmiş olabilir. İptal edilen bir onay, süresi dolan bir SCA veya düşürülen günlük limit gibi durumlar, yetkinin geçerliliğini etkiler. Bu nedenle bağlama, 'yetki belgesi icrayı yetkilendirir' değil, 'yetki belgesi icrayı yetkilendirir ve icra anında yetki belgesi hala geçerlidir' şeklindedir. Güvenli kural, iptal-baskın modeldir: iptal edilmiş bir yetki belgesi, niyet ne kadar taze görünürse görünsün engeller. Eskimiş bir niyet, iptal edilmiş bir yetki belgesinin reddedeceği bir işlemi asla geriye dönük olarak yetkilendirmemelidir. Yetki belgesini, icra anında hala geçerli olup olmadığını kontrol etmeden tekrar oynatan bir uygunluk testi, çalışma zamanı sözleşmesini değil, bir anlık görüntüyü test ediyordur.

İkinci prensip: Denetleyen, denetlenen olamaz. Fişi oluşturan taraf, aynı zamanda onay zincirini de tahrif edebiliyorsa, fiş hiçbir şey kanıtlamaz. Bu örüntü, kurumsal sistemlerde yaygındır. PSD2'de, RTS Madde 5 dinamik bağlama gerekliliği, bağlamayı ASPSP'nin imzası altına koyar; bu, ödeme başlatıcısının üretemeyeceği bir yetkidir. Kural genelleşir: bir kontrol, ancak denetlenen tarafın yazamayacağı bir yansımadan inşa edildiğinde değer kazanır. Bu, görevler ayrılığıdır ve aracı ödemelerinde bu zorunludur. Fişi yazan kalemin aynı zamanda onu denetlediği herhangi bir sistem, bir denetim izi değil, sadece tanıklık üretir.

Nasıl Önlem Alınmalı?

Üçüncü prensip: Bütünlük, istediğiniz özellik değildir. Gerçek ödeme zincirleri, nesneyi meşru olarak değiştirir: döviz dönüşümü, ücret kesintisi, ödemeye dokunmak için meşru nedenleri olan aracılar üzerinden yönlendirme. Bu nedenle bağlama, 'baytlar değişmedi' değil, 'baytlar yalnızca yetki belgesinin önceden yetkilendirdiği alanlarda değişti' şeklindedir. Yetkili değişikliklerle bütünlük. Bunu uygulayan denetleyici, anlamsal olarak opak kalmalıdır. Değişikliği, yetki belgesinin bildirilen zarfına (hangi alanlar, hangi sınırlar, hangi bacaklar) karşı kontrol eder. Ödemenin kendisini asla yorumlamaz, çünkü ödemeyi anladığı an, denetlediği şeyle yeniden birleşir ve ayrılık özelliği kaybolur.

Özetle: Sadece sınırı değil, bağlamayı da standartlaştırın. Tel üzerindeki bir imza, size bir aracının bir kez yetkilendirildiğini söyler. Bir bağlama ise, icranın hala geçerli bir yetki belgesiyle eşleştiğini, onu tahrif edemeyecek bir tarafça onaylandığını ve yalnızca yetki belgesinin izin verdiği şekilde değiştirildiğini söyler. Bunlar farklı iddialardır ve yalnızca ikincisi bir saldırgana karşı dayanıklıdır.

Önemli Gelişmeler

Katkılar: Zamansal canlılık durumu ve denetleyici bağımsızlığı çerçevesi John Frandsen'e (open-banking.io) aittir ve önceki yazının yorumlarında tartışılmıştır. Ön baskının v2 sürümü Zenodo'da (DOI 10.5281/zenodo.21262985) yayımlanmıştır.

Kaynak: dev.to

Paylaş: