Přeskočit na obsah
Bezpečnost aktualizováno 23. 9. 2026 4 min čtení

OpenClaw pustí uložený klíč jen na vyjmenované servery, zatím v předběžném vydání

Agentní nástroj OpenClaw vydal 15. srpna předběžnou verzi, ve které podřízený proces místo klíče k cizímu rozhraní dostane jen zástupnou hodnotu. Skutečný klíč za ni dosadí až proxy uvnitř brány, a to výhradně u serverů vyjmenovaných dopředu. Ve vydání, které registr npm nabízí jako výchozí, ta pojistka není, přestože ji dokumentace na webu popisuje bez poznámky.

Agent, který má něco vyřídit na internetu, potřebuje klíč k cizímu rozhraní. Dokud ten klíč leží v proměnné prostředí podřízeného procesu, může s ním ten proces zavolat kamkoli. Nástroj OpenClaw na to od 15. srpna nabízí odpověď: klíč do procesu vůbec nepustí a dosadí ho až brána, a to výhradně u serverů, které jste vyjmenovali dopředu.

Visací zámek a dva klíče k němu
Visací zámek Solex položený vedle svých dvou klíčů. Foto: Trougnouf, Wikimedia Commons (CC BY 4.0)

Předběžné vydání 2026.8.1-beta.2 vyšlo 15. srpna 2026 a vazba uložených klíčů na cílové servery stojí v jeho poznámkách hned jako první bod. OpenClaw je agentní nástroj postavený kolem brány, přes kterou jdou rozhovory, připojené kanály i spouštění příkazů; na GitHubu má přes 386 tisíc hvězd.

Klíč dosadí až proxy, těsně před odesláním

Postup popisuje dokumentace brány. V prostředí podřízeného procesu nestojí klíč, ale zástupná hodnota tvaru oc-sent-v2.…end; dokumentace jí říká sentinel a je to ověřený šifrový text, ne použitelný přihlašovací údaj. Odchozí požadavky vede brána přes vlastní proxy na místní smyčce a ta zástupnou hodnotu nahradí skutečným klíčem v adrese, v hlavičkách i v těle, těsně předtím než požadavek opustí stroj.

Nahradí ji ovšem jen tehdy, když cílový server u toho klíče stojí v seznamu. Jména se ukládají malými písmeny v ASCII nebo punycode a porovnávají se přesně; schéma, cesta, port ani hvězdička se nepřijímají a klíč bez jediného povoleného serveru se nedosadí nikdy. Seznam plní opakovatelný přepínač:

openclaw secrets store set OPENAI_API_KEY --allow-host api.openai.com

Požadavek na jinou adresu proxy odmítne a do chybové hlášky vypíše jméno klíče i přesný příkaz, kterým by se ten server povolil. Tělo požadavku se prochází proudově s omezeným překryvem, takže záměna vyjde i u velkého souboru, kde zástupná hodnota přesahuje přes hranici dvou odesílaných částí.

Zapíná se ručně a platí jen pro příkazy od brány

Ve výchozím stavu je celá proxy vypnutá; zapne se přepnutím secrets.egressProxy.enabled na true a restartem brány. Podřízený proces pak dostane do prostředí HTTPS_PROXY a HTTP_PROXY s přihlášením platným pro jediný běh a čtyři proměnné s cestou k dočasné certifikační autoritě. Ta vzniká při každém startu brány, její adresář má práva 0700 a soukromé klíče 0600, při vypnutí brány se maže a do systémového úložiště důvěryhodných certifikátů se podle dokumentace neinstaluje. Proxy se ověřuje obyčejným Basic s uživatelem openclaw a náhodným heslem na jeden běh; chybné nebo prošlé přihlášení dostane odpověď 407 a dál se nepřepošle.

Rozsah je úzký. Ochrana platí jen na příkazy, které spouští sama brána. Sandbox ani vzdálené spouštění přes node nedostanou proměnné proxy ani zástupné hodnoty, takže se ke sdíleným klíčům nedostanou vůbec. Do cizích agentních prostředí položky ze společného úložiště nevedou taky: app-server Codexu ani potomci ACP jako Claude Code si prostředí staví sami a ochranu přihlašovacích údajů řeší po svém.

Meze, které projekt vypisuje sám

Výčet omezení je v dokumentaci delší než popis samotné funkce. Vazba na server nedělá ze serveru důvěryhodné místo: služba, která přijatý údaj vrátí v odpovědi, ho agentovi předá stejně. Pravidlo stojí na jménu, ne na IP adrese, takže podvržené DNS pošle povolené jméno jinam. Nešifrovaný přenos se odmítá, ne chrání. Ke vzdálenému serveru mluví proxy jen protokolem HTTP/1.1, WebSocket nepřepisuje, HTTPS na jiném portu než 443 mezi podporované cíle nepatří a procesy na pozadí ztratí oprávnění ve chvíli, kdy skončí běh, pod kterým vznikly.

K tomu patří jedna věta o samotném úložišti: hodnoty v něm šifrované nejsou. Leží ve sdílené databázi SQLite a chrání je jen práva 0600 na souboru a 0700 na adresáři; kdo chce víc, má podle dokumentace sáhnout po externím správci hesel. Úložiště ovšem není jediné místo, kde klíč skončí čitelně: v září se ukázalo, že aplikace pro iOS psala trvalý klíč k agentovi do systémového logu telefonu.

Ve vydání, které npm nabízí jako výchozí, přepínač není

Že jde zatím o předběžnou větev, se dá ověřit bez instalace. Registr npm vede pod značkou latest verzi 2026.7.1-2, pod beta právě 2026.8.1-beta.2 a pod extended-stable ještě starší 2026.6.34. Soubor s popisem příkazu secrets má ve značce stabilního vydání 7 649 bajtů a řetězec --allow-host se v něm nevyskytuje ani jednou; ve značce předběžného vydání má 14 130 bajtů a čtyři výskyty. Nastavení egressProxy pak v dokumentaci brány chybí nejen ve stabilním vydání, ale i v poslední betě řady 2026.7.2. Jde o vlastní srovnání obou značek ze 16. srpna 2026.

Stránka dokumentace přitom přepínač popisuje jako běžnou součást příkazu a slovo „beta“ na ní nestojí. Poznámky k vydání jsou obrácený případ: ohlašují vazbu klíčů na hosty, ale o proxy, přes kterou to celé jde, v nich není ani řádek. Kdo si chce udělat obrázek o tom, co přesně se s jeho klíčem děje, musí do dokumentace.

Stejný nápad se v témže vydání objevuje ještě jednou, jen v menším. U hlasové služby Gradium teď OpenClaw odmítne poslat klíč na nešifrovanou adresu, na cizího hostitele i na jméno, které se tomu pravému jen podobá, a přenos přišpendlí k hostiteli uvedenému v dokumentaci té služby. Vázat přihlašovací údaj na jedno konkrétní místo tedy v projektu není jednorázová výjimka.

Zdroje: poznámky k vydání 2026.8.1-beta.2, dokumentace ke správě klíčů, tentýž dokument ve značce 2026.7.1-2 a záznam balíčku v registru npm.

Diskuse

Zatím tu nikdo nediskutuje. Můžete být první.

Napsat příspěvek

Diskutovat můžete i bez účtu. S registrací se ale příspěvek zveřejní hned a nemusíte pokaždé vyplňovat jméno. Účet už máte? Přihlaste se.

Nezveřejňujeme ho, slouží jen redakci.

Podporuje zápis Texy: **tučně**, *kurzíva*, odrážky, odkazy.

Dál k tématu

  1. Bezpečnost

    Doloženou opravu chyby Plugin4Shell mají ze čtyř agentů jen Claude Code a Codex

    Firma Air Security v září popsala, jak u Claude Code, Codexu, GitHub Copilotu a Gemini CLI podvrhnout plugin, který tržiště připnulo na prověřený commit. Anthropic chybu…

  2. Bezpečnost

    Agenti z Tencent Cloud se hlásili jako Claude, styl jejich kódu ale Claudovi neodpovídá

    Agenti AI běžící na Tencent Cloud se mezi 28. zářím a 8. říjnem 2026 přes 2 600krát pokusili stáhnout data z mapové služby Amap, obcházeli její ochranu proti robotům a…

  3. Bezpečnost

    Compliance API Clauda vrací firemní správě i osobní pokyny zaměstnanců

    Rozhraní Compliance API vrací od 15. října text, který si každý člen firemní organizace uložil jako svůj vlastní pokyn pro Clauda. Koncový bod je v betě a spadá pod…

  4. Bezpečnost

    Grok v simulaci poslal 187 zpráv kvůli vrácení jízdného po lhůtě

    Šest AI asistentů mělo získat 350 liber za zrušený vlak, přestože zákaznice zmeškala lhůtu k žádosti. Grok v simulaci poslal 187 zpráv a Claude Fable sdílel soukromou…