Protokol çevre hattıdır
MCP tarzı taşıma katmanları, araçları çağıran tek bir güvenilir çağıran için inşa edildi. Bu modelde taşıma katmanı bir borudur: bir istemci ile bir sunucu arasında JSON-RPC çerçevelerini taşır ve ilginç güvenlik kararları onun üstünde, araç uygulamasında alınır. Aynı taşıma katmanı, farklı asıllara sahip eş agent'lar için kullanıldığında, boru çevre hattı haline gelir. Bir isteği yeniden serileştiren her atlama, köken bilgisinin düştüğü bir yerdir. Bir kullanıcı isteği olarak başlayan, bir planlayıcı agent tarafından yeniden yazılan ve bir retrieval agent tarafından iletilen bir mesaj, bir araç sunucusuna kimin neyi istediğine dair güvenilir bir işaret olmadan ulaşır.
Yetenek keşfi ile yetenek yetkilendirmesinin birbirine karıştırılması bunu daha da kötüleştirir. Keşif, "bu uç nokta ne yapabilir?" sorusunu yanıtlar. Yetkilendirme, "bu asıl, bu görev için o yeteneği çağırmaya izinli mi?" sorusunu yanıtlar. MCP tarzı kayıt defterleri tipik olarak birincisini açığa çıkarır ve ikincisini çağırana bırakır. Tek çağıranlı bir modelde bu savunulabilir. Eş agent modelinde ise bu, kayıt defterine ulaşabilen herhangi bir agent'ın tüm yetenek yüzeyini numaralandırabileceği ve çağırmayı deneyebileceği anlamına gelir; alıcı agent'ın ise reddetmek için taşıma katmanı düzeyinde hiçbir dayanağı yoktur. Kayıt defteri, her katılımcıya verilen bir saldırı yüzeyi haritası haline gelir.
Bu, MCP'nin bir araç protokolü olarak kusuru değildir. Bir araç protokolünü, güven modelini yeniden incelemeden eş mesajlaşmaya genişletmek bir kategori hatasıdır. İlgili soru, çerçevelerin iyi biçimlendirilmiş olup olmadığı değil, taşıma katmanının bunları kimin, kimin adına ve hangi kısıtlamalar altında gönderdiğine tanıklık edip edemeyeceğidir.
Aynı ad alanını paylaşan agent'lar arasında kimlik taklidi
Agent'lar bir mesaj alanındaki dizeyle tanımlandığında, kriptografik bir asılla tanımlandığında olduğu gibi değil, herhangi bir agent herhangi bir kimliği iddia edebilir. Bir planlayıcının bir işçiye adıyla hitap ettiği bir sürüde, ele geçirilmiş ya da yalnızca hatalı bir işçi, planlayıcıdan geliyormuş gibi görünen mesajlar gönderebilir. Aşağı akıştaki agent'ların gerçek bir talimatı sahte olandan ayırt etmesinin hiçbir yolu yoktur, çünkü taşıma katmanı ne bir imza ne de bir kanal bağı taşır. Başarısızlık sessizdir: sahte mesaj iyi biçimlendirilmiştir, yetenek mevcuttur ve çağrı başarılı olur.
Karıştırılmış vekil akışları

Düşük ayrıcalıklı bir agent, yüksek ayrıcalıklı bir çağrıyı iletir. Bu, taşıma katmanı mesajı değil bağlantıyı yetkilendirdiğinde ortaya çıkar. Kendi meşru işi için geniş bir kimlik bilgisi tutan bir agent, buna sahip olmaması gereken bir çağıran adına o kimlik bilgisini kullanmaya yönlendirilebilir. Vekil kötü niyetli değildir; protokolün izin verdiğini yapmaktadır. Klasik hafifletme — çağıranın kimliğini kontrol etme — başarısız olur çünkü çağıran vekildir ve vekil yetkilidir. Eksik olan, özgün asıl ile belirli çağrı arasındaki bağdır.
Uzun ufuklu çalışmalarda mesaj replay'i
Uzun ufuklu agent çalışmaları durumu kontrol noktasına kaydeder ve devam eder. Taşıma katmanı, kontrol noktasından sağ çıkan bir nonce taşımıyorsa, bir adımda yakalanan bir mesaj başka bir adımda replay edilebilir. Replay anlamsal olarak geçerli olabilir: yetenek hâlâ mevcuttur, argümanlar hâlâ ayrıştırılır ve alıcı agent'ın mesajı daha önce gördüğüne dair hiçbir anısı yoktur. Saatler ve birçok agent boyunca uzanan bir çalışmada, replay penceresi geniştir ve kalıcı bir nonce'un yokluğu, taşıma katmanının bir yeniden denemeyi bir saldırıdan ayırt edememesi anlamına gelir.
Her mesajı bir asıla ve bir görev tanımlayıcısına bağlayın
Bir oturum tanımlayıcısı yeterli değildir. Oturumlar yeniden kullanılır, havuzlanır ve bazen görevler arasında paylaşılır. Her mesaj açık bir asıl (kim hareket ediyor) ve bir görev tanımlayıcısı (bu eylem neyin parçası) taşımalıdır ve her ikisi de mesaj imzası tarafından kapsanmalıdır. Asıl, acil gönderen değil, özgün isteyendir. Görev tanımlayıcısı, alıcının bağlantıya değil işe kapsamlandırılmış politika uygulamasını sağlar.
Somut bir mekanizma: mesaj zarfının kanonik serileştirmesini — asıl, görev tanımlayıcısı, yetenek adı ve monoton olarak artan bir sıra numarası dahil — gönderen agent tarafından tutulan bir anahtarla imzalayın. Alıcı, imzayı asıla bağlı bir anahtara karşı doğrular, sıra numarasını o görev için en son görülenle karşılaştırır ve ancak bundan sonra yeteneğin izinli olup olmadığını değerlendirir. Bu yeni bir kriptografi değildir; taşıma katmanının köken hakkında herhangi b
Yetenekleri bağlantıya değil mesaja kapsamlandırın

Bağlantı düzeyinde yetkilendirme, karıştırılmış vekil akışlarının köküdür. Bir yeteneği çağırmaya yetkili bir bağlantı, onu herhangi bir nedenle çağırabilir. Buna karşılık mesaj düzeyinde bir yetenek hibesi, yeteneği, görevi, asılı ve bir son kullanma tarihini adlandırır. Alıcı, bağlantıyı değil hibeyi kontrol eder. Bu, vekilin yükseltme yapamayacağı anlamına gelir: yalnızca kendisine verilen görevler için kendisine düzenlenmiş hibeleri sunabilir.
Ödünleşim gerçektir. Mesaj düzeyinde hibeler her çağrıya bir token ekler, bir düzenleyici gerektirir ve bir iptal sorunu getirir. Yüksek verimli iç sürülerde, ek yük gecikme ve düzenleyicinin karmaşıklığı açısından ölçülebilirdir. Alternatif — bağlantıya güvenmek — daha ucuzdur ve açıkta başarısız olur. Tasarım seçimi, taşıma katmanının köken konusunda kapalıda mı başarısız olacağıdır. Güven sınırları arasında agent'tan agent'a iletişim için olmalıdır.
Taşıma katmanı günlüğünü yetkili kayıt yapın
Agent tarafındaki günlükler tavsiye niteliğindedir. Bir agent ele geçirilebilir, yeniden başlatılabilir ya da ne yaptığı konusunda yanlış olabilir. Bir mesajın tek kaydı onu gönderen ya da alan agent'ta ise, kayıt kanıt değildir. Taşıma katmanı, doğrulama sonucuyla birlikte her imzalı zarfı günlüğe kaydetmelidir ve bu günlük, denetim ve replay tespiti için yetkili kayıt olmalıdır. Bu ayrıca nonce benzersizliğini kontrol noktaları arasında uygulamak için bir yer sağlar: neyin görüldüğünü agent değil, taşıma katmanı hatırlar.
Dürüst ödünleşim
Bu kuralların her biri işi agent'tan taşıma katmanına taşır. Amaç budur ve aynı zamanda maliyettir. İmzaları doğrulayan, sıra numaralarını izleyen, mesaja kapsamlandırılmış hibeler düzenleyip iptal eden ve kalıcı bir günlük tutan taşıma katmanları, bayt taşıyan borulardan daha karmaşıktır. Anahtar yönetimi, bir düzenleyici ve yeniden başlatmalardan sağ çıkan bir günlük gerektirirler. Gecikme ve başarısızlık modları eklerler. Tek çağıranlı bir araç çağrısında bu karmaşıklık haklı değildir. Asılların ayrıştığı ve uzun ufuklu çalışmaların kontrol noktasına kaydedip devam ettiği bir eş agent sürüsünde ise karmaşıklık güvenlik özelliğinin kendisidir. Soru, bunun bedelinin ödenip ödenmeyeceği değil, nerede ödeneceğidir: taşıma katmanında bir kez mi, yoksa her agent'ta tekrar tekrar ve tutarsız biçimde mi.
Sırada ne yapmalı
Taşıma katmanını bir saldırı yüzeyi olarak ele alın ve onu öyle denetleyin. Bir isteğin yeniden serileştirildiği atlamaları numaralandırın ve hangi köken bilgisinin sağ kaldığını sorun. Yetenek keşfini yetenek yetkilendirmesinden ayırın ve çağrı anında bir hibe talep edin. Mesajları oturumlara değil asıllara ve görevlere bağlayın. Taşıma katmanı günlüğünü yetkili kılın ve replay tespiti için kullanın. Bunların hiçbiri MCP tarzı taşıma katmanlarını terk etmeyi gerektirmez; onları eş iletişimin ihtiyaç duyduğu güven ilkelleriyle genişletmeyi gerektirir. Agent protokol güvenliği üzerine ilgili çalışmalar için bu analize bakın.
