부채널 공격 (Side-Channel Attack)

암호학수정일

부채널 공격(Side-Channel Attack)은 암호 알고리즘의 수학을 깨는 대신, 그 알고리즘이 실제 기기에서 실행될 때 새어 나오는 실행 시간, 전력 소비, 전자기파, 소리, 캐시 동작 같은 물리적 부산물을 측정해 비밀 키를 알아내는 공격입니다. 1996년 폴 코처(Paul Kocher)의 타이밍 공격 논문 이후 본격적으로 연구되었습니다.

자세히 알아보기

대표적인 유형은 다음과 같습니다. ① 타이밍 공격: 키 비트에 따라 연산 시간이 달라지는 점을 이용합니다. 네트워크 너머에서도 측정이 가능합니다. ② 전력 분석: 단순 전력 분석(SPA)과 여러 번의 측정을 통계로 처리하는 차분 전력 분석(DPA, 1999년 코처 등)이 있습니다. ③ 전자기파 분석: 기기에서 나오는 전자기 방사를 측정하며, 군사 분야의 TEMPEST와 같은 계열입니다. ④ 캐시 공격: 같은 CPU를 쓰는 다른 프로세스의 메모리 접근 패턴을 캐시 지연으로 엿봅니다. 2018년 공개된 Spectre·Meltdown도 이 계열의 마이크로아키텍처 공격입니다. 전압·클록을 순간적으로 흔들어 오작동을 유도하는 오류 주입(fault injection, 글리칭)도 흔히 함께 다룹니다.

방어는 구현 단계에서 이루어집니다. 비밀 값에 따라 분기하거나 메모리 위치를 바꾸지 않는 상수 시간(constant-time) 코드, 중간값에 무작위를 섞는 마스킹과 블라인딩, 전력·전자기 차폐, 오류 감지 회로, 그리고 이런 대책을 갖춘 보안 칩(secure element)을 사용하는 것입니다. 수학적으로 안전한 알고리즘이라도 부채널 대책이 없는 구현은 안전하지 않습니다.

블록체인·암호화폐에서는

하드웨어 지갑은 공격자가 기기를 손에 넣는 상황을 전제로 설계되어야 합니다. 보안 연구팀들이 물리적 접근을 전제로 일부 하드웨어 지갑에서 전압 글리칭이나 전력 분석으로 시드나 PIN을 추출한 사례를 여러 차례 공개했고, 그래서 최신 기기는 보안 칩과 패스프레이즈 기능을 강조합니다. ECDSA 서명에서 난수 k의 일부 비트만 부채널로 새어도 격자 공격으로 개인 키를 복구할 수 있다는 연구도 있습니다. 거래소 서버와 클라우드 HSM에서는 같은 물리 서버를 공유하는 환경의 캐시 공격이 위협 모델에 포함됩니다.

쉽게 말하면

금고 번호를 직접 알아내는 대신, 다이얼을 돌릴 때 나는 '딸깍' 소리를 듣고 번호를 맞히는 금고털이와 같습니다.

예시

비밀번호나 MAC 태그를 앞에서부터 한 바이트씩 비교하다가 다르면 즉시 멈추는 코드는, 응답 시간으로 몇 번째 바이트까지 맞았는지 알려 줍니다. 공격자는 바이트마다 256가지만 시험하면 되므로 전체를 한꺼번에 추측하는 것보다 훨씬 빨리 값을 알아냅니다. 상수 시간 비교 함수를 쓰면 이 누출이 사라집니다.

이 글은 학습을 위한 일반 정보이며 투자 권유나 법률 자문이 아닙니다. 가상자산은 가격 변동이 크고 원금 손실 위험이 있습니다.