SkyClaw, AI 에이전트를 위한 암호화된 채팅 기반 API 키 설정 기능 추가

SkyClaw는 LLM이나 메시징 플랫폼에 노출되지 않도록 채팅 인터페이스를 통해 API 키를 안전하게 설정하는 방법을 소개합니다. 이 시스템은 키를 변경하기 위해 SSH 접근, 설정 파일 편집 및 서비스 재시작이 필요한 기존의 자체 호스팅 에이전트의 워크플로우 마찰을 해결합니다.
작동 방식
이 솔루션은 두 가지 보안 계층을 가지고 있습니다:
- 계층 1 — 시스템 차단: 키 명령어(
/addkey,/keys,/removekey)와 암호화된 블록(enc:v1:로 시작)은 메시지가 에이전트에 도달하기 전에main.rs에서 차단됩니다. Rust 프로세스는 이를 복호화, 검증하고 볼트에 저장하여 LLM이 자격 증명 작업에 전혀 관여하지 않도록 합니다. - 계층 2 — OTK 암호화: RFC 3986에 따라 서버로 전송되지 않는 URL 조각(#)을 사용합니다. 흐름: 봇이
setup.page/#one-time-256bit-key를 전송하고, 브라우저는 WebCrypto를 사용하여 AES-256-GCM으로 API 키를 로컬에서 암호화하며, 사용자는 암호화된 블록을 채팅에 다시 붙여넣고, 봇은 시스템 계층에서 복호화하여 저장한 후 일회용 키를 폐기합니다.
보안 결과
- 메시징 플랫폼은 암호문만 확인합니다(OTK 없이는 무용지물)
- LLM은 아무것도 확인하지 않습니다(에이전트 루프 전에 차단됨)
- GitHub Pages는
GET /setup만 확인합니다 - 텍스트를 송수신할 수 있는 모든 플랫폼에서 작동합니다
다른 프로젝트와의 비교
소스는 현재 솔루션의 한계를 확인합니다:
- OpenClaw: 설정 파일, 환경 변수, CLI 마법사, 선택적 외부 비밀 관리자를 사용합니다. GitHub 이슈 #11829은 "OpenClaw는 현재 API 키가 LLM에 유출되거나 채팅에 노출될 수 있는 여러 경로를 가지고 있습니다."라고 명시합니다. 이슈 #19137은
config.get이 API 키를 세션 기록 JSONL 파일에 유출하는 것을 문서화합니다. - OpenFang (Rust):
config.toml(api_key_env = "ANTHROPIC_API_KEY")에서 참조되는 환경 변수, CLI 초기화 마법사, 대시보드 UI를 사용합니다.Zeroizing<String>및 AES-256-GCM 자격 증명 볼트로 강력한 저장 보안을 제공하지만, 채팅에서 안전한 키 수신 기능은 없습니다. - NanoClaw:
/setup스킬 중에 설정된ANTHROPIC_API_KEY또는CLAUDE_CODE_OAUTH_TOKEN환경 변수를 사용합니다. Docker 샌드박스 모드에서는 프록시 기반 시스템이 센티널 값을 대체하지만, 여전히 메시징을 통한 암호화된 키 전송은 없습니다. - PicoClaw: 환경 변수 재정의(
PICOCLAW_PROVIDERS_*)와 함께~/.picoclaw/config.json을 사용합니다. 이슈 #972는 자가 치유 로직이 config.json을 읽고 원시 API 키를 채팅 로그에 반향할 때 하위 에이전트 자격 증명 유출을 문서화합니다.
OpenClaw의 이슈 #7916이 명시한 근본적인 문제는 "키는 [시스템이] 작동하기 위해 평문이어야 합니다."입니다. 외부 비밀 관리자는 평문 노출을 런타임으로 연기하지만, 전송을 암호화하는 사람은 없습니다.
기술적 세부 사항
URL 조각은 RFC 3986에 따라 # 및 그 뒤의 모든 내용이 HTTP 요청에서 서버로 전송되지 않고, Referer 헤더에 포함되지 않으며, CDN/프록시/웹 서버에 기록되지 않고, 완전히 클라이언트 측에서 처리되기 때문에 작동합니다. GitHub Pages는 OTK에 대한 지식 없이 GET /setup을 수신합니다.
main.rs의 메시지 핸들러는 엄격한 우선 순위를 가지고 있습니다: 키 명령어와 암호화된 블록이 먼저 일치하며 즉시 반환되어 에이전트로 넘어가지 않습니다. LLM은 모든 검사를 통과한 메시지만 수신합니다. 출력 측에서는 SecretCensorChannel이 모든 발신 메시지를 래핑합니다.
📖 전체 소스 읽기: r/openclaw
👀 See Also

파일럿 프로토콜: Claude로 구축된 AI 에이전트용 P2P 네트워크 스택
개발자가 자율 AI 에이전트를 위해 특별히 설계된 순수 사용자 공간 피어투피어 가상 네트워크 스택인 Pilot Protocol을 Go 언어로 구축했습니다. 이 프로토콜은 중앙 집중식 인프라 없이 직접 통신을 가능하게 합니다. UDP 멀티플렉싱, NAT 트래버설 및 종단 간 암호화를 사용하며, 벤치마크 결과 로컬 처리량 89 MB/s, 대륙 간 WAN 처리량 2.1 MB/s를 보여줍니다.
6가지 역할, 메모리, ADHD 인지 설계를 갖춘 OpenClaw AI 에이전트: 일일 작전 분석
ADHD가 있는 솔로 창업자가 6가지 역할(액션 플래너, 디브리퍼, 작가, 법무, 조사, CRM)을 수행하며 메모리를 공유하고, 대화 기록에서 후속 조치 및 초안을 자동 생성하는 오픈소스 AI 에이전트를 구축했습니다.

cstat: Claude Code를 위한 2ms 성능의 네이티브 Rust 상태 표시줄
cstat은 네이티브 Rust 바이너리로, 24개의 서브프로세스 생성 제거를 통해 claude-hud의 62ms 상태 표시줄을 2ms 구현으로 대체합니다. 모델 정보, 속도 제한, git 상태, 컨텍스트 창 사용량, 활성 도구, 서브에이전트 및 작업 진행 상황을 표시합니다.

HF Viewer: 모든 허깅 페이스 모델 그래프를 즉시 시각화
HF Viewer는 모든 Hugging Face 모델의 대화형 아키텍처 그래프를 렌더링하는 브라우저 기반 도구입니다. URL이나 저장소 이름을 붙여넣으면 로컬 설정 없이 그래프를 확인할 수 있습니다.