Security Blog

पूरे उद्योग ने अभी इस बात पर सहमति जता दी है कि आपके एजेंट को आपकी कुंजियाँ नहीं दिखनी चाहिए। लेकिन वे उन्हें गलत जगह छिपा रहे हैं।

#389

October 2, 2026 · By Marketing team

← All posts

एक ही हफ़्ते में Claude Code, Hermes और Codex — तीनों ने एजेंटों को कच्चे प्रमाणपत्र दिखने से रोकने वाले सुधार जारी किए। मिलते-जुलते पैच कोई आर्किटेक्चर नहीं हैं: कुंजियाँ हार्नेस में बिल्कुल नहीं रहनी चाहिए।

इस हफ़्ते Anthropic ने Claude Code के चेंजलॉग में चुपचाप एक पंक्ति जोड़कर जारी की: "ठीक किया गया — प्रमाणीकरण की आवश्यकता वाले MCP सर्वर हेडलेस/SDK मोड में मॉडल के सामने auth-stub उपकरण उजागर कर रहे थे" [1]। सरल शब्दों में — जब Claude Code हेडलेस मोड में चलता था (जैसे वह CI और स्वचालित एजेंट पाइपलाइनों में चलता है), तो प्रमाणीकरण उपकरण जो छिपे रहने चाहिए थे, मॉडल के सामने आ जाते थे: AI उन प्रमाणीकरण उपकरणों के नाम और उनके पैरामीटर देख सकता था, और संभवतः उन्हें छेड़कर आज़मा भी सकता था। दुनिया के सबसे अधिक इस्तेमाल होने वाले कोडिंग एजेंट में — 133k स्टार वाले — प्रमाणपत्र की परत ठीक उसी जगह रिस रही थी जहाँ आप इसे सबसे कम देखना चाहेंगे: मॉडल के अपने संदर्भ में।

यह ठीक तो हो गया। लेकिन असली बात सुधार नहीं है। असली बात यह है कि हर गंभीर एजेंट हार्नेस अचानक एक ही लड़ाई क्यों लड़ रहा है।

तीन हार्नेस, एक हफ़्ता, एक ही सहज प्रवृत्ति

देखिए, एक ही 24 घंटे की अवधि में क्या-क्या जारी हुआ:

  • Claude Code ने ऊपर वाले auth-stub रिसाव को ठीक किया और MCP प्रमाणीकरण गेटिंग को सख़्त किया [1]।
  • Hermes (v0.17.0) ने "Managed Scope" जोड़ा — प्रशासक द्वारा पिन किए गए, उपयोगकर्ता द्वारा अपरिवर्तनीय रहस्य, जो फ़ाइलसिस्टम स्तर पर लॉक किए जाते हैं ताकि कोई एजेंट संचालक उन्हें न बदल सके — साथ ही डीबग डंप में रहस्यों को हटाना और डेटा बाहर भेजने के ढाँचे वाले MCP कॉन्फ़िगरेशनों को शुरू होने से पहले रोकना [2]।
  • Codex (v0.141.0) ने रिमोट-एक्ज़ीक्यूशन ट्रैफ़िक को एन्क्रिप्टेड Noise चैनलों में लपेटा और प्लगइन्स को उनके प्रमाणीकरण मोड के आधार पर रूट करना शुरू किया [3]।

तीन प्रतिस्पर्धी, तीन तरीके, एक ही निष्कर्ष: रहस्यों का स्वामित्व हार्नेस के पास होना चाहिए, और एजेंट को कच्ची कुंजियाँ कभी नहीं दिखनी चाहिए। जब प्रतिस्पर्धी एक ही हफ़्ते में इसी नतीजे पर पहुँचें, तो यह कोई चलती-फिरती दीवानगी नहीं है। यह एक पूरी श्रेणी का अंततः यह स्वीकार करना है कि उसका असली उद्देश्य क्या है।

अगली समस्या है प्रमाणपत्रों का बिखराव

पेच यह है। इनमें से हर सुधार हार्नेस के भीतर रहता है। और Claude Code की खामी इसका सीधा प्रमाण है: जब प्रमाणीकरण हार्नेस में रहता है, मॉडल के ठीक बगल में, तो "एजेंट को यह कभी नहीं दिखना चाहिए" एक तथ्य नहीं रहता — वह ऐसा गुण बन जाता है जिसे आपको लगातार इंजीनियर करते रहना पड़ता है, और कभी-कभी वह हेडलेस मोड में विफल भी हो जाता है, जहाँ कोई मनुष्य निगरानी कर ही नहीं रहा होता। आप इसे एक बार घोषित करके निश्चिंत नहीं हो सकते। इसकी रक्षा आपको हर रिलीज़ के साथ, बार-बार करनी पड़ती है।

लेकिन गहरी समस्या कोई अकेला रिसाव नहीं है — असली समस्या तब है जब हर हार्नेस, हर विक्रेता और हर उपयोग-प्रकरण अपना अलग उत्तर जारी करता है। नतीजतन आपके पास Claude Code के भीतर एक वॉल्ट, Hermes के भीतर एक वॉल्ट, Codex के भीतर एक वॉल्ट, यहाँ एक OAuth पूल, वहाँ एक रहस्य-फ़ाइल — आपके हर उपकरण के लिए एक अलग प्रमाणपत्र संग्रह। यही प्रमाणपत्रों का बिखराव है, और यह अगली समस्या है — कोई हल की गई बात नहीं।

भले ही किसी साइलो से रिसाव न हो, फिर भी बिखराव अपने आप में विफलता है। उन्हें चलाने के लिए आपके रहस्य हर जगह कॉपी किए जाते हैं — अधिक प्रतियाँ, चुराने के लिए अधिक ठिकाने। रोटेशन को N बार, हाथ से करना पड़ता है, और जो एक आप भूल जाते हैं, वही आपको जलाता है। और कोई उस इकलौते सवाल का उत्तर नहीं दे पाता जो सचमुच मायने रखता है — किस एजेंट ने कौन-सी कुंजी, किसके विरुद्ध, कब इस्तेमाल की — क्योंकि उसका उत्तर एक दर्जन ऐसे संग्रहों में बिखरा होता है जो आपस में बात ही नहीं करते। आप हर विक्रेता और हर वर्कफ़्लो के लिए एक नया वॉल्ट तैनात नहीं कर सकते। यह बढ़ने लायक नहीं है। टूटने वाली चीज़ यही है।

कुंजियाँ हार्नेस में बिल्कुल नहीं रहनी चाहिए

जो सुधार आपको कभी जारी ही नहीं करना पड़ता, वह वही है जिसमें एजेंट शुरू से ही प्रमाणीकरण अपने पास रखता ही नहीं। प्रमाणपत्रों को एक ही ऐसे प्राधिकरण में रखिए जो हर हार्नेस के बाहर हो — हर विक्रेता के लिए एक अलग वॉल्ट नहीं, बल्कि उन सब के नीचे एक ही। एजेंट — चाहे Claude Code में हो, Codex में हो, Hermes में हो, फ़र्क़ नहीं पड़ता — एक नामित कार्रवाई के लिए अनुरोध करता है और ठीक उसी के लिए सीमित, क्षणिक प्रमाणपत्र प्राप्त करता है, जो जीवंत रूप से लिया जाता है और उपयोग के बाद चला जाता है। मॉडल के संदर्भ में कोई auth-stub नहीं होता जो ग़लती से उजागर हो जाए, क्योंकि प्रमाणीकरण हार्नेस में था ही नहीं। बिखराव नहीं होता, क्योंकि हर उपकरण के लिए अलग संग्रह के बजाय एक ही संग्रह है — एक बार रोटेट कीजिए, N बार नहीं। और हर पहुँच एक ही ऑडिट ट्रेल में दर्ज होती है, बजाय एक दर्जन साइलों में बिखरने के जो यह नहीं बता सकते कि किसने क्या इस्तेमाल किया। (रहस्य को उस जगह से दूर रखना, जहाँ कोड चलता है — वे नियम जो एक प्रमाणपत्र उपकरण को निभाने चाहिए उनमें सबसे ऊपर के पायदान पर है — उद्योग ने अभी एक पूरा हफ़्ता इसी को जानने में बिताया।)

और यह वह हिस्सा है जो सुविधा नहीं, सुरक्षा की सीमा रेखा है: प्रमाणपत्र एजेंट के साथ एक ही प्रणाली में नहीं रह सकता। दोनों को एक साथ रखिए तो वे एक ही प्रभाव-क्षेत्र साझा करेंगे — एक प्रॉम्प्ट इंजेक्शन, एक ज़हरीला MCP सर्वर, एक साझा डीबग डंप, अगली auth-stub खामी, और जो कुछ भी एजेंट तक पहुँचता है, कुंजियाँ उसके साथ ही पहुँच जाती हैं। इसीलिए दिखाई देना भर ही उल्लंघन है: जिस क्षण कोई रहस्य ऐसी जगह पहुँचता है जहाँ एजेंट उसे देख सकता है, आप उसे पहले से रिसा हुआ मानकर रोटेट कर देते हैं — ठीक वैसे ही जैसे हर सावधान टीम ने उस दिन उस Claude Code auth-stub के साथ किया था जब वह जारी हुआ था। प्रमाणपत्र को हाथ भर की दूरी पर रखिए, ऐसी प्रणाली में जहाँ एजेंट केवल अनुरोध कर सके — कभी पढ़ न सके, कभी अपने पास रख न सके — और पूरी तरह से समझौते में आ चुका एजेंट भी उसे बाहर नहीं भेज पाएगा जो कभी उसकी पहुँच में था ही नहीं। वह किसी कार्रवाई का अनुरोध कर सकता है। वह कुंजी उठाकर ले नहीं जा सकता। वह दूरी ही सुरक्षा है; प्रक्रिया के भीतर बना वॉल्ट इसे किसी भी क़ीमत पर नहीं दे सकता।

Clavitor ठीक यही रेखा खींचता है। पूरे क्षेत्र ने अभी इस सिद्धांत को सिद्ध कर दिया है — एजेंट को कुंजियाँ नहीं दिखनी चाहिए। हम बस यह नहीं मानते कि आपको इसे अपने हर हार्नेस के भीतर दोबारा सिद्ध करना पड़े, और यह भी नहीं मानते कि आपकी कुंजियाँ रखने वाली वस्तु वही हो जिसे अभी-अभी किसी हमलावर ने समझौते में ले लिया।

हार्नेस टीमों को श्रेय दीजिए: प्रशासक-पिन किए गए रहस्य, एन्क्रिप्टेड रिले, fail-closed डिफ़ॉल्ट — यह सचमुच अच्छा इंजीनियरिंग काम है। लेकिन बार-बार लौट आने वाले रिसाव के लिए हफ़्ते भर का सुधार कोई आर्किटेक्चर नहीं है — यह लक्षण है। असली आर्किटेक्चर वह है जिसमें कुंजियाँ वहाँ हों ही नहीं जहाँ से वे रिस सकें।

जब तीन प्रतिस्पर्धी एक ही हफ़्ते में एक ही घाव पर पैच लगाएँ, तो घाव डिज़ाइन ही है। एजेंट को आपकी कुंजियाँ नहीं दिखनी चाहिए — इसलिए उन्हें उस जगह रखना बंद कीजिए जहाँ वे दिख सकती हैं।

Clavitor (@clavitorai) एक प्रमाणपत्र वॉल्ट है जो AI एजेंटों के लिए बनाया गया है — और उन्हीं के विरुद्ध भी। clavitor.ai

स्रोत

[1] Claude Code v2.1.183 — "प्रमाणीकरण की आवश्यकता वाले MCP सर्वर हेडलेस/SDK मोड में मॉडल के सामने auth-stub उपकरण उजागर कर रहे थे — ठीक किया गया" — https://github.com/anthropics/claude-code/releases/tag/v2.1.183

[2] Hermes Agent v0.17.0 — Managed Scope (प्रशासक-पिन किए गए रहस्य), रहस्यों को हटाना, एक्सफ़िल-कॉन्फ़िगरेशन अवरोधन — https://github.com/NousResearch/hermes-agent/releases

[3] OpenAI Codex v0.141.0 — एन्क्रिप्टेड Noise रिले चैनल, प्रमाणीकरण-मोड आधारित प्लगइन रूटिंग — https://github.com/openai/codex/releases