전체
‘지금 열 수 없는 기록은 나중에도 열 수 없다’… OrcaRouter, 전 사용자 요청 로그에 양자내성 암호화 적용
컨티뉴엄 AI(CONTINUUM AI)가 개발한 OpenAI 호환 LLM 게이트웨이인 OrcaRouter가 9월 25일부터 모든 사용자의 요청 로그를 양자내성 하이브리드 암호화로 저장한다고 밝혔다. 기업용 요금제에만 적용되는 기능이 아니며, 선택 동의 절차도, 추가 요금도 없다.
저장 암호화와 프롬프트 기밀성은 다른 문제다
프롬프트에는 소스코드, 사내 문서, 고객 데이터, 때로는 자격증명이 섞여 들어간다. 그래서 ‘로그는 암호화돼 있다’는 말은 안심을 준다. 문제는 그 암호문을 누가 열 수 있는가다. 저장 계층 암호화는 디스크가 도난당했을 때를 막지만, 데이터베이스를 읽을 수 있는 애플리케이션은 같은 키로 그 암호문도 읽는다. 자격증명 하나가 유출되면 지금까지 쌓인 모든 프롬프트가 함께 열린다.
OrcaRouter가 바꾼 것은 이 지점이다. 애플리케이션 플릿은 공개 키만 받는다. 그 키로 새 로그를 봉인할 수는 있지만, 이미 저장된 로그를 열 수는 없다. 데이터베이스 자격증명과 과거 프롬프트 복호화 자격증명이 서로 다른 것이 되도록 분리한 구조다.
양자내성은 왜 봉인 단계에 붙는가
페이로드 자체는 AES-256-GCM으로 암호화한다. 양자내성이 필요한 곳은 그 위다. 각 레코드마다 32바이트 리프 키(leaf key)를 새로 뽑아 그 키로 페이로드를 암호화하고, 리프 키는 ML-KEM-768과 X25519를 묶은 하이브리드 방식(X-Wing)으로 감싼다.
이유는 암호문의 수명이다. 오늘 봉인한 페이로드는 백업과 아카이브에 수년간 남는다. 봉인 단계에 고전 방식 키 교환만 두면 나중에 복호화 능력을 얻은 쪽이 과거에 긁어모은 암호문을 그때 열 수 있다. 흔히 ‘지금 수집하고 나중에 복호화’라고 부르는 시나리오다. AES-256 자체가 양자컴퓨터에 무너질 것을 걱정해서가 아니라 암호문이 정책보다 오래 살기 때문에 봉인 단계에 붙인 것이다.
순수 ML-KEM 대신 하이브리드로 간 이유도 저장소에 적혀 있다. ML-KEM은 아직 젊은 알고리즘이며, X-Wing은 두 구성요소 가운데 하나가 무너져도 유지된다.
암호 계층을 공개한다
OrcaRouter는 이 계층을 ‘scuttle’이라는 이름으로 공개했다. 코드, 명세, 위협모델, 공격면, 퍼즈 타깃이 모두 저장소에 있다. 보안 소프트웨어를 공개하는 이유는 검증 가능성이다. ‘안전하다’는 주장은 확인할 수 없으면 주장으로 남지만, 명세와 코드가 함께 있으면 어느 쪽이 틀렸는지 지목할 수 있다.
명세는 바이트 단위까지 적혀 있다. 리프 키를 감싼 봉인 블롭은 정확히 1168바이트고, 봉인에는 HPKE 기본 모드가 쓰이며, 서명자는 인증되지 않는다. 연관 데이터는 스키마 버전·에폭·리프 식별자·워크스페이스·사용자·요청 식별자·필드 이름을 모두 길이 접두어와 함께 엮는다. 단순히 이어 붙이면 ‘(워크스페이스 1, 사용자 23)’과 ‘(워크스페이스 12, 사용자 3)’이 같은 바이트열이 돼 테넌트 경계를 넘는 조립이 성립하기 때문이다.
공개 자료와 공개 발표의 차이
이번 공개를 알린 발표에는 보안 취약점을 찾은 사람에게 토큰 보상을 주겠다는 문장이 있다. 같은 프로젝트의 보안 정책 문서에는 정반대로 ‘버그 바운티는 없고 지급도 없다. 우리를 사칭해 보상을 제안하는 사람은 우리가 아니다’라고 적혀 있다.
보상 제도를 운영할 계획이 없다는 것이 문서의 입장이고, 발표는 그보다 앞서 이뤄졌다. 현재 유효한 것은 저장소의 보안 정책이며, 본 보도자료는 이를 따른다.
제도는 없지만 절차는 있다. 이메일과 GitHub 비공개 취약점 신고 두 경로로 접수하고, 영업일 3일 안에 접수 확인, 영업일 10일 안에 확인·중복·범위 밖·이견 가운데 하나로 판정, 90일 안에 수정과 공지를 목표로 한다. 세 기한은 보증이 아니라 목표며, 늦어지면 이유를 밝히고 일정을 합의한다고 적혀 있다. 조용해지면 신고자가 공개해도 된다는 조건도 함께 적혀 있다.
퍼즈 타깃이 먼저 찾은 두 개의 버그
저장소는 퍼즈 타깃 9개를 공개하고, 각 타깃이 무엇을 깨뜨리려 하는지 표로 적는다. 단순히 ‘죽지 않는다’가 아니라 불변식 단위로 검증한다는 것이 이 표의 요점이다.
저장소는 이미 버그 두 개를 찾았다고 밝혔다. 그리고 그 둘이 같은 여섯 줄에서 나왔다는 점도 확인했다. 원인은 열어 둔 키 캐시였다. 캐시 키는 답을 결정하는 모든 입력을 담아야 하는데, 처음에는 세대를 빠뜨렸고, 다음에는 블롭을 빠뜨렸고, 세 번째 수정은 리프 식별자를 빠뜨렸다. 세 번째 버그는 두 번째를 고치는 과정에서 새로 들어간 것이며, 퍼즈가 아니라 리뷰에서 잡혔다. 그 조합을 시험하는 타깃이 없었기 때문이고, 지금은 그 타깃이 추가됐다.
공개된 자기 평가는 여기서 멈추지 않는다. 두 번째 버그는 사흘 전에 쓴 코드에 있었고 그 사이 세 번 리뷰됐으며, 세 번째는 두 번째를 고치면서 생겼다. 퍼즈 타깃은 각각 1~2분씩만 합쳐서 수천만 회 수준만 돌렸다는 사실도 적는다. 저장소 스스로 이것을 ‘연습 삼아 한 스모크 테스트이지 캠페인이 아니다’고 밝혔다.
압축 폭탄 방어 주장도 한때 거짓이었다고 적혀 있다. 내부 리뷰가 측정하기 전까지 유일한 상한은 전역 16MiB여서 2KB도 안 되는 레코드 하나가 1MiB 상한을 가진 리더에게 16MiB를 할당하게 만들었다. 지금은 리더가 자기 상한에 비례해서만 메모리를 쓰도록 고정 버퍼로 디코딩하고, 테스트는 오류가 나는지가 아니라 할당량을 측정한다.
아직 릴리스가 아니다
저장소의 변경 이력은 첫 공개 버전을 ‘미출시’로 표시하고 있고, GitHub 저장소에는 릴리스가 하나도 없다. 그래서 이번 공개를 ‘정식 릴리스’라고 적지 않는다.
저장소 자신의 표현은 더 분명하다. ‘v0. 독립 감사를 받지 않았다. 전선 형식은 안정적이지 않다. 잃어버리거나 읽을 수 없게 돼도 감당할 수 없는 데이터에는 이 라이브러리를 채택하지 말라.’고 적었다. 운영 환경 도입을 검토하며 이 문서를 읽는 사람에게는 ‘기다리거나, 직접 감사하라’는 문장까지 적혀 있다. 내부 리뷰는 있었지만 그것은 사람 암호학자의 독립 감사가 아니다.
이 구분은 제품 적용 범위에도 그대로 적용된다. OrcaRouter가 자기 요청 로그에 이 방식을 쓴 것과 다른 팀이 자기 데이터에 이 라이브러리를 쓰는 것은 서로 다른 결정이다.
설계상의 위험
저장소는 설계상의 위험 하나를 숨기지 않고 공개했다. 레코드의 바인딩 항목은 전부 한 번 쓰면 바뀌지 않는다. 테넌트를 옮기거나 사용자 번호를 다시 매기면 그 레코드의 페이로드는 영구히 읽을 수 없게 된다. 경계를 넘는 조립을 막는 성질이 의도대로 작동한 결과지만, 그 칼럼을 다시 쓰는 마이그레이션은 데이터 손실 작업이 된다는 뜻이다.
같은 문서는 보호하지 않는 것도 나열한다. 작성자 프로세스의 메모리에 있는 평문, 타임스탬프·크기·모델명 같은 메타데이터는 암호화 대상이 아니며, 인증 키를 설정하지 않은 모드에서는 저장소에 쓸 수 있는 사람이 위조 레코드를 넣을 수 있다. 이 목록을 신고하는 것은 문서가 정확하다는 확인일 뿐이다.
주요 모델
OrcaRouter는 단일 API 키와 엔드포인트로 다음을 포함한 200개 이상의 모델을 제공한다.
· OpenAI GPT-5.5
· Anthropic Claude Fable 5.1
· Google Gemini 3.8 Flash
· DeepSeek V4.1 Flash
· xAI Grok 4.6
· Qwen 3.7 Max
· Z.ai GLM-5.3
참고
· scuttle 오픈소스 저장소
· 전선 형식 명세
· 공격면 문서
· 보안 정책 및 신고 절차
· OrcaRouter 웹사이트
OrcaRouter 소개
OrcaRouter는 OpenAI 호환 LLM 게이트웨이로, 200개가 넘는 모델에 걸쳐 라우팅하며 약 40%의 비용 절감, 1밀리초 미만의 라우팅 오버헤드, 0%의 토큰 마크업을 제공한다. 자체 호스팅 에디션인 OrcaRouter-Lite는 MIT 라이선스로 제공된다.
CONTINUUM AI PTE LTD 소개
Continuum AI Pte. Ltd.는 최첨단 AI를 개발자와 팀이 접근 가능하고 합리적인 비용으로 사용할 수 있도록 하기 위해 설립된 싱가포르 기반 기업이다. 단일 API 키와 엔드포인트를 통해 200개 이상의 선도적인 AI 모델에 대한 액세스를 제공하는 OpenAI 호환 AI Gateway인 ‘OrcaRouter’를 개발한 회사다. OrcaRouter는 약 40%의 비용 절감, 1ms 미만의 라우팅 오버헤드, 토큰 마크업 없음을 제공하며, MIT 라이선스로 출시된 자체 호스팅 버전(OrcaRouter-Lite)도 함께 제공한다.
scuttle 오픈소스 저장소 첫 화면. 상단에 저장소 이름과 설명, Go 언어 표기, 라이선스와 CI 배지, 그리고 저장소가 무엇을 하는지, 무엇을 보호하지 않는지를 나눠 적은 README 본문 첫 부분이 보인다
프롬프트에는 소스코드, 사내 문서, 고객 데이터, 때로는 자격증명이 섞여 들어간다. 그래서 ‘로그는 암호화돼 있다’는 말은 안심을 준다. 문제는 그 암호문을 누가 열 수 있는가다. 저장 계층 암호화는 디스크가 도난당했을 때를 막지만, 데이터베이스를 읽을 수 있는 애플리케이션은 같은 키로 그 암호문도 읽는다. 자격증명 하나가 유출되면 지금까지 쌓인 모든 프롬프트가 함께 열린다.
OrcaRouter가 바꾼 것은 이 지점이다. 애플리케이션 플릿은 공개 키만 받는다. 그 키로 새 로그를 봉인할 수는 있지만, 이미 저장된 로그를 열 수는 없다. 데이터베이스 자격증명과 과거 프롬프트 복호화 자격증명이 서로 다른 것이 되도록 분리한 구조다.
양자내성은 왜 봉인 단계에 붙는가
페이로드 자체는 AES-256-GCM으로 암호화한다. 양자내성이 필요한 곳은 그 위다. 각 레코드마다 32바이트 리프 키(leaf key)를 새로 뽑아 그 키로 페이로드를 암호화하고, 리프 키는 ML-KEM-768과 X25519를 묶은 하이브리드 방식(X-Wing)으로 감싼다.
이유는 암호문의 수명이다. 오늘 봉인한 페이로드는 백업과 아카이브에 수년간 남는다. 봉인 단계에 고전 방식 키 교환만 두면 나중에 복호화 능력을 얻은 쪽이 과거에 긁어모은 암호문을 그때 열 수 있다. 흔히 ‘지금 수집하고 나중에 복호화’라고 부르는 시나리오다. AES-256 자체가 양자컴퓨터에 무너질 것을 걱정해서가 아니라 암호문이 정책보다 오래 살기 때문에 봉인 단계에 붙인 것이다.
순수 ML-KEM 대신 하이브리드로 간 이유도 저장소에 적혀 있다. ML-KEM은 아직 젊은 알고리즘이며, X-Wing은 두 구성요소 가운데 하나가 무너져도 유지된다.
암호 계층을 공개한다
OrcaRouter는 이 계층을 ‘scuttle’이라는 이름으로 공개했다. 코드, 명세, 위협모델, 공격면, 퍼즈 타깃이 모두 저장소에 있다. 보안 소프트웨어를 공개하는 이유는 검증 가능성이다. ‘안전하다’는 주장은 확인할 수 없으면 주장으로 남지만, 명세와 코드가 함께 있으면 어느 쪽이 틀렸는지 지목할 수 있다.
명세는 바이트 단위까지 적혀 있다. 리프 키를 감싼 봉인 블롭은 정확히 1168바이트고, 봉인에는 HPKE 기본 모드가 쓰이며, 서명자는 인증되지 않는다. 연관 데이터는 스키마 버전·에폭·리프 식별자·워크스페이스·사용자·요청 식별자·필드 이름을 모두 길이 접두어와 함께 엮는다. 단순히 이어 붙이면 ‘(워크스페이스 1, 사용자 23)’과 ‘(워크스페이스 12, 사용자 3)’이 같은 바이트열이 돼 테넌트 경계를 넘는 조립이 성립하기 때문이다.
공개 자료와 공개 발표의 차이
이번 공개를 알린 발표에는 보안 취약점을 찾은 사람에게 토큰 보상을 주겠다는 문장이 있다. 같은 프로젝트의 보안 정책 문서에는 정반대로 ‘버그 바운티는 없고 지급도 없다. 우리를 사칭해 보상을 제안하는 사람은 우리가 아니다’라고 적혀 있다.
보상 제도를 운영할 계획이 없다는 것이 문서의 입장이고, 발표는 그보다 앞서 이뤄졌다. 현재 유효한 것은 저장소의 보안 정책이며, 본 보도자료는 이를 따른다.
제도는 없지만 절차는 있다. 이메일과 GitHub 비공개 취약점 신고 두 경로로 접수하고, 영업일 3일 안에 접수 확인, 영업일 10일 안에 확인·중복·범위 밖·이견 가운데 하나로 판정, 90일 안에 수정과 공지를 목표로 한다. 세 기한은 보증이 아니라 목표며, 늦어지면 이유를 밝히고 일정을 합의한다고 적혀 있다. 조용해지면 신고자가 공개해도 된다는 조건도 함께 적혀 있다.
퍼즈 타깃이 먼저 찾은 두 개의 버그
저장소는 퍼즈 타깃 9개를 공개하고, 각 타깃이 무엇을 깨뜨리려 하는지 표로 적는다. 단순히 ‘죽지 않는다’가 아니라 불변식 단위로 검증한다는 것이 이 표의 요점이다.
저장소는 이미 버그 두 개를 찾았다고 밝혔다. 그리고 그 둘이 같은 여섯 줄에서 나왔다는 점도 확인했다. 원인은 열어 둔 키 캐시였다. 캐시 키는 답을 결정하는 모든 입력을 담아야 하는데, 처음에는 세대를 빠뜨렸고, 다음에는 블롭을 빠뜨렸고, 세 번째 수정은 리프 식별자를 빠뜨렸다. 세 번째 버그는 두 번째를 고치는 과정에서 새로 들어간 것이며, 퍼즈가 아니라 리뷰에서 잡혔다. 그 조합을 시험하는 타깃이 없었기 때문이고, 지금은 그 타깃이 추가됐다.
공개된 자기 평가는 여기서 멈추지 않는다. 두 번째 버그는 사흘 전에 쓴 코드에 있었고 그 사이 세 번 리뷰됐으며, 세 번째는 두 번째를 고치면서 생겼다. 퍼즈 타깃은 각각 1~2분씩만 합쳐서 수천만 회 수준만 돌렸다는 사실도 적는다. 저장소 스스로 이것을 ‘연습 삼아 한 스모크 테스트이지 캠페인이 아니다’고 밝혔다.
압축 폭탄 방어 주장도 한때 거짓이었다고 적혀 있다. 내부 리뷰가 측정하기 전까지 유일한 상한은 전역 16MiB여서 2KB도 안 되는 레코드 하나가 1MiB 상한을 가진 리더에게 16MiB를 할당하게 만들었다. 지금은 리더가 자기 상한에 비례해서만 메모리를 쓰도록 고정 버퍼로 디코딩하고, 테스트는 오류가 나는지가 아니라 할당량을 측정한다.
아직 릴리스가 아니다
저장소의 변경 이력은 첫 공개 버전을 ‘미출시’로 표시하고 있고, GitHub 저장소에는 릴리스가 하나도 없다. 그래서 이번 공개를 ‘정식 릴리스’라고 적지 않는다.
저장소 자신의 표현은 더 분명하다. ‘v0. 독립 감사를 받지 않았다. 전선 형식은 안정적이지 않다. 잃어버리거나 읽을 수 없게 돼도 감당할 수 없는 데이터에는 이 라이브러리를 채택하지 말라.’고 적었다. 운영 환경 도입을 검토하며 이 문서를 읽는 사람에게는 ‘기다리거나, 직접 감사하라’는 문장까지 적혀 있다. 내부 리뷰는 있었지만 그것은 사람 암호학자의 독립 감사가 아니다.
이 구분은 제품 적용 범위에도 그대로 적용된다. OrcaRouter가 자기 요청 로그에 이 방식을 쓴 것과 다른 팀이 자기 데이터에 이 라이브러리를 쓰는 것은 서로 다른 결정이다.
설계상의 위험
저장소는 설계상의 위험 하나를 숨기지 않고 공개했다. 레코드의 바인딩 항목은 전부 한 번 쓰면 바뀌지 않는다. 테넌트를 옮기거나 사용자 번호를 다시 매기면 그 레코드의 페이로드는 영구히 읽을 수 없게 된다. 경계를 넘는 조립을 막는 성질이 의도대로 작동한 결과지만, 그 칼럼을 다시 쓰는 마이그레이션은 데이터 손실 작업이 된다는 뜻이다.
같은 문서는 보호하지 않는 것도 나열한다. 작성자 프로세스의 메모리에 있는 평문, 타임스탬프·크기·모델명 같은 메타데이터는 암호화 대상이 아니며, 인증 키를 설정하지 않은 모드에서는 저장소에 쓸 수 있는 사람이 위조 레코드를 넣을 수 있다. 이 목록을 신고하는 것은 문서가 정확하다는 확인일 뿐이다.
주요 모델
OrcaRouter는 단일 API 키와 엔드포인트로 다음을 포함한 200개 이상의 모델을 제공한다.
· OpenAI GPT-5.5
· Anthropic Claude Fable 5.1
· Google Gemini 3.8 Flash
· DeepSeek V4.1 Flash
· xAI Grok 4.6
· Qwen 3.7 Max
· Z.ai GLM-5.3
참고
· scuttle 오픈소스 저장소
· 전선 형식 명세
· 공격면 문서
· 보안 정책 및 신고 절차
· OrcaRouter 웹사이트
OrcaRouter 소개
OrcaRouter는 OpenAI 호환 LLM 게이트웨이로, 200개가 넘는 모델에 걸쳐 라우팅하며 약 40%의 비용 절감, 1밀리초 미만의 라우팅 오버헤드, 0%의 토큰 마크업을 제공한다. 자체 호스팅 에디션인 OrcaRouter-Lite는 MIT 라이선스로 제공된다.
CONTINUUM AI PTE LTD 소개
Continuum AI Pte. Ltd.는 최첨단 AI를 개발자와 팀이 접근 가능하고 합리적인 비용으로 사용할 수 있도록 하기 위해 설립된 싱가포르 기반 기업이다. 단일 API 키와 엔드포인트를 통해 200개 이상의 선도적인 AI 모델에 대한 액세스를 제공하는 OpenAI 호환 AI Gateway인 ‘OrcaRouter’를 개발한 회사다. OrcaRouter는 약 40%의 비용 절감, 1ms 미만의 라우팅 오버헤드, 토큰 마크업 없음을 제공하며, MIT 라이선스로 출시된 자체 호스팅 버전(OrcaRouter-Lite)도 함께 제공한다.
공유하기
← 블로그 목록으로