보안 요소의 사이드 채널 분석
전자기적 사이드 채널 공격과 공공 연구가 인증된 하드웨어의 한계에 대해 알려주는 사실
대부분의 하드웨어 보안 실패는 칩, 펌웨어, 공급망, 소프트웨어, 또는 사용자 행동에서 발생해요. 실제로 문서화된 많은 사례에서 Secure Element 자체가 깨진 것이 아니라 우회된 경우가 많았어요. 이 시리즈의 이전 글들에서 이 점을 자세히 다뤘어요.
하지만 칩 자체가 직접적으로 침해된 사례도 있어요. 우리는 보안 요소에 대한 직접적인 물리적 공격이 문서화된 기록을 찾았어요. 이런 공격들은 칩의 암호화 연산을 노리고, 비밀 키를 추출하며, 칩이 제공하도록 설계된 하드웨어 방어를 뚫고 성공했어요.
이 글에서는 전자기적 사이드 채널 연구와 관련된 가장 중요한 사례들을 다룹니다.
전자기적 사이드 채널 공격이란?
전자기적 사이드 채널 공격은 칩이 암호화 연산을 수행할 때 발생하는 무선 신호(전자기 방출)를 관찰해 그 칩이 사용하는 비밀 키를 추론하는 기술이에요.
이 공격은 암호화 연산을 수행하는 칩에서 전력 소비, 연산 시간, 전자기 방출 등 관찰 가능한 물리적 현상을 통해 비밀 값과 연관된 정보가 누출된다는 점을 악용해요.
이상적인 상수 시간 암호화 알고리즘에서는 입력 데이터와 관계없이 모든 연산이 동일한 시간과 전력을 소모해요. 이는 타이밍 및 전력 기반 사이드 채널 공격에 대한 표준 방어책이에요. 제조사는 신호를 균일하게 만들어 아무것도 관측되지 않도록 해야 해요.
하지만 실제로 전체 암호화 구현에서 완벽한 상수 시간 동작을 달성하는 것은 매우 어렵고, 작은 편차도 쉽게 생기고 감지하기 어려워요.
SE(보안 요소)에서의 사이드 채널 분석 사례
사례 1: NXP A700X / Google Titan Security Key
전자기적 사이드 채널 · NinjaLab · USENIX Security 2021 · CVE-2021-3011
NXP A700X는 NXP Semiconductors의 P5x 계열 보안 마이크로컨트롤러로, 은행용 스마트카드, 신분증, 하드웨어 인증 토큰 등에 사용돼요. 이 칩은 Google Titan Security Key에도 내장되어 있는데, 이 장치는 Google 계정 보호와 FIDO U2F 인증에 사용돼요. Yubico의 YubiKey NEO, Feitian 인증 토큰에도 들어가 있죠.
이 칩의 역할은 장치 등록 시 ECDSA 개인 키를 생성·저장하고, 인증 요청이 들어올 때 해당 키로 서명하는 거예요. FIDO U2F 프로토콜은 개인 키가 절대 장치 밖으로 나가지 않도록 설계됐어요. 합법적으로 키를 내보낼 수 있는 인터페이스도 없어요.
공격이 실행된 과정
NXP ECDSA 구현을 소스 코드 없이 분석하기 위해 연구팀은 먼저 같은 암호 라이브러리를 사용하는 오픈소스 JavaCard 플랫폼인 NXP J3D081을 활용했어요.
J3D081에서 알고리즘 구조를 리버스 엔지니어링해 취약 연산 위치를 파악했고, 이를 토대로 타겟인 A700X 칩에서 취약점을 찾았어요.
물리적 준비: 열풍기와 스칼펠로 Titan의 플라스틱 케이스를 제거해 NXP A700X를 노출시켰어요. EM(전자기) 프로브를 칩 표면에 가깝게 배치했어요. 영구적인 손상 없이 장치는 계속 정상 동작했어요.
데이터 수집: 인증 요청을 반복해 약 6,000번의 ECDSA 서명 연산을 발생시켰고, 각 연산마다 EM 신호(트레이스)를 기록했어요. 전체 수집에는 약 6시간이 소요됐어요.
키 복구: 수집한 EM 트레이스를 오프라인에서 격자 기반 키 복구 알고리즘으로 분석해 ECDSA 개인 키를 성공적으로 추출했어요. 연구팀은 이 키로 소프트웨어 클론을 만들어 실제 Titan처럼 인증을 수행할 수 있게 했어요.
사용된 장비: Langer 근접 EM 프로브, Thorlabs 3축 마이크로 매니퓰레이터, Pico Technology PicoScope 오실로스코프 등. 총 장비 비용은 약 $13,000.
물리적 접근 필요: 장치에 몇 시간 직접 접근해야 해요. Titan의 플라스틱 케이스를 열어야 하므로 흔적이 남아요. 하지만 장치는 이후에도 정상 동작하며 피해자에게 다시 돌려줄 수 있어요.
이 공격이 보여주는 점
NXP A700X 공격은, 추출이 불가능하도록 설계된 칩에서 실제로 개인 키를 뽑아낸 사례예요. FIDO U2F 프로토콜의 '키가 장치 밖으로 절대 나가지 않는다'는 보안 보장이, 칩 물리적 구현에서 새는 정보를 읽어내 무력화된 거죠.
NXP의 P5x 계열은 CC 인증을 받았고, 마지막 평가는 2015년에 이뤄졌어요. 이 공격은 최신 하드웨어에는 직접적 영향이 제한적이지만, CC 인증이 놓칠 수 있는 부분을 잘 보여줘요.
사례 2: Infineon SLE78 / EUCLEAK (YubiKey 5 Series)
전자기적 사이드 채널 · NinjaLab · CHES 2024 · CVE-2024-45678
Infineon SLE78은 전 세계적으로 가장 널리 사용되는 보안 요소 칩 중 하나예요. YubiKey 5 Series에 내장되어 있고, 이는 세계에서 가장 인기 있는 하드웨어 보안 키예요. 이 칩은 다음과 같은 다양한 보안 분야에 쓰여요:
- 전자여권
- 은행용 스마트카드
- 자동차 키 시스템
- IoT 인증 인프라
- 암호화폐 하드웨어 지갑
SLE78은 CC EAL6+ 인증(상업용 최고 수준 중 두 번째 등급)을 받았고, 약 80건의 CC 평가를 통과했어요.
Infineon의 암호화 라이브러리는 독점적이며, 칩 펌웨어에 내장되어 공개 문서가 없어요.
취약점 발견: 오픈 플랫폼 접근법
NinjaLab의 Thomas Roche는 2021년 Google Titan 연구와 동일한 방법론을 바탕으로, YubiKey 5와 동일한 암호 라이브러리를 사용하는 Infineon SLE78 기반 오픈 프로그래머블 플랫폼 Feitian을 먼저 분석했어요.
오픈 Feitian 플랫폼에서 취약점을 파악한 뒤, 실제 YubiKey 5Ci로 옮겨 분석을 진행했어요.
물리적 준비: YubiKey의 외부 케이스를 열고, EM 프로브를 SLE78 표면에 가깝게 배치했어요. 장치는 계속 정상 동작했어요.
데이터 수집: ECDSA 서명 연산 중 EM 신호를 수집했어요. 이 연산은 YubiKey를 인증에 사용할 때마다 발생하는 동작이에요.
키 복구: 각 트레이스는 모듈러 인버전 단계의 EM 방출을 포착했고, 격자 기반 알고리즘으로 ECDSA 개인 키를 성공적으로 복구했어요.
장비 비용: 오프라인 분석용 노트북 포함 약 €10,000.
물리적 접근 시간: 장치에 몇 분만 접근해도 필요한 EM 데이터를 충분히 수집할 수 있어요. 이후 오프라인 분석은 추가적인 물리적 접근 없이 진행돼요.
이 연구가 시사하는 점
즉, YubiKey가 복제될 수 있다는 의미예요. 숙련된 공격자가 장치에 잠깐만 물리적으로 접근하고, 프로브와 오프라인 연산 환경만 갖추면, 해당 YubiKey에 등록된 모든 계정에 대해 유효한 인증 응답을 생성하는 소프트웨어 복제본을 만들 수 있어요.
CC EAL 평가 과정에서 충분히 민감한 EM 측정 장비가 사용되지 않았거나, 평가자가 서명 루틴 내의 다른 수학적 연산에만 집중했을 가능성이 있어요.
EUCLEAK은 CC EAL6+ 인증이란, 칩이 이미 알려진 기법과 정의된 위협 모델에 대해 테스트됐음을 보여주는 가장 명확한 공개 사례예요.
두 사이드 채널 사례가 보여주는 것
NXP A700X 공격과 EUCLEAK 사례는, 보안 및 준보안 칩에 대한 직접적인 물리적 공격이 실제로 성공한 기록을 남겼어요. 서로 다른 제조사를 대상으로 동일한 기법이 사용됐고, 모두 성공했어요.
칩 | 기법 | 연도 | 주요 발견 |
|---|---|---|---|
NXP P5x 계열 (CC EAL4+) | EM 사이드 채널(SCA) | 2021 | ECDSA 개인 키 추출, FIDO 토큰 무단 복제. NXP ECC cryptolib의 비상수 시간 스칼라 곱셈에서 취약점 발견. |
Infineon SLE78 (CC EAL6+) | EM 사이드 채널(EEA 기반 타이밍) | 2024 | EAL6+ 인증 칩에서 ECDSA 개인 키 추출. 14년간 약 80회 CC 평가에서 취약점 미발견. |
이것이 바로 보안 요소 설계의 근본적인 과제예요. 올바른 암호화만으로는 충분하지 않아요. 구현이 상수 시간으로 동작하고, 적절히 차폐되며, 사이드 채널 분석에도 강해야 해요.
결론
이 글에서 소개한 두 공격 모두 연구자가 표적 장치를 수 분~수 시간 직접 보유하고, 전문적이고 고가의 실험실 장비(€10,000~$13,000 이상), 그리고 전자기 사이드 채널 분석 및 격자 기반 암호 해독에 대한 전문 지식이 필요했어요. 원격으로 실행할 수 없고, 장치에 손상 흔적도 남지 않아요.
일반 하드웨어 지갑 사용자에게 현실적인 위협은 국가 기관의 연구실이나 Langer 프로브, 신호 처리 장비가 아니라, 피싱, 사회공학, 악성 소프트웨어, 시드 문구 유출이에요.
주요 참고 자료
사례 1 — NXP A700X / Google Titan:
- 전체 논문: ninjalab.io/a-side-journey-to-titan/ 및 eprint.iacr.org/2021/028
- USENIX Security 2021 발표 요약: usenix.org/conference/usenixsecurity21/presentation/roche
- CVE-2021-3011
사례 2 — Infineon SLE78 / EUCLEAK:
- 전체 논문 및 공식 연구 페이지: ninjalab.io/eucleak/
- Cryptology ePrint Archive 요약: eprint.iacr.org/2024/1380
- Yubico 보안 권고: YSA-2024-03
- CVE-2024-45678 — NVD/NIST
- CHES 2024 발표 자료: hardwear.io/netherlands-2024/presentation/eucleak.pdf