핵심 인사이트 (3줄 요약)
- 본질: 클럭 글리칭(Clock Glitching)은 칩에 공급되는 클럭 신호에 의도적으로 매우 짧은 펄스를 삽입하거나 주기를 조작하여, 다음 명령어가 실행되기 전 현재 명령어의 결과를 강제로 확정시키거나 건너뛰게 만드는 물리적 결함 주입 공격이다.
- 가치: 전압 글리칭보다 시간적 정밀도가 뛰어나 특정 어셈블리 명령어(예:
JZ,CMP)를 타겟으로 정확히 조준할 수 있으며, 하드웨어 보안 모듈(HSM)이나 스마트카드의 인증 로직을 무력화하는 데 주로 사용된다.- 판단 포인트: 내부 오실레이터를 사용하거나 클럭 감시 회로(Clock Monitor)를 탑재하여 외부 클럭 조작을 차단하고, 소프트웨어적으로는 명령 실행 전후의 시간차를 검증하는 타이밍 체크 기법을 적용해야 한다.
Ⅰ. 개요 및 필요성
1. 클럭 글리칭(Clock Glitching)의 정의
클럭 글리칭은 디지털 시스템의 박동인 클럭(Clock) 신호에 인위적인 노이즈나 변동을 주어 CPU의 타이밍 마진(Timing Margin)을 파괴하는 기술이다. 정상적인 클럭 주기보다 훨씬 짧은 '가짜 클럭 에지'를 주입하여, 내부 회로가 계산을 끝내기도 전에 다음 상태로 넘어가게 유도한다.
2. 왜 클럭 글리칭이 필요한가? (공격자 관점)
소프트웨어적 보안이 강화될수록 공격자는 하드웨어의 물리적 틈새를 노린다.
- 초정밀 타격: 전압 글리칭은 칩 전체의 안정성에 영향을 주지만, 클럭 글리칭은 특정 클럭 사이클(Cycle)을 정확히 겨냥할 수 있어 매우 세밀한 공격이 가능하다.
- 보안 루틴 무력화:
if문 하나를 건너뛰는 것만으로도 수 수천 줄의 보안 코드를 무의미하게 만들 수 있다. - 암호 연산 방해: RSA나 ECC 같은 공개키 암호 연산 중 특정 루프(Loop)를 짧게 끝내거나 결과값 계산을 방해하여 암호학적 결함을 유도한다.
3. 기술적 배경: 디지털 회로의 타이밍 성립 조건
모든 디지털 회로는 **[클럭 주기 > 조합 논리 지연 시간 + 셋업 시간]**이라는 공식을 따라야 한다. 클럭 글리칭은 이 중 '클럭 주기'를 순간적으로 지연 시간보다 짧게 만들어 회로가 잘못된 값을 저장하게 만든다.
- 📢 섹션 요약 비유: 클럭 글리칭은 100m 달리기 선수가 결승선에 도착하기도 전에 "경기 종료!"라고 외치며 강제로 기록을 재는 것과 같다. 선수는 아직 뛰고 있는데 기록(결과값)은 엉망으로 남게 된다.
Ⅱ. 아키텍처 및 핵심 원리
1. 클럭 글리칭 주입 매커니즘
공격자는 외부 클럭 소스를 차단하고, 자신의 글리칭 장비(FPGA 기반)를 통해 조작된 클럭을 주입한다.
[ 정상 클럭 ] __│--│__│--│__│--│__ (규칙적)
[ 글리치 클럭 ] __│-││__│--│__│--│__ (두 번째 주기가 매우 짧음)
▲
└─ 글리치 주입 지점: 회로가 계산을 마치기 전 에지 발생
2. 공격 프로세스 (Implementation Steps)
- 동기화 (Synchronization): 공격 대상 명령어가 실행되는 시점을 정확히 파악하기 위해 전력 소모(SPA)나 전자기 방출(EMA)을 모니터링한다.
- 파라미터 탐색: 글리치 펄스의 폭(Width), 오프셋(Offset), 횟수를 바꿔가며 시스템이 리셋되지 않고 오동작만 하는 최적의 값을 찾는다.
- 글리치 주입: 암호화 연산이나 인증 비교 연산(
CMP)이 일어나는 찰나에 조작된 클럭을 밀어 넣는다. - 우회 성공: 성공 시 비밀번호가 틀려도 시스템에 로그인되거나, 잠긴 데이터가 노출된다.
3. 클럭 글리칭의 물리적 영향
| 영향 대상 | 구체적 현상 | 보안적 파장 |
|---|---|---|
| 프로그램 카운터 (PC) | 현재 명령어를 완료하지 않고 다음 주소로 건너뜀 | 특정 함수 호출 무시, 조건문 점프 우회 |
| 명령어 레지스터 (IR) | 명령 해독 중 클럭이 발생하여 엉뚱한 명령으로 해석 | JNE(Jump if not equal)를 NOP(No Operation)로 인식 |
| ALU (연산 장치) | 올바른 연산 결과가 나오기 전 값이 저장됨 | 암호문 변조를 통한 키 추출 (DFA) |
4. 핵심 기술: FPGA 기반의 정밀 타이밍 제어
나노초(ns) 단위의 글리치를 만들기 위해서는 일반적인 마이크로컨트롤러로는 부족하다. 수백 MHz 이상의 속도로 동작하는 FPGA를 사용하여, 클럭 신호를 위상 전이(Phase Shift) 시키거나 수 나노초 단위의 펄스를 생성하여 정밀하게 주입한다.
- 📢 섹션 요약 비유: 클럭 글리칭은 시계 바늘을 손으로 억지로 휙 돌려버리는 것이다. 1시간이 지나지도 않았는데 "퇴근 시간이야!"라고 우겨서 하던 일을 팽개치고 나가게 만드는 것이다.
Ⅲ. 비교 및 연결
1. Clock Glitching vs EMFI (경계 비교)
물리적 결함 주입이라는 공통점이 있지만 주입 방식이 다르다.
| 비교 항목 | 클럭 글리칭 (Clock) | EMFI (전자기 주입) |
|---|---|---|
| 주입 경로 | 클럭 핀 (물리적 접촉 필요) | 칩 표면 (비접촉, 전자기 유도) |
| 정밀도 | 시간적으로 매우 정밀함 | 공간적으로 특정 위치 조준 가능 |
| 구현 난이도 | 클럭 핀만 노출되면 쉬움 | 고가의 펄스 생성 장비 필요 |
| 방어 난이도 | 내부 클럭 사용 시 방어 용이 | 쉴드(Shield)가 없으면 방어 어려움 |
2. 하드웨어 보안 모듈(HSM)과의 연결
HSM이나 스마트카드는 클럭 글리칭의 주 타겟이다. 이를 막기 위해 최신 보안 칩들은 외부 클럭을 받더라도 내부적으로 한 번 더 정제하거나, 클럭의 주기가 일정 범위를 벗어나면 즉시 자폭(Data Erase) 하거나 동작을 멈추는 회로를 내장한다.
3. 사이드 채널 공격(SCA)과의 연결
클럭 글리칭을 성공시키려면 "언제 칠 것인가"가 가장 중요하다. 이를 위해 전력 분석(DPA)을 통해 어떤 명령어가 실행 중인지 먼저 알아내야 하므로, 글리칭 공격은 항상 사이드 채널 분석과 한 세트로 움직인다.
- 📢 섹션 요약 비유: 클럭 글리칭이 문을 열 때 열쇠 구멍을 직접 건드리는 것이라면, EMFI는 문 밖에서 강력한 자석으로 내부 잠금장치를 흔드는 것이다.
Ⅳ. 실무 적용 및 기술사 판단
1. 하드웨어적 방어 전략
- 내부 클럭 소스 (Internal RC/PLL): 외부 클럭 핀을 사용하지 않고 칩 내부에서 클럭을 직접 생성하여 외부의 간섭 경로를 차단한다.
- 클럭 모니터 (Clock Watchdog): 클럭의 듀티 사이클(Duty Cycle)이나 주파수가 갑자기 변하면 보안 인터럽트를 발생시킨다.
- 능동적 쉴드 (Active Shield): 칩 패키징 위에 미세한 금속망을 깔아 클럭 핀에 직접 프로빙(Probing)을 시도하면 회로가 끊기게 설계한다.
2. 소프트웨어적 방어 전략
- 명령어 중복 (Instruction Duplication): 중요한 명령어를 두 번 실행하고 결과를 비교한다.
- 더미 코드 삽입 (Dummy Operations): 보안 코드 사이사이에 의미 없는 계산을 무작위로 넣어 공격자가 목표 명령어의 타이밍을 잡기 어렵게 만든다.
- 지터 도입 (Random Jitter): 하드웨어 또는 소프트웨어적으로 클럭 타이밍에 약간의 무작위 변동을 주어 글리칭 성공률을 낮춘다.
3. 기술사적 판단: 물리적 공격의 경제성 평가
기술사는 공격의 난이도와 가치를 저울질해야 한다. 클럭 글리칭은 장비가 필요하므로 모든 하드웨어에 다 적용할 필요는 없다. 하지만 사용자 인증, 라이선스 검증, 암호화 키 보관과 같은 핵심 모듈이 포함된 칩이라면, 클럭 글리칭 대응 여부를 반드시 검토하고 시뮬레이션해야 한다.
4. 실무 체크리스트
-
현재 사용 중인 MCU가 외부 클럭 대신 내부 오실레이터를 사용할 수 있는가?
-
보안적으로 민감한 루프(Loop)가 "건너뛰기" 공격에 대비해 체크섬 검사를 수행하는가?
-
칩의 데이터시트를 확인하여 "Clock Security Circuit" 기능이 활성화되어 있는지 확인했는가?
-
PCB 설계 시 클럭 라인이 노출되어 있어 쉽게 프로빙이 가능한 구조는 아닌가?
-
📢 섹션 요약 비유: 클럭 글리칭 대응은 오케스트라의 지휘자가 메트로놈만 믿지 않고, 연주자들의 박자가 갑자기 빨라지면 즉시 연주를 중단시키고 다시 시작하는 것과 같다.
Ⅴ. 기대효과 및 결론
1. 도입의 기대효과
- 안정적 인증 체계 구축: 물리적 변조 시도에도 견고한 하드웨어 신뢰점(Root of Trust)을 유지한다.
- 제품 수명 주기 보안 강화: 제품이 시중에 유포된 후에도 물리적 추출 공격으로부터 지식재산권(IP)을 보호한다.
2. 한계 및 향후 전망
단순 클럭 조작을 넘어, 최근에는 레이저 기반의 정밀 결함 주입이나 초고해상도 전자기파 공격으로 진화하고 있다. 향후 아키텍처는 클럭 자체를 비주기적으로 생성하거나(Asynchronous Logic), 연산 결과에 논리적 서명을 붙여 하드웨어 결함이 발생하면 즉시 결과값을 무효화하는 '자기 검증형 회로(Self-validating Circuit)'가 도입될 것으로 보인다.
3. 최종 결론
클럭 글리칭은 디지털 시스템의 '시간'이라는 추상적 개념이 물리적 전기 신호에 의존하고 있음을 파고드는 공격이다. 기술사는 소프트웨어 레이어의 논리적 완결성을 넘어, 하드웨어 레이어의 물리적 박동까지 보안의 영역으로 끌어들여 통합적인 방어 체계를 구축해야 한다.
- 📢 섹션 요약 비유: 클럭 글리칭은 달리는 기차의 바퀴 하나를 순간적으로 들어 올리는 것과 같다. 기차가 탈선(오동작)하지 않도록 바퀴의 접지력(타이밍 마진)을 강화하고, 이상 진동(글리치)이 감지되면 즉시 브레이크를 잡는 시스템을 갖춰야 한다.
📌 관련 개념 맵
| 개념 | 연결 포인트 |
|---|---|
| Fault Injection | 클럭 글리칭의 상위 카테고리인 결함 유도 기법 |
| DFA (Differential Fault Analysis) | 글리칭을 통해 얻은 오답으로 암호를 역추적하는 분석법 |
| Setup / Hold Time | 글리칭이 물리적으로 파괴하는 디지털 회로의 타이밍 조건 |
| PLL (Phase Locked Loop) | 외부 클럭을 내부적으로 안정화하거나 감시하는 장치 |
| Instruction Skip | 클럭 글리칭의 가장 흔한 공격 결과이자 목표 |
👶 어린이를 위한 3줄 비유 설명
- 컴퓨터가 줄넘기(클럭)를 하면서 하나, 둘, 셋 박자에 맞춰서 문제를 풀고 있어요.
- 나쁜 친구가 줄을 갑자기 "탁!" 하고 아주 빨리 돌려서 컴퓨터가 박자를 놓치게 만들어요.
- 박자를 놓친 컴퓨터가 문제를 다 풀지도 않았는데 "다 풀었다!"라고 거짓말을 하게 만드는 게 클럭 글리칭이에요.