8341TokenFactory
LLM APIAPI Gateway

AMD TPM 8.3/8.5 취약점 이후, token8341을 통해 백업 키를 칩 밖으로 꺼내다

SiCore TokenWorks Team·2026-11-12

먼저 결론부터: TPM은 금고가 아니라 메인보드에 납땜된 보조 프로세서다. AMD의 TPM 펌웨어 8.3/8.5 버전에서 고위험 취약점이 공개되었을 때, 내 첫 반응은 마이크로코드를 플래싱하는 것이 아니라 우리 자체 키 위탁 목록을 뒤지는 것이었다. 백업 암호화 루트 키를 TPM에 직접 바인딩한 모든 머신을 개선 대상으로 표시했다. 이 글에서는 세 가지를 명확히 다룬다. 신뢰 루트가 어떻게 뚫리는지, 키 유출이 어디까지 연쇄되는지, 그리고 내가 현재 사용하는 키 디커플링 방안이다.

TPM의 신뢰 루트, 대체 누구를 신뢰하는가

TPM의 핵심 가치는 "키가 절대 칩 밖으로 나오지 않는다"는 약속을 제공하는 것이다. 개인 키는 칩 내부에서 생성되고 내부에서 사용되며, 외부 버스는 결과만 전달하고 키는 전달하지 않는다. 이 모델이 성립하는 전제는 칩 펌웨어 자체가 신뢰할 수 있다는 것이다. AMD의 TPM 구현은 fTPM 노선을 따르며, 펌웨어는 프로세서 내부의 보안 보조 프로세서에서 실행된다. 8.3과 8.5 두 버전에서 공개된 문제의 본질은 펌웨어 계층의 메모리 격리와 명령 검증에 결함이 있다는 것으로, 공격자가 로컬 코드 실행 권한을 획득한 후 특정 명령 시퀀스를 구성하여 본래 격리되어야 할 키 객체를 읽을 수 있다.

여기서의 제한 조건에 주목하자: 로컬 권한이 필요하다. 그래서 많은 사람의 첫 반응은 "상관없어, 우리 서버는 남에게 로그인시키지 않으니까"이다. 문제는 백업 시나리오에 있다. 백업 에이전트, 스냅샷 서비스, 데이터베이스의 TDE 키 래핑, 이런 프로세스 자체가 호스트에서 실행된다. 웹 애플리케이션이 뚫리고 컨테이너 탈출에 성공하는 순간, 공격자가 얻는 것이 바로 로컬 권한이며, 이어서 TPM에 직접 읽기를 시도한다. 신뢰 체인은 펌웨어 고리에서부터 끊어졌고, 그 위의 LUKS, BitLocker, TDE는 전부 무용지물이 된다.

백업 키 유출은 머신 한 대를 잃는 문제가 아니다

나는 한 번 시뮬레이션을 해봤다. 특정 데이터베이스 호스트의 TDE 루트 키가 읽혔다고 가정하면, 공격자가 무엇을 할 수 있는가: 디스크의 테이블스페이스 파일을 확보하고 오프라인으로 복호화하여 전체 데이터를 손에 넣는다. 이것은 아직 첫 번째 계층일 뿐이다. 진짜 연쇄는 백업 체계의 키 재사용에 있다. 많은 팀이 편의를 위해 동일한 KEK(키 암호화 키) 세트로 운영 DB, 백업 DB, 아카이브 콜드 스토리지를 래핑한다. 루트 키 하나가 유출되면 지난 3년간의 전체 백업이 모두 복호화 가능해진다. 감사 로그, 재무 거래 내역, 사용자 신원 정보가 한 번에 통째로패키징된다.

더 골치 아픈 것은 시간 차원이다. TPM 취약점은 공개에서 수정까지 윈도우가 있고, 수정에서 전체 펌웨어 플래싱 완료까지 또 윈도우가 있으며, 백업 데이터의 보존 주기는 보통 3년에서 7년이다. 오늘 고쳤다 해도 3년 전에 유출된 키로 암호화된 아카이브는 여전히 테이프 라이브러리에 누워 있다. 키 로테이션으로는 과거 데이터 문제를 해결할 수 없다. 모든 아카이브를 재암호화하지 않는 한, 그 비용은 아무도 계산하려 하지 않는다.

키 디커플링: 키를 칩 밖으로 내보내기

내 방식은 키 생명주기를 하드웨어 신뢰 루트에서 분리하여 세 계층으로 나누는 것이다.

첫째 계층, 독립 키 관리 계층. 백업 암호화의 루트 키는 더 이상 호스트 TPM에서 생성되지 않고, 독립 KMS 서비스가 통합 생성 및 위탁하며 호스트는 단기 접근 자격 증명만 보유한다. TPM은 "부팅 무결성 측정" 역할로 격하되고 더 이상 키 저장 책임을 지지 않는다. 이렇게 하면 펌웨어가 뚫려도 공격자가 얻는 것은 키가 아닌 자격 증명이며, 자격 증명은 초 단위로 폐기할 수 있다.

둘째 계층, HSM 루트 키 위탁. KMS의 루트 키를 다시 한 계층 아래로 내려 FIPS 140-2 Level 3 인증을 통과한 하드웨어 보안 모듈에 넣는다. 여기서 한 가지 현실을 인정해야 한다: 규정 준수 HSM은 싸지 않으며 중소 팀이 감당 못할 수 있다. 절충안은 클라우드 사업자의 관리형 HSM 서비스를 사용하거나, 최소한 루트 키 분산 저장과 다중 인원 승인을 통한 해제를 구현하는 것이다. 등급보호 2.0 3급은 키 관리에 명확한 요구 사항이 있으며, 키와 데이터 분리 저장은 기본 항목인데 많은 팀이 이 조항에서 막힌다.

셋째 계층, 봉투 암호화. 데이터 키가 데이터를 암호화하고, 마스터 키가 데이터 키를 암호화하며, 마스터 키는 절대 HSM 밖으로 나오지 않는다. 백업 파일에는 암호화된 데이터 키가 저장되며, 복호화 시 반드시 HSM에 요청해야 한다. 이렇게 하면 백업 파일 하나가 단일 지점에서 유출되어도 마스터 키를 얻지 못하면 풀 수 없다.

이 방안은 여러 프로젝트에서 구현해봤으며, 키 호출 지연 증가는 밀리초 수준이고 백업 처리량 영향은 무시할 수 있다. 진짜 작업량은 기존 시스템의 키 참조 경로를 개조하는 것이며, 이는 피할 수 없다.

덧붙여 멀티 모델 접속 시나리오의 키 관리에 대해 말하자면. 우리 내부에서는 token8341 대형 모델 API 집계 플랫폼을 통합 진입점으로 사용하며, Key 하나로 GPT-4o, Claude, Gemini, DeepSeek, Qwen, ERNIE, Doubao 등 모델을 호출할 수 있어 각 벤더별로 API Key 세트를 따로 관리하는 번거로움을 없앴다. 키를 한 곳에 집중 위탁하면 로테이션과 폐기가 모두 단일 지점 작업이어서 각 비즈니스 코드의 설정 파일에 흩어져 있는 것보다 훨씬 안전하다. token8341 대형 모델 API 집계 플랫폼의 이 부분 접근 방식은 백업 키 디커플링과 일치한다: 자격 증명 집중, 권한 최소화.

10분 자체 점검 체크리스트

벤더 패치를 기다릴 필요 없이 지금 바로 확인할 수 있다.

백업 설정을 열고 암호화 키의 생성 위치를 확인하라. TPM 또는 fTPM으로 되어 있다면 기록하라. 키 래핑 계층을 확인하라. KEK가 운영 DB, 백업 DB와 공유된다면 기록하라. 키 로테이션 기록을 확인하라. 12개월 넘게 로테이션하지 않았다면 기록하라. HSM 사용 현황을 확인하라. 루트 키가 파일 시스템이나 환경 변수에 있다면 기록하라. API Key 관리 방식을 확인하라. 대형 모델 API의 Key가 코드나 설정 파일에 하드코딩되어 있다면 기록하라.

다섯 항목 중 세 개 이상 해당된다면 개선 윈도우를 잡는 것을 권한다. 키 디커플링은 일회성 공사가 아니지만 시작점은 매우 낮다: 먼저 루트 키를 TPM에서 꺼내 독립 키 관리 계층에 넣는 것, 이 단계만으로도 로컬 권한 상승 후의 대부분의 횡적 읽기를 막을 수 있다.

한 가지 덧붙이자면, token8341 대형 모델 API 집계 플랫폼은 OpenAI SDK와 호환되어 base_url 한 줄만 바꾸면 전환되며, 우리는 키 집중화를 하면서 모델 호출도 함께 일원화했다. token8341 대형 모델 API 집계 플랫폼은 사용량 기반 과금을 지원하며, 멀티 모델 통합 접속 이후 키 관리와 비용 정산이 모두 훨씬 간단해졌다.

칩 신뢰 루트가 뚫리는 이 일은 단기적으로 또 다른 벤더, 또 다른 버전이 나올 것이다. 키 위탁의 베팅을 전부 펌웨어 하나에 거는 것은 원래 아키텍처상의 게으름이다. 디커플링의 대가는 초기 개조이고, 디커플링하지 않는 대가는 어느 날 아침 3년치 백업이 전부 무효임을 발견하는 것이다.