
Secret-Use Delegation Protocol — एजेंटिक सिस्टम्स के लिए प्रोटोकॉल-स्तरीय सीक्रेट उपयोग
एजेंटिक सिस्टम के लिए प्रोटोकॉल-स्तरीय सीक्रेट उपयोग।
arXiv:2604.24920 का संदर्भ कार्यान्वयन — देखें इस पेपर को उद्धृत करें।
sudp एक स्वायत्त Requester (R) को सीक्रेट-समर्थित ऑपरेशन प्रस्तावित करने, एक Authorizer (A) को ठीक उसी ऑपरेशन को अधिकृत करने, और एक Custodian (T) को उसे निष्पादित करने देता है। प्रत्यायोजन की इकाई एक उपयोग है, न कि सीक्रेट।
┌─────────────────────────┐
│ Authorizer A │
│ (passkey on a device) │
└────────────┬────────────┘
│ signs β over (DS ‖ r ‖ H(o))
▼
┌──────────────┐ ┌───────────────┐ ┌──────────────┐
│ Requester R │ ─o─▶ │ Custodian T │ ─s─▶ │ Environment │
│ (agent) │ │ │ │ E │
│ │◀ρ────│ holds sealed Σ│ │ │
└──────────────┘ └───────────────┘ └──────────────┘
R को s कभी नहीं दिखता और उस पर कोई पुनः प्रयोग योग्य प्राधिकार नहीं मिलता — भले ही R पूरी तरह से
समझौता किया गया हो (prompt injection, runtime shim, आदि)।
@misc{yu2026sudp,
title = {SUDP: Secret-Use Delegation Protocol for Agentic Systems},
author = {Xiaohang Yu and Hejia Geng and Xinmeng Zeng and William Knottenbelt},
year = {2026},
eprint = {2604.24920},
archivePrefix = {arXiv},
primaryClass = {cs.CR},
url = {https://arxiv.org/abs/2604.24920}
}
Xiaohang Yu, Hejia Geng, Xinmeng Zeng, और William Knottenbelt। "SUDP: Secret-Use Delegation Protocol for Agentic Systems." arXiv preprint arXiv:2604.24920 (2026).
| भूमिका | स्रोत | प्रकाशित रूप में |
|---|---|---|
| Custodian (T) | custodian/rust | crates.io पर sudp |
| Authorizer (A) | authorizer/ts | npm पर @sudp-protocol/authorizer |
| Requester (R) | requester/ts | npm पर @sudp-protocol/requester |
पूर्वापेक्षाएँ: Rust 1.85+ (rustup के माध्यम से) और Node.js 20+।
git clone https://github.com/xhyumiracle/sudp
cd sudp/examples/protocol-demo
./run.sh
तीनों पैकेज बनाता है, Custodian को स्पॉन करता है, एक Node
स्क्रिप्ट में R + A चलाता है, भूमिका के अनुसार रंग-कोडित प्रत्येक वायर इंटरैक्शन प्रिंट करता है, और
एक adversarial जाँच के साथ समाप्त होता है (A के हस्ताक्षर करने के बाद R o के साथ छेड़छाड़ करता है → T अस्वीकार करता है)।
API-स्तरीय उपयोग के लिए: custodian/rust ·
authorizer/ts · requester/ts।
एजेंट लेखकों को आमतौर पर केवल
@sudp-protocol/requester की आवश्यकता होती है — टाइप्ड Operation बिल्डर
और shape वैलिडेटर, कोई ट्रांसपोर्ट नहीं, कोई फ्रेमवर्क एडाप्टर नहीं। Requester
सबसे अधिक प्रतिस्थापन योग्य परत है; प्रत्येक एजेंट फ्रेमवर्क अपना स्वयं का ग्लू जोड़ता है।
Conformance वेक्टर Authorizer के बाइट्स को Custodian के विरुद्ध बाइट स्तर पर लॉक करते हैं — कंपोज़िट shapes निर्माण के अनुसार संरेखित रहते हैं।
| सतह | Rust एंकर | TS एंकर |
|---|---|---|
canonical(o) | Operation::canonical_bytes यूनिट टेस्ट | conformance.test.ts: canonical: nested ordering |
β + DS_BIND | beta_matches_ts_authorizer_conformance_vector | conformance.test.ts: β: matches Rust... |
बैच β (H(canonical(ops))) | batch_beta_matches_ts_authorizer_conformance_vector | conformance.test.ts: batch β: matches Rust... |
derive_wrapping_key | derive_wrapping_key_matches_ts_authorizer_conformance_vector | conformance.test.ts: deriveWrappingKey: matches Rust... |
| AEAD एन्क्रिप्ट (निश्चित nonce) | aead_matches_ts_authorizer_conformance_vector | conformance.test.ts: aeadEncrypt: matches Rust... |
wrap_ad लेआउट | WrapBinding::to_canonical_ad टेस्ट | conformance.test.ts: wrap_ad: DS_WRAP ‖ cid ‖ ver_be |
seal_ad लेआउट | phases::setup::seal_ad (setup टेस्ट) | conformance.test.ts: seal_ad: DS_SEAL ‖ ver_be |
प्रति-रिकॉर्ड सील (record_aad / K_aead / सील्ड फ्रेमिंग) | state::record::tests::conformance_* | conformance.test.ts: per-record conformance vectors |
WRAP_VERSION ↔ CURRENT_VERSION | state::CURRENT_VERSION = 1 | conformance.test.ts: WRAP_VERSION matches Rust... |
CI प्रत्येक पुश पर दोनों हिस्सों को चलाता है:
cd custodian/rust && cargo test
cd authorizer/ts && npm test
cd requester/ts && npm test
1.0 से पहले वायर फ़ॉर्मेट और ट्रेट आकार अभी भी बदल सकते हैं। उत्पादन में माइनर वर्ज़न पिन करें:
# Cargo.toml
sudp = "~0.1"
// package.json
"@sudp-protocol/authorizer": "~0.1.0",
"@sudp-protocol/requester": "~0.1.0"
SECURITY.md देखें।
Apache-2.0। LICENSE देखें।