사이드채널 공격

IT 위키

사이드채널 공격(Side-channel attack, SCA)은 암호 알고리즘이나 시스템의 논리적 출력이 아니라 실행 시간, 전력 소비, 전자기파, 음향, 캐시 상태 등 구현 과정에서 부수적으로 누출되는 정보를 분석하여 비밀 키나 민감 정보를 추론하는 공격 기법이다.[1]

사이드채널 공격은 알고리즘 자체의 수학적 취약점을 직접 깨는 방식이 아니라, 알고리즘이 실제 하드웨어·소프트웨어에서 실행될 때 발생하는 물리적·미시구조적 흔적을 이용한다. 예를 들어 같은 암호 연산이라도 입력값이나 비밀 키의 특정 비트에 따라 실행 시간이 달라지거나, CPU 캐시 접근 패턴이 달라지거나, 전력 소비량이 변할 수 있다. 공격자는 이러한 차이를 반복 측정하고 통계적으로 분석하여 내부 상태를 추론한다.[1]

전통적으로는 스마트카드, 임베디드 장치, 암호 모듈의 전력·전자기파 분석이 대표적이었으나, 현대 시스템에서는 CPU 캐시, 분기 예측, 추측 실행, 공유 클라우드 자원, 웹 브라우저 환경까지 공격 표면이 확대되었다.[2]

  • 간접 정보 누출: 평문이나 키를 직접 읽는 것이 아니라, 시간·전력·캐시 상태 같은 부수 신호를 통해 추론한다.
  • 구현 의존성: 이론적으로 안전한 암호 알고리즘도 구현 방식이 부주의하면 취약해질 수 있다.
  • 반복 측정과 통계 분석: 단일 측정보다 다수의 관측값을 수집해 잡음을 줄이고 패턴을 찾는 경우가 많다.
  • 공유 자원 악용: 캐시, 분기 예측기, 메모리 버스, 가상화 환경 등 여러 프로세스나 테넌트가 공유하는 자원이 공격 경로가 될 수 있다.
  • 탐지 어려움: 정상적인 연산 시간 측정이나 자원 접근처럼 보일 수 있어 전통적인 침입 탐지로 식별하기 어렵다.

주요 유형

[편집 | 원본 편집]
유형 설명 예시
시간 기반 공격 연산 완료 시간이나 응답 시간의 차이를 분석한다. 비밀번호 비교 함수의 조기 종료, RSA 연산 시간 차이
전력 분석 공격 장치가 소비하는 전력 패턴을 측정해 내부 연산을 추론한다. 단순 전력 분석(SPA), 차분 전력 분석(DPA)
전자기파 분석 공격 연산 중 발생하는 전자기 방출을 측정한다. 암호 칩 주변 전자기파 측정
음향 공격 장치에서 발생하는 소리나 진동을 분석한다. 키보드 입력음, 전자부품 동작음 분석
캐시 타이밍 공격 CPU 캐시 적중·미스에 따른 시간 차이를 이용한다. Flush+Reload, Prime+Probe
추측 실행 기반 공격 CPU의 분기 예측·추측 실행이 남기는 미시구조적 흔적을 이용한다. Spectre, Meltdown 계열 취약점

공격 절차

[편집 | 원본 편집]

일반적인 사이드채널 공격은 다음과 같은 흐름으로 진행된다.

  1. 관측 지점 선정: 시간, 전력, 캐시, 전자기파 등 측정 가능한 부수 신호를 정한다.
  2. 입력 제어 또는 유도: 공격자가 선택한 입력을 반복 제공하거나, 피해자가 특정 연산을 수행하도록 유도한다.
  3. 측정값 수집: 고해상도 타이머, 전력 측정 장비, 성능 카운터, 캐시 상태 측정 기법 등을 이용해 데이터를 수집한다.
  4. 통계 분석: 측정값과 가설 키 또는 비밀 상태 사이의 상관관계를 계산한다.
  5. 비밀 정보 복원: 키 바이트, 메모리 값, 인증 토큰, 사용자 입력 등 민감 정보를 단계적으로 추론한다.

대표 사례

[편집 | 원본 편집]

타이밍 공격은 입력값이나 키 값에 따라 연산 시간이 달라지는 구현을 이용한다. 예를 들어 문자열 비교 함수가 첫 번째 불일치 지점에서 즉시 종료되면, 공격자는 응답 시간 차이를 이용해 올바른 접두사를 한 글자씩 추론할 수 있다. 암호 구현에서는 모듈러 지수승, 조건 분기, 테이블 조회 등이 시간 차이를 만들 수 있다.[3]

캐시 공격은 CPU 캐시가 메모리 접근 속도를 크게 바꾼다는 점을 이용한다. 공격자는 특정 캐시 라인을 비우거나 채운 뒤 피해자 프로그램의 접근 여부를 시간 차이로 추정할 수 있다. 이러한 기법은 암호 키 복원뿐 아니라 프로세스 간 정보 누출, 가상화 환경의 테넌트 간 공격에도 연구되어 왔다.[4]

SpectreMeltdown은 현대 CPU의 성능 최적화 기능인 추측 실행과 미시구조적 부작용을 결합한 대표적 공격 계열이다. Spectre는 피해자가 정상 실행에서는 접근하지 않을 데이터를 추측 실행 중 접근하도록 유도하고, 그 흔적을 사이드채널로 읽는다. Meltdown은 권한 경계를 우회해 접근된 메모리 정보가 캐시 흔적으로 남는 점을 이용한다.[2][5]

사이드채널 공격은 다음과 같은 보안 영향을 줄 수 있다.

  • 암호 키, 세션 키, 개인키 등 비밀 값 복원
  • 비밀번호, PIN, 인증 토큰 추론
  • 프로세스·컨테이너·가상 머신 간 정보 누출
  • 클라우드 환경에서 동일 물리 서버를 공유하는 테넌트 간 공격 가능성 증가
  • 브라우저 또는 자바스크립트 환경에서 고해상도 타이머와 공유 자원을 이용한 정보 누출
  • 보안 모듈, 스마트카드, IoT 장치의 물리적 보안 약화

특히 클라우드와 컨테이너 환경에서는 논리적 격리가 잘 되어 있더라도, CPU 캐시나 분기 예측기 같은 하드웨어 공유 자원을 통해 정보가 새어 나갈 수 있다는 점이 중요하다.

방어 기법

[편집 | 원본 편집]
방어 기법 설명 한계
상수 시간 구현 비밀 값에 따라 실행 시간이나 분기 경로가 달라지지 않도록 구현한다. 컴파일러 최적화, CPU 미시구조, 라이브러리 호출로 인해 보장이 깨질 수 있다.
블라인딩 암호 연산에 난수를 섞어 관측값과 실제 비밀 값의 상관관계를 낮춘다. 난수 품질과 구현 정확성에 의존한다.
마스킹 중간 값을 여러 조각으로 나누어 전력·전자기파 분석을 어렵게 한다. 고차 분석 공격에 대비하려면 설계와 검증이 복잡하다.
캐시 격리 민감한 연산이 공유 캐시 상태에 영향을 덜 주도록 격리하거나 플러시한다. 성능 저하가 크고 모든 공격 변종을 막기 어렵다.
하드웨어 완화 CPU 마이크로코드, 펌웨어, 운영체제 패치를 통해 추측 실행 부작용을 제한한다. CPU 세대와 제조사별로 적용 범위가 다르며 성능 영향이 있을 수 있다.
노이즈 삽입 측정값에 잡음을 추가해 통계 분석을 어렵게 한다. 충분한 반복 측정으로 우회될 수 있다.
물리적 차폐 전자기파·전력 측정 장비 접근을 어렵게 한다. 소프트웨어 기반 사이드채널에는 효과가 제한적이다.

보안 구현 시 고려사항

[편집 | 원본 편집]
  • 비밀 값에 따라 분기하지 않는다.
  • 비밀 값으로 배열 인덱스나 테이블 조회 위치가 달라지지 않도록 한다.
  • 비밀번호·토큰 비교에는 상수 시간 비교 함수를 사용한다.
  • 암호 라이브러리는 검증된 구현을 사용하고 자체 구현을 피한다.
  • 컴파일러 최적화가 상수 시간 특성을 깨지 않는지 확인한다.
  • 공유 호스팅·클라우드 환경에서는 CPU 격리, SMT 비활성화, 보안 패치 적용 여부를 검토한다.
  • 취약점 대응 시 운영체제, 브라우저, 하이퍼바이저, 펌웨어, 마이크로코드를 함께 갱신한다.
  • 성능 카운터와 고해상도 타이머 접근 제한을 검토한다.

관련 개념

[편집 | 원본 편집]

은닉 채널(Covert channel)은 두 주체가 의도적으로 공유 자원이나 부수 신호를 이용해 정보를 전달하는 통신 경로를 의미한다. 반면 사이드채널은 주로 피해 시스템이 의도하지 않게 남긴 정보를 공격자가 관측하는 경로를 말한다. 두 개념은 캐시, 시간, 전력 같은 매체를 공유할 수 있으므로 실제 연구에서는 함께 다뤄지는 경우가 많다.

오라클 공격은 시스템의 응답 차이를 질의하여 정보를 얻는다는 점에서 사이드채널과 유사하지만, 반드시 물리적·미시구조적 신호를 이용하는 것은 아니다. 예를 들어 패딩 오류 메시지를 이용하는 공격은 응답 내용 자체가 정보 누출 경로가 된다.

같이 보기

[편집 | 원본 편집]
  1. 1.0 1.1 NIST CSRC, “Side-Channel Attack - Glossary”, https://csrc.nist.gov/glossary/term/side_channel_attack, 확인일: 2026-06-05.
  2. 2.0 2.1 Paul Kocher 외, “Spectre Attacks: Exploiting Speculative Execution”, https://spectreattack.com/spectre.pdf, 확인일: 2026-06-05.
  3. M. Mehdi Kholoosi, M. Ali Babar, Cemal Yilmaz, “Empirical Analysis of Software Vulnerabilities Causing Timing Side Channels”, https://arxiv.org/abs/2308.11862, 확인일: 2026-06-05.
  4. Guangyuan Hu, Ruby B. Lee, “Random and Safe Cache Architecture to Defeat Cache Timing Attacks”, https://arxiv.org/abs/2309.16172, 확인일: 2026-06-05.
  5. CISA, “Meltdown and Spectre Side-Channel Vulnerability Guidance”, https://www.cisa.gov/news-events/alerts/2018/01/04/meltdown-and-spectre-side-channel-vulnerability-guidance, 확인일: 2026-06-05.