AI 에이전트의 정체성 위기 — 그리고 Kakunin이 거대한 시장에 일찍 진입했을 수도 있는 이유
요약
자율적인 AI 에이전트가 다단계 워크플로우를 수행함에 따라 기존의 SSO나 API 키 방식으로는 해결할 수 없는 보안 및 거버넌스 문제가 발생하고 있습니다. Kakunin AI는 공개키 기반 구조(PKI)를 활용하여 에이전트의 신원을 검증하고 권한을 제어하는 'AI 에이전트를 위한 KYC' 인프라를 구축하여 이 문제를 해결하고자 합니다.
핵심 포인트
- AI 에이전트는 비결정론적(non-deterministic) 특성을 가져 기존의 정적 서비스 계정 방식으로는 보안 관리가 어려움
- 에이전트의 자율적 도구 호출 및 추론 경로 수정에 따른 신원 검증과 권한 강제(scoped permissions)의 필요성 증대
- Kakunin AI는 PKI를 기반으로 머신 신원 및 컴플라이언스 인프라 계층을 제공하여 에이전트 보안 문제를 해결함
- 결정론적 시스템과 달리 에이전트 아키텍처는 복잡한 사고 사슬(Chain-of-Thought) 로그를 통한 새로운 감사(Audit) 방식이 요구됨
소프트웨어 산업이 새로운 아키텍처 패러다임에 진입하고 있습니다. 우리는 정적인 마이크로서비스 (microservices), 챗봇 (chatbots), 그리고 코파일럿 (copilots)의 시대를 지나고 있습니다. 대신, 우리는 자율적인 AI 에이전트 (AI agents)를 구축하고 있습니다. 이들은 백그라운드 워커 (background workers) 내부에서 실행되는 확률론적 시스템 (probabilistic systems)으로서, 인간의 개입이 거의 또는 전혀 없이 다단계 워크플로우 (multi-step workflows)를 실행하고, API를 호출하며, 금융 거래를 수행하고, 외부 서비스와 상호작용합니다. 이러한 변화는 중대한 보안 및 거버넌스 (governance) 문제를 야기합니다. 자율적이고 비결정론적인 (non-deterministic) 에이전트의 신뢰를 어떻게 구축하고, 범위가 지정된 권한 (scoped permissions)을 강제하며, 암호학적으로 신원을 검증할 것인가 하는 문제입니다. 만약 인간이 동작을 실행한다면, 우리는 SSO와 IAM 정책을 사용합니다. 만약 전통적인 서비스가 동작을 실행한다면, 우리는 API 키 (API keys)나 OAuth 클라이언트 자격 증명 (OAuth Client Credentials)을 사용합니다. 하지만 스스로 방향을 설정하는 AI 에이전트가 동적으로 도구를 호출하고 자신의 추론 경로 (reasoning path)를 수정하기 시작할 때, 이는 위험한 공백 상태에 놓이게 됩니다. 이는 정적인 서비스 계정 (service account)도 아니고, 책임 소재가 명확한 인간도 아닙니다. 이 글은 공개키 기반 구조 (PKI, Public Key Infrastructure)를 사용하여 머신 신원 및 컴플라이언스 인프라 계층(“AI 에이전트를 위한 KYC”)을 구축함으로써 이 문제를 해결하려는 스타트업인 Kakunin AI에 대한 기술적 및 전략적 분석을 제공합니다. 우리는 그들의 아키텍처, 런타임 거버넌스 (runtime governance)의 기술적 과제, 그리고 실제 개발자 구현이 어떤 모습인지 살펴볼 것입니다. 핵심 아키텍처의 비대칭성: 모든 보안 엔터프라이즈 시스템에서 행위자 (actors)는 반드시 인증 (authenticated)되고 인가 (authorized)되어야 합니다.
하지만 전통적인 결정론적 시스템 (deterministic systems)과 현대적인 에이전트 아키텍처 (agentic architectures) 사이에는 거대한 차이가 존재합니다:
┌──────────────────────────────────────────────┐
│ 결정론적 머신 클라이언트 (DETERMINISTIC MACHINE CLIENT) │
├──────────────────────────────────────────────┤
│ 입력 (X) ──► [정적 규칙 (Static Rules)] ──► API 호출 (Y) │
│ 식별 (Identity): 정적 API 키 / 클라이언트 비밀번호 (Client Secret) │
│ 감사 (Audit): HTTP 로그 (정적이며 예측 가능함) │
└──────────────────────────────────────────────┘
┌──────────────────────────────────────────────┐
│ 비결정론적 AI 에이전트 (NON-DETERMINISTIC AI AGENT) │
├──────────────────────────────────────────────┤
│ 프롬프트 (X) ──► [신경망 가중치 (Neural Weights)] ──► 도구? ──┐
│ │ │ │ │
│ │ │ │ 입력 (Z) ◄── [도구 호출 (Tool Invocation)] ◄────────────┘
│ 식별 (Identity): ??? (공유 API 키 / 익명) │
│ 감사 (Audit): 복잡한 사고 사슬 (Chain-of-Thought) 로그 │
└──────────────────────────────────────────────┘
전통적인 API 키와 IAM 범위 (scopes)는 결정론적인 경로를 위해 설계되었습니다. 만약 여러분이 LLM 에이전트에게 내부 데이터베이스에 접근할 수 있는 API 키를 부여한다면, 해당 LLM은 그 키의 권한 범위(scopes)에 대해 완전한 접근 권한을 갖게 됩니다. 만약 프롬프트 인젝션 (prompt injection)이 발생하면, 에이전트는 임의의 데이터베이스 쿼리를 실행하도록 조작될 수 있으며, 이는 권한 상승 (privilege escalation)으로 이어집니다.
Kakunin AI의 솔루션: 암호화된 에이전트 식별 (Cryptographic Agent Identity, X.509 PKI)
이를 해결하기 위해, Kakunin AI는 표준 공개 키 기반 구조 (PKI) 프리미티브를 모델 인스턴스에 직접 확장하는 방안을 제안합니다. 정적 API 키를 통해 인증하는 대신, 각 에이전트에는 하드웨어 보안 모듈 (HSM) 또는 AWS KMS나 HashiCorp Vault와 같은 클라우드 키 관리 서비스 (KMS)에 의해 뒷받침되는 고유한 X.509 디지털 인증서가 발급됩니다.
모델 출처와 식별의 결합 (Binding Identity to Model Provenance)
Kakunin 아키텍처의 핵심 혁신은 인증서를 실행 중인 모델 가중치 (weights) 및 시스템 프롬프트 (system prompt)의 암호화 해시 (cryptographic hash)에 직접 결합하는 것입니다. 만약 개발자가 모델 가중치를 변경하거나, 온도를 조절하거나, 시스템 프롬프트를 업데이트하면 실행 환경의 모델 해시가 변경됩니다. 이는 즉시 인증서를 무효화하며, 에이전트가 다시 자격 증명을 부여받을 때까지 트랜잭션을 실행하는 것을 방지합니다.
Mock Agent Certificate Metadata (JSON Representation)
다음은 Kakunin 게이트웨이 내부에서 에이전트의 암호화된 정체성 (cryptographic identity)에 결합된 메타데이터가 어떤 모습인지 보여주는 예시입니다:
{
"certificate_id": "cert_agent_sha256_8f39b1a2",
"issuer": "CN=Kakunin Internal Agent CA, O=Enterprise Inc",
"subject": {
"agent_name": "ExecutionAgent-ETH-01",
"environment": "production-eu-west-1",
"owner_email": "[email protected]"
},
"validity": {
"not_before": "2026-05-20T00:00:00Z",
"not_after": "2026-06-20T00:00:00Z"
},
"extensions": {
"model_provenance": {
"model_type": "Claude-3.5-Sonnet-v2",
"model_weights_sha256": "8f39b1a2cf93e8201a756b1f2304918e7e1f4094a9a01f92e8c21a4f028bde44",
"system_prompt_sha256": "4e1fa0c31ab456de90123f112ab8e89cf12a023b1ab4c089ee21ff34e098df12"
},
"authorized_scopes": [
"query_anonymized_order_book",
"submit_limit_order"
]
}
}
Zero-Trust Runtime Flow (제로 트러스트 런타임 흐름)
에이전트가 특정 동작을 실행해야 할 때 (예: 서브...)
범위 검증 (Scope Verification): 게이트웨이 (Gateway)는 요청된 API 엔드포인트가 인증서 메타데이터 (certificate metadata)에 정의된 승인된 범위 (authorized_scopes)와 일치하는지 확인합니다.
코드 예시: 에이전트 서명 및 모델 출처 검증 (Validating Agent Signatures & Model Provenance)
다음은 API 게이트웨이 / 집행 지점 (Enforcement Point)이 암호화 서명 (cryptographic signature) 및 모델 가중치 출처 (model weight provenance) 검증을 포함하여, 들어오는 에이전트 요청을 어떻게 검증할 수 있는지 보여주는 Python 코드 청사진입니다:
import hashlib
from cryptography import x509
from cryptography.hazmat.primitives.asymmetric import padding
from cryptography.hazmat.primitives import hashes
from cryptography.exceptions import InvalidSignature
# 프로덕션 환경에서 활성화된 승인된 모델 해시 (model hashes)의 간단한 데이터베이스
AUTHORIZED_MODEL_INVENTORY = {
"8f39b1a2cf93e8201a756b1f2304918e7e1f4094a9a01f92e8c21a4f028bde44"
}
def calculate_local_prompt_hash(system_prompt: str) -> str:
"""프롬프트 인젝션 (prompt injection) 업데이트를 방지하기 위해 시스템 프롬프트의 SHA256을 계산합니다."""
return hashlib.sha256(system_prompt.encode('utf-8')).hexdigest()
def verify_agent_request(
cert_pem: bytes,
signature: bytes,
request_body: bytes,
running_model_weights_hash: str,
running_system_prompt: str
) -> dict:
"""
에이전트의 서명을 검증하고, X.509 인증서와 일치하는지 확인하며,
모델 가중치 (model weights) 및 시스템 프롬프트가 변동되지 않았는지 보장합니다.
"""
# 1. X.509 인증서 로드
try:
cert = x509.load_pem_x509_certificate(cert_pem)
except Exception as e:
raise ValueError("유효하지 않은 인증서 인코딩입니다") from e
# 2. 요청 페이로드 (request payload)의 서명을 암호학적으로 검증
public_key = cert.public_key()
try:
public_key.verify(
signature,
request_body,
padding.PKCS1v15(),
hashes.SHA256()
)
except InvalidSignature as e:
raise ValueError("암호화 서명 검증에 실패했습니다") from e
# 3.
커스텀 확장(Custom Extensions) 파싱 시뮬레이션 (모델 해싱 (Model Hashing)) # Kakunin에서는 이러한 정보가 X.509 확장(X.509 Extensions) 내의 커스텀 OID를 사용하여 임베딩됩니다. # 여기서는 인증서 메타데이터로부터 예상되는 해시 값을 추출하여 비교합니다.
expected_model_hash = "8f39b1a2cf93e8201a756b1f2304918e7e1f4094a9a01f92e8c21a4f028bde44"
expected_prompt_hash = "4e1fa0c31ab456de90123f112ab8e89cf12a023b1ab4c089ee21ff34e098df12"
4. 모델 출처(Model Provenance) 확인
if running_model_weights_hash not in AUTHORIZED_MODEL_INVENTORY:
raise ValueError("모델 가중치가 승인된 프로덕션 인벤토리에 없습니다!")
if running_model_weights_hash != expected_model_hash:
raise ValueError("실행 중인 모델 가중치가 인증서에 결합된 모델 해시와 일치하지 않습니다!")
current_prompt_hash = calculate_local_prompt_hash(running_system_prompt)
if current_prompt_hash != expected_prompt_hash:
raise ValueError("시스템 프롬프트가 인증된 구성에서 벗어났습니다!")
5. 범위 제한 권한(Scoped Permissions) 추출 (확장 정보 읽기 시뮬레이션)
authorized_scopes = ["query_anonymized_order_book", "submit_limit_order"]
return {
"verified": True,
"agent": cert.subject.get_attributes_for_oid(x509.NameOID.COMMON_NAME)[0].value,
"scopes": authorized_scopes
}
기술적 과제 및 전략적 회의론
PKI(공개키 기반 구조) 및 서명 검증 아키텍처는 우아하지만, Kakunin은 플랫폼을 평가하는 모든 개발자가 반드시 고려해야 할 상당한 기술적 과제에 직면해 있습니다.
암호화 핸드셰이크(Cryptographic Handshakes)의 지연 시간 오버헤드
데이터베이스 쿼리나 API 호출을 실행하기 전에 비대칭 검증 단계(X.509 인증서 검증, 서명 복호화 및 OCSP 확인 수행)를 추가하면 지연 시간(Latency)이 발생합니다. 고빈도 매매 (HFT) 봇이나 저지연 매칭 엔진(Low-latency matching engines)의 경우, 단 10ms의 오버헤드만 추가되어도 도입이 불가능합니다. Kakunin이 성능이 중요한 환경에서 살아남으려면 빠르고 암호학적으로 안전한 캐싱 전략(예: 임시 세션 키(Ephemeral Session Keys) 또는 로컬 CRL 캐싱)을 지원해야 할 것입니다.
행동 모니터링 (Behavioral Monitoring)의 비결정성 딜레마
Kakunin은 정적인 신원을 넘어 런타임 (Runtime) 시점에 "행동 이상 징후 (Behavioral Anomalies)"를 동적으로 모니터링한다고 주장합니다. 하지만 생성형 에이전트 (Generative Agent)에게 무엇이 행동 이상 징후를 구성하는지 정의하는 것은 매우 어렵습니다. 만약 LLM 에이전트가 문맥 (Context)의 미세한 변화로 인해 도구 호출 (Tool-calling) 순서를 변경한다면, 이를 드리프트 (Drift)로 간주해야 할까요? 임계값 (Threshold)이 너무 엄격하면 개발자는 운영 워크플로를 중단시키는 오탐 (False Positives) 문제에 직면하게 됩니다. 반대로 임계값이 너무 느슨하면 악의적인 프롬프트 주입 (Prompt Injections)이나 소리 없는 적대적 드리프트 (Adversarial Drifts)가 빠져나갈 것입니다.
신뢰 부트스트랩 사이클 (Trust Bootstrap Cycle)
신뢰 시스템은 네트워크 효과 (Network Effects)에 크게 의존합니다. 에이전트가 검증 핸들러 (Verification Handlers)를 사용하지 않는다면 API 제공업체는 이를 추가하지 않을 것이며, API가 인증서 기반 서명 (Certificate-based Signing)을 확인하지 않는다면 개발자들은 이를 구현하지 않을 것입니다. Kakunin은 통합 래퍼 (Integration Wrappers)를 오픈 소스로 공개하고, 광범위한 채택을 유도하기 위해 표준화 기구 (IETF 또는 W3C 등)에 로비해야 할 것입니다.
더 넓은 관점: 제도적 행위자로서의 AI
Kakunin AI의 근본적인 전제는 우리가 AI 시스템이 더 이상 단순한 "스크립트 (Scripts)"가 아닌, 준운영적 제도적 행위자 (Quasi-operational Institutional Actors)가 되는 미래로 나아가고 있다는 점입니다. 일단 에이전트가 자금을 거래하고, 계약에 서명하며, API에 접근할 수 있게 되면, 검증된 신원, 기록상의 인간 책임자, 그리고 결정에 대한 불변의 로그 ("수사 감사 (Rhetoric Audit)")가 필요합니다. Kakunin AI가 이 카테고리를 정의하며 살아남을 수 있을지는 자율적이고 고위험인 에이전트 시장이 얼마나 빨리 성숙하느냐, 그리고 그들이 지연 시간 (Latency)과 비결정성 (Non-determinism) 병목 현상을 얼마나 성공적으로 해결하느냐에 달려 있습니다. 하지만 한 가지는 확실합니다. 기존의 IAM (Identity and Access Management)은 에이전트 시대에 맞춰 구축되지 않았으며, 암호학적 머신 신원 (Cryptographic Machine Identity)이 논리적인 향후 경로라는 점입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기