"부채널 공격"의 두 판 사이의 차이
잔글 |
잔글 |
||
(사용자 3명의 중간 판 23개는 보이지 않습니다) | |||
1번째 줄: | 1번째 줄: | ||
− | [[파일: | + | [[파일:Side channel attack.png|썸네일|400픽셀|'''부채널 공격 흐름도''']] |
− | '''부채널 공격'''( | + | |
+ | '''부채널 공격'''(side channel attack)이란 암호학적인 측면에서 [[알고리즘]]의 약점을 찾거나 무차별 공격을 하는 대신에, [[암호체계]]의 물리적인 구현 과정의 정보를 기반으로 하는 공격 방법이다. '''사이드 채널 공격'''<!--사이드채널 공격, 사이드채널공격-->이라고도 한다. | ||
== 개요 == | == 개요 == | ||
− | + | 부채널 공격은 디바이스 내의 보안 모듈이 구동되면서 발생하는 다양한 누수 정보(전력 소모, 전자기파, 오류 주입 결과 등)를 획득 및 가공, 분석하여 보안 모듈의 암호키를 크랙킹하는 공격이다. 부채널 공격은 디바이스의 훼손 여부에 따라, 비침투형 공격(non-invasive attack)과 (준) 침투형 공격((semi)-invasive attack) 두 가지 유형으로 구분할 수 있다. 대표적인 비침투형 공격 유형의 부채널 공격은 전력분석(power analysis), 비침투형 전자파 분석(electromagnetic analysis) 공격이 있으며, (준) 침투형 공격 유형의 부채널 공격의 대표적인 공격은 레이저 오류 주입(fault injection) 공격이 있다. 디바이스에 오류를 주입하는 방법은 전압을 갑자기 떨어뜨리거나, 올리는 전압 가변 방식, 디바이스의 동작 주파수에 변화를 주는 클럭 가변 방식, 레이저 오류 주입 방식, 강한 EM 방사를 통해 오류를 주입하는 방식 등이 있다. 이 중, 전압이나 클럭 가변 방식의 오류 주입은 비침투형 공격 유형에 해당할 수 있다. 암호에 대한 공격자의 능력에 따른 모델을 구분하면 아래 와 같이 블랙박스 공격(black-box attack), 그레이박스 공격(gray-box attack), 화이트박스 공격(white-box attack) 모델로 나눌 수 있으며, 부채널 공격은 그레이박스 어택 모델에 해당한다.<ref name="학회지">최두호, 최용제,〈[https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=7&ved=2ahUKEwjf28-S89HjAhVFNKYKHdfpDAcQFjAGegQIBRAC&url=http%3A%2F%2Fwww.itfind.or.kr%2Fadmin%2FgetFile.htm%3Fidentifier%3D02-004-160908-000016&usg=AOvVaw3Ppm6hywOfeNKFlx-nyFI2 보안 칩에서 중요 키의 공격(부채널 공격 중심)기술 동향]〉, 《전자공학회지》,2016-07</ref> | |
+ | * '''블랙박스 공격(Black-box Attack)''' : 공격자는 연산이 일어나는 도중 연산 장치 내부의 정보를 관찰할 수 없고 알고리즘의 입력문과 출력문만 관찰할 수 있다. 블랙박스 공격에서의 대표적인 공격 방법은 선택평문공격(CPA)와 선택암호문공격(CCA)가 있다. CPA는 공격자가 평문을 선택하면 그에 해당하는 암호문이 주어지고 CCA는 그와 반대로 공격자가 선택한 암호문에 대한 평문이 주어진다. | ||
− | + | * '''그레이박스 공격(Gray-box Attack)''' : 공격자가 블록박스(block-box) 모델에서 획득할 수 있는 정보에 부채널 정보까지 추가적으로 접근할 수 있는 모델이다. 그레이박스 모델에서 추가적으로 접근할 수 있는 부채널 정보는 연산 시간, 전력 소비량, 자기장 등이 있다. 따라서 블랙박스 모델에서 안전한 알고리즘이 그레이박스 모델에서 안전함을 보장할 수 없다. | |
− | |||
− | |||
− | + | * '''화이트박스 공격(White-box Attack)''' : 세 가지 공격 모델 중 공격자에게 가장 많은 능력을 부여하는 모델로서 그레이박스 모델에서 획득할 수 있는 정보 이외에 소프트웨어의 실행 시 연산이 이루어지는 장비 내부의 모든 계산 과정을 관찰하는 것과 메모리에 대한 접근과 변경이 허용된다. | |
− | + | 부채널 공격은 1996년 [[폴 코처]](Paul C. Kocher)가 제시한 [[타이밍 공격법]]에 대한 논문을 연구가 시작된 계기로 본다. 공격 목적이 아닌 분석 목적일 경우에는 부채널 분석이라고도 부른다. 간혹 부채널 공격을 '옆수로 공격'라고 부르는 경우도 있다. 부채널 공격이 정면으로 돌파하는 식의 공격 방법이 아니라, 옆으로 돌아 들어가서 정보를 빼내오는 공격이기 때문이다. 예를 들어 소요 시간 분석 공격에서는 하드웨어에서 암호화 또는 알고리즘을 수행하는 동안 CPU나 메모리의 데이터가 이동하는 시간을 측정하여 전체 비밀키를 알아낼 수 있다. 실용성에 대해서는 ASP.NET을 대상으로 한 오라클 셀 패딩 공격(Oracle Cell Padding Attack)이 발생하여 패치가 되었다. 또한, 2012~2015년도 사이에 SSL 통신을 해독할 수 있는 CRIME, BREACH, HEIST 공격이 블랙햇 콘퍼런스(BlackHat Conference)에서 발표된 바 있다. | |
− | 부채널 공격은 | ||
− | 부채널 | + | == 종류 == |
+ | 부채널 공격 기법에는 다음과 같이 여러 가지 방법이 있다. | ||
+ | * 소요 시간 분석 : 다양한 계산을 하는 데 소요되는 시간을 측정하는 것을 기반으로 하는 공격 | ||
+ | * 전력 모니터링 공격 : 연산 중 하드웨어가 소비하는 전력 변화를 측정하는 것을 기반으로 하는 공격 | ||
+ | * 전자기파 공격 : 하드웨어 외부로 방출되는 전자기파를 측정, 해독하여 정보를 얻어내는 공격. [[템페스트]](TEMPEST)과 같이 비암호화 공격에도 사용 가능 | ||
+ | * 음성 암호 해독 : 연산 중에 하드웨어가 생성한 음향을 측정하여 악용하는 공격 | ||
+ | * 차분 오류 분석 : 계산 과정에 오류를 의도적으로 끼워 넣어 암호를 빼내는 공격 | ||
+ | * 잔존 데이터 : 삭제된 것으로 추정되는 데이터를 읽어내는 공격 | ||
+ | * 로우 해머 공격 : 인접한 메모리 영역에 액세스 하는 형태. 접근이 허락되지 않은 메모리 영역을 강제로 수정하는 공격 | ||
− | + | 위와 같이 다양한 방법들이 있지만 그중에서도 가장 많이 쓰이는 세 가지 방법은 다음과 같다. 아래의 세 가지 공격 기법들은 위에서 소개한 방법들 중 가장 효과적이고 강력하며 실제로도 많이 사용되는 공격 기법이다. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
=== 전력/전자파 분석 공격 === | === 전력/전자파 분석 공격 === | ||
− | 부채널 공격 중 가장 대표적인 공격이다. 전력분석 공격은 1999년 [[폴 코처]](P. Kocher)에 의해 | + | 부채널 공격 중 가장 대표적인 공격이다. 전력분석 공격은 1999년 [[폴 코처]](P. Kocher)에 의해 [[DES]]가 공격된 이후 지난 10여 년간 현대 암호 시스템을 위협하는 가장 강력한 공격 수단으로 연구되어 왔다. 전력/전자파 분석 공격은 DES 암호뿐 아니라 거의 모든 암호 알고리즘에 적용되고 있다. 그렇기 때문에 부채널 공격 대응 방법이 강구되지 않은 보안 디바이스의 대부분의 경우 전력/전자파 분석 공격에 취약할 수 있으며, 오실로스코프(oscilloscope) 정도의 공격 환경으로도 실현 가능하기 때문에 스마트 디바이스로 공격 대상이 확대될 것을 예측하고 있다.<ref name="학회지"></ref> 전력 분석 공격에는 대표적으로 단순 전력/전자파 분석 공격(SPA, SEMA)과 차분 전력/전자파 분석 공격(DPA, DEMA)이 있다. 디바이스의 전자파 방사를 측정하여 암호키를 해킹하는 공격이다. |
− | 전력/전자파 분석 공격은 DES | ||
− | |||
− | 전력 분석 공격에는 대표적으로 단순 전력/전자파 | ||
=== 시간차 분석 부채널 공격 === | === 시간차 분석 부채널 공격 === | ||
− | + | 시간차 분석 부채널 공격(timing analysis side channel attack)은 [[암호화]]를 구동하는 데 걸리는 시간을 측정하고 분석하여 암호를 해독하는 방식의 공격이다. 화제가 되었던 [[멜트다운]](Meltdown)과 [[스펙터]](Specter) 모두 [[인텔]] [[하드웨어]]에 대한 시간차 분석 부채널 공격이다. 폴 코처는 시간차 공격에 대해서 "개인키를 실행하기 위해 필요한 시간을 주의 깊게 측정하면 해커들은 고정된 [[디피-헬만]](Diffie-Hellman) 지수를 찾아내고 [[RSA]] [[키]]를 특정화하고 다른 암호화 체계를 깨뜨릴 수 있을 것이다"고 말했다.<ref>''J.M. Porup'',〈[http://www.itworld.co.kr/news/121493 "암호화 방식을 해킹하는"부채널 공격의 의미와 종류]〉, 《아이티월드》, 2019-04-22</ref> 이런 발견에 대응해 시간차 노이즈를 암호화 과정에 추가하는 등 공격의 위험을 줄이기 위해 많은 노력이 이어지고 있다. | |
=== 타자 소리를 해킹하는 음향 부채널 공격 === | === 타자 소리를 해킹하는 음향 부채널 공격 === | ||
− | + | 음향 부채널 공격(acoustic side channel attack)은 공격 대상이 비밀번호를 입력하는 소리를 듣고서 암호키를 얻어내는 것이다. 이 기술은 수십 년간 행해져 왔으며, 스마트폰조차 마이크로 활용되어 음향 부채널 공격이 가능할 수 있다. 음향 부채널 공격은 아주 정교한 머신러닝 모델을 필요로 한다. 키를 누르는 것을 다른 키와 구별할 수 있는 충분한 훈련 데이터 역시 필요하다. 이러한 점 때문에 적어도 현재로서는 국가 기관과 경찰의 전문 영역이다. | |
− | 음향 부채널 공격은 아주 정교한 머신러닝 모델을 필요로 한다. 키를 누르는 것을 다른 키와 구별할 수 있는 충분한 훈련 데이터 역시 필요하다. 이러한 점 때문에 적어도 현재로서는 국가 기관과 경찰의 전문 영역이다. | ||
== 대안 == | == 대안 == | ||
[[파일:SSH.png|썸네일|300픽셀|'''SSH''' 로고]] | [[파일:SSH.png|썸네일|300픽셀|'''SSH''' 로고]] | ||
− | |||
− | + | 오픈 시큐어셀([[SSH]] ; Secure Shell) 프로젝트를 통해 나온 패치를 이용해서 해커들의 공격으로부터 보호할 수 있다. 이 프로젝트는 해커들이 메모리 구역에 액세스하는 하드웨어 취약성을 통해 개인 키를 탈취할 수 없게 하는 패치이다. 후 세대 SDRAM 칩과 CPU에서 하드웨어 취약성 문제가 해결되기 전까지는 다른 소프트웨어 애플리케이션에도 똑같은 방식을 이용해 RAM의 정보를 보호할 수 있다.<ref name="대안">''Lucian Constantin'',〈[http://www.itworld.co.kr/news/124980 부채널 공격으로부터 메모리 내 키를 보호하는 오픈 SSH]〉, 《아이티월드》,2019-06-25</ref> | |
− | + | 새로운 오픈 SSH 패치는 개인 키를 암호화한다. 단 메모리에 상주할 때, 그리고 16KB의 무작위 데이터로부터 유도된 다른 대칭 키와 함께 적극적으로 사용되고 있지 않을 때에 한해서 암호화한다. 해당 패치의 주석에서는 "공격자들이 보호된 개인 키를 복호화 하려면 먼저 [[프리키]](prekey) 전체를 높은 정확성으로 빼내야 한다. 그러나 현 세대 공격들의 비트 오류율은 프리키 전체에 누적적으로 적용될 경우 그런 일을 불가능하게 한다. 실행 측면에서 보면, 키는 읽어 들일 때 암호화되어 보호된 후, 서명에 사용되거나 저장 및 직렬화될 때 자동으로 보호가 해제된다."고 밝혔다.<ref name="대안"></ref> | |
− | 하지만 | + | 오픈 SSH는 SSH 프로토콜의 가장 인기 있는 구현판이다. SSH 프로토콜은 컴퓨터 시스템과 서버에 대한 원격 접근 및 관리 목적으로 사용되며 기계 간의 자동화 통신에도 사용된다. 오픈 BSD 용으로 설계되었지만 대부분 리눅스 배포판에 의해서도 사용되며 윈도우10에서 지원된다. 하지만 오픈 SSH에서 사용한 방식은 부채널 공격의 성공 확률을 낮추는 것은 가능하지만 완전히 불가능하게 차단하지는 못한다. 공격은 나날이 개선되고 날카로워지기 때문에 이러한 대응이 통하지 않을 수도 있다. 근본적인 설계 결함은 하드웨어적인 측면에서 해결되겠지만 향후 공격을 막기 위해서는 많은 노력이 필요할 것이다. |
− | 공격은 나날이 개선되고 | ||
== 사례 == | == 사례 == | ||
=== PC에 대한 전자파 부채널 공격 사례 === | === PC에 대한 전자파 부채널 공격 사례 === | ||
− | 이스라엘의 Tel Aviv | + | 이스라엘의 텔아비브 대학(Tel Aviv University)에서는 피타 브레드(Pita Bread) 모양의 장치를 이용하여 컴퓨터에 저장된 암호키를 훔쳐낼 수 있는 빠르고 저렴한 방법을 고안했다고 밝혔다. 피타 브레드 장치를 컴퓨터로부터 전자파 부채널 신호를 수집하여 암호키를 분석한다. 피타 장치는 루프 안테나로 덮지 않은 구리와 암호키를 유출할 수 있는 1.7MHz 범위의 주파수를 엿들을 수 있도록 설계한 커패시터로 구성되어 있으며, 대략 50cm 떨어져 전자기적 신호를 수집한다. 논문에서는 RSA와 엘가말 키 암호화 알고리즘을 사용하는 오픈소스 암호화 프로그램인 GunPG 1.x를 구동하는 노트북에서 신호를 수집하여 키를 추출했으며, 내장 마이크로 SD카드에 수집된 신호를 토대로 오프라인 분석으로 수 초 만에 암호화 키를 추출했다. 또한 로드 마스터(Road Master)라고 불리는 상업용 라디오 리시버를 사용하여 동일한 키 추출이 가능함을 보였다. 라디오 리시버 신호는 HTC 에보(EVO) 4G 스마트폰의 마이크 입력에 연결하여 저장한다.<ref name="학회지"></ref> |
=== 소리를 통한 부채널 공격 사례 === | === 소리를 통한 부채널 공격 사례 === | ||
− | 소리를 이용해서도 | + | 이스라엘 텔아비브 대학과 와이즈만 대학(Weizmann University)에서는 소리를 이용해서도 컴퓨터에 대한 부채널 공격이 가능함을 보여줬다. RSA 알고리즘이 구동 중인 공격 대상 컴퓨터의 프로세서 소리를 수집용 마이크로 수집하며, 주파수 필터를 통해 분석에 필요한 소리만 필터링한다. 필터링 된 소리를 공격용 컴퓨터에서 분석을 수행하여 RSA 비밀키를 분석한다. 이는 부채널 분석 원리와 동일하게 RSA 비밀키의 0과 1의 차이에 의한 프로세서 사용 증가로 전력 소모량이 증가하며, CPU의 전력 소모량 증가로 CPU 가 동작하는 소리의 특성이 변화한다. CPU 소리의 변화를 파형으로 저장하여 평문과의 비교하여 곱셈, 덧셈 등 RSA의 비밀키와 관련된 연산을 식별하며, 식별된 연산 정보를 이용하여 비밀키를 획득하게 된다. 논문에서는 스마트폰에서도 분석 툴의 설치 및 분석이 가능하다고 주장했다.<ref name="학회지"></ref> |
=== 범죄에 악용된 사례 === | === 범죄에 악용된 사례 === | ||
− | 2011년 5월 프랑스에서 발생한 도난 신용카드를 사용한 범죄 사건이 | + | 2011년 5월 프랑스에서 발생한 신용카드 도난 사건 및 도난 신용카드를 사용한 범죄 사건이 일어났다. 이 도난카드에 대한 범죄 포렌식 분석을 한 결과가 ''Cryptographic Engineering'' 저널에 2016년 4월 발표되었다. 해당 범죄에서 유출한 도난 신용카드를 이용하여 대량의 상품을 구입했는데, 포렌식 분석의 주안점은 도난 IC 카드에서 PIN 코드 입력 부분을 어떻게 우회하였는지를 밝히는 것이었다. 실제 도난카드의 칩 위에 또 다른 IC 카드를 덧붙여 실제 중간자 공격을 통한 PIN 코드 우회를 수행하도록 한 것이다. 더욱 놀라운 사실은 본 중간자를 통한 PIN 코드 우회 공격은 본 범죄 발생 이전 해인 2010년 ''IEEE Symposium on Security and Privacy'' 학회에서 본 공격이 가능함을 겨우 실험실에서 FPGA를 이용하여 입증한 공격이라는 것이다. 이러한 학계의 연구결과가 발표된 지 불과 1년 후에, 이 기법을 사용하여 실제 범죄에 이용하였다는 사실은 시사해주는 바가 크다고 할 수 있다.<ref name="학회지"></ref> |
− | |||
{{각주}} | {{각주}} | ||
== 참고자료 == | == 참고자료 == | ||
− | * 최두호, 최용제,〈[https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=7&ved=2ahUKEwjf28-S89HjAhVFNKYKHdfpDAcQFjAGegQIBRAC&url=http%3A%2F%2Fwww.itfind.or.kr%2Fadmin%2FgetFile.htm%3Fidentifier%3D02-004-160908-000016&usg=AOvVaw3Ppm6hywOfeNKFlx-nyFI2 보안 칩에서 중요 키의 공격(부채널 공격 중심)기술 동향]〉, 《전자공학회지》,2016-07 | + | * 최두호, 최용제, 〈[https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=7&ved=2ahUKEwjf28-S89HjAhVFNKYKHdfpDAcQFjAGegQIBRAC&url=http%3A%2F%2Fwww.itfind.or.kr%2Fadmin%2FgetFile.htm%3Fidentifier%3D02-004-160908-000016&usg=AOvVaw3Ppm6hywOfeNKFlx-nyFI2 보안 칩에서 중요 키의 공격(부채널 공격 중심)기술 동향]〉, 《전자공학회지》, 2016-07 |
− | * 안상욱,〈[http://www.bloter.net/archives/203673 "컴퓨터에 손만 갖다대도 데이터 빼간다"]〉, 《블로터》,2014-08-21 | + | * 안상욱, 〈[http://www.bloter.net/archives/203673 "컴퓨터에 손만 갖다대도 데이터 빼간다"]〉, 《블로터》, 2014-08-21 |
− | * choirish,〈[https://bpsecblog.wordpress.com/2016/10/07/oldschool_timeattack/ 나도 해본다,타이밍 어택!(feat.Side Channel Attack)]〉, 《개인 블로그》,2016-10-07 | + | * choirish, 〈[https://bpsecblog.wordpress.com/2016/10/07/oldschool_timeattack/ 나도 해본다,타이밍 어택!(feat.Side Channel Attack)]〉, 《개인 블로그》, 2016-10-07 |
− | * | + | * Daniel Genkin, Itamar Pipman, Eran Tromer, 〈[https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=4&ved=2ahUKEwi0yd2G_9HjAhUIqpQKHaJmAyMQFjADegQIBBAC&url=https%3A%2F%2Fpdfs.semanticscholar.org%2Fcb42%2F6e15239695de02b836537a3733b47f27aa05.pdf&usg=AOvVaw1PPllOCPNQ5SkomCN8R7wk ''Get your hands off my laptop: physical side-channel key-extraction attacks on PCs, proc.'']〉, 《Workshop on CHES》, 2014 |
− | * | + | * Houda Ferradi, Rami Geraud, David Naccache, Assia Tria, 〈[https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=2ahUKEwi2ku-rhNLjAhWFxYsBHZOlBJkQFjAAegQIABAC&url=https%3A%2F%2Feprint.iacr.org%2F2015%2F963.pdf&usg=AOvVaw0d_izyt_eXGVTQ7Ih-Jphy ''When organized crime applies academic results: a forensic analysis of an in-card listening device'']〉, 《Journal of Cryptographic Engineerin》, 2016-04 |
− | * | + | * J.M. Porup, 〈[http://www.itworld.co.kr/news/121493 "암호화 방식을 해킹하는"부채널 공격의 의미와 종류]〉, 《아이티월드》, 2019-04-22 |
− | * | + | * Lucian Constantin, 〈[http://www.itworld.co.kr/news/124980 부채널 공격으로부터 메모리 내 키를 보호하는 오픈 SSH]〉, 《아이티월드》, 2019-06-25 |
− | + | * 순천향대학교 산학협력단, 〈[https://www.kisa.or.kr/jsp/common/libraryDown.jsp?folder=016282 부채널 공격 취약성 평가방법론 및 기준개발]〉, 《한국인터넷진흥원》, 2009-12 | |
+ | == 같이 보기 == | ||
+ | * [[해킹]] | ||
− | {{ | + | {{보안|검토 필요}} |
2019년 7월 31일 (수) 17:16 기준 최신판
부채널 공격(side channel attack)이란 암호학적인 측면에서 알고리즘의 약점을 찾거나 무차별 공격을 하는 대신에, 암호체계의 물리적인 구현 과정의 정보를 기반으로 하는 공격 방법이다. 사이드 채널 공격이라고도 한다.
목차
개요[편집]
부채널 공격은 디바이스 내의 보안 모듈이 구동되면서 발생하는 다양한 누수 정보(전력 소모, 전자기파, 오류 주입 결과 등)를 획득 및 가공, 분석하여 보안 모듈의 암호키를 크랙킹하는 공격이다. 부채널 공격은 디바이스의 훼손 여부에 따라, 비침투형 공격(non-invasive attack)과 (준) 침투형 공격((semi)-invasive attack) 두 가지 유형으로 구분할 수 있다. 대표적인 비침투형 공격 유형의 부채널 공격은 전력분석(power analysis), 비침투형 전자파 분석(electromagnetic analysis) 공격이 있으며, (준) 침투형 공격 유형의 부채널 공격의 대표적인 공격은 레이저 오류 주입(fault injection) 공격이 있다. 디바이스에 오류를 주입하는 방법은 전압을 갑자기 떨어뜨리거나, 올리는 전압 가변 방식, 디바이스의 동작 주파수에 변화를 주는 클럭 가변 방식, 레이저 오류 주입 방식, 강한 EM 방사를 통해 오류를 주입하는 방식 등이 있다. 이 중, 전압이나 클럭 가변 방식의 오류 주입은 비침투형 공격 유형에 해당할 수 있다. 암호에 대한 공격자의 능력에 따른 모델을 구분하면 아래 와 같이 블랙박스 공격(black-box attack), 그레이박스 공격(gray-box attack), 화이트박스 공격(white-box attack) 모델로 나눌 수 있으며, 부채널 공격은 그레이박스 어택 모델에 해당한다.[1]
- 블랙박스 공격(Black-box Attack) : 공격자는 연산이 일어나는 도중 연산 장치 내부의 정보를 관찰할 수 없고 알고리즘의 입력문과 출력문만 관찰할 수 있다. 블랙박스 공격에서의 대표적인 공격 방법은 선택평문공격(CPA)와 선택암호문공격(CCA)가 있다. CPA는 공격자가 평문을 선택하면 그에 해당하는 암호문이 주어지고 CCA는 그와 반대로 공격자가 선택한 암호문에 대한 평문이 주어진다.
- 그레이박스 공격(Gray-box Attack) : 공격자가 블록박스(block-box) 모델에서 획득할 수 있는 정보에 부채널 정보까지 추가적으로 접근할 수 있는 모델이다. 그레이박스 모델에서 추가적으로 접근할 수 있는 부채널 정보는 연산 시간, 전력 소비량, 자기장 등이 있다. 따라서 블랙박스 모델에서 안전한 알고리즘이 그레이박스 모델에서 안전함을 보장할 수 없다.
- 화이트박스 공격(White-box Attack) : 세 가지 공격 모델 중 공격자에게 가장 많은 능력을 부여하는 모델로서 그레이박스 모델에서 획득할 수 있는 정보 이외에 소프트웨어의 실행 시 연산이 이루어지는 장비 내부의 모든 계산 과정을 관찰하는 것과 메모리에 대한 접근과 변경이 허용된다.
부채널 공격은 1996년 폴 코처(Paul C. Kocher)가 제시한 타이밍 공격법에 대한 논문을 연구가 시작된 계기로 본다. 공격 목적이 아닌 분석 목적일 경우에는 부채널 분석이라고도 부른다. 간혹 부채널 공격을 '옆수로 공격'라고 부르는 경우도 있다. 부채널 공격이 정면으로 돌파하는 식의 공격 방법이 아니라, 옆으로 돌아 들어가서 정보를 빼내오는 공격이기 때문이다. 예를 들어 소요 시간 분석 공격에서는 하드웨어에서 암호화 또는 알고리즘을 수행하는 동안 CPU나 메모리의 데이터가 이동하는 시간을 측정하여 전체 비밀키를 알아낼 수 있다. 실용성에 대해서는 ASP.NET을 대상으로 한 오라클 셀 패딩 공격(Oracle Cell Padding Attack)이 발생하여 패치가 되었다. 또한, 2012~2015년도 사이에 SSL 통신을 해독할 수 있는 CRIME, BREACH, HEIST 공격이 블랙햇 콘퍼런스(BlackHat Conference)에서 발표된 바 있다.
종류[편집]
부채널 공격 기법에는 다음과 같이 여러 가지 방법이 있다.
- 소요 시간 분석 : 다양한 계산을 하는 데 소요되는 시간을 측정하는 것을 기반으로 하는 공격
- 전력 모니터링 공격 : 연산 중 하드웨어가 소비하는 전력 변화를 측정하는 것을 기반으로 하는 공격
- 전자기파 공격 : 하드웨어 외부로 방출되는 전자기파를 측정, 해독하여 정보를 얻어내는 공격. 템페스트(TEMPEST)과 같이 비암호화 공격에도 사용 가능
- 음성 암호 해독 : 연산 중에 하드웨어가 생성한 음향을 측정하여 악용하는 공격
- 차분 오류 분석 : 계산 과정에 오류를 의도적으로 끼워 넣어 암호를 빼내는 공격
- 잔존 데이터 : 삭제된 것으로 추정되는 데이터를 읽어내는 공격
- 로우 해머 공격 : 인접한 메모리 영역에 액세스 하는 형태. 접근이 허락되지 않은 메모리 영역을 강제로 수정하는 공격
위와 같이 다양한 방법들이 있지만 그중에서도 가장 많이 쓰이는 세 가지 방법은 다음과 같다. 아래의 세 가지 공격 기법들은 위에서 소개한 방법들 중 가장 효과적이고 강력하며 실제로도 많이 사용되는 공격 기법이다.
전력/전자파 분석 공격[편집]
부채널 공격 중 가장 대표적인 공격이다. 전력분석 공격은 1999년 폴 코처(P. Kocher)에 의해 DES가 공격된 이후 지난 10여 년간 현대 암호 시스템을 위협하는 가장 강력한 공격 수단으로 연구되어 왔다. 전력/전자파 분석 공격은 DES 암호뿐 아니라 거의 모든 암호 알고리즘에 적용되고 있다. 그렇기 때문에 부채널 공격 대응 방법이 강구되지 않은 보안 디바이스의 대부분의 경우 전력/전자파 분석 공격에 취약할 수 있으며, 오실로스코프(oscilloscope) 정도의 공격 환경으로도 실현 가능하기 때문에 스마트 디바이스로 공격 대상이 확대될 것을 예측하고 있다.[1] 전력 분석 공격에는 대표적으로 단순 전력/전자파 분석 공격(SPA, SEMA)과 차분 전력/전자파 분석 공격(DPA, DEMA)이 있다. 디바이스의 전자파 방사를 측정하여 암호키를 해킹하는 공격이다.
시간차 분석 부채널 공격[편집]
시간차 분석 부채널 공격(timing analysis side channel attack)은 암호화를 구동하는 데 걸리는 시간을 측정하고 분석하여 암호를 해독하는 방식의 공격이다. 화제가 되었던 멜트다운(Meltdown)과 스펙터(Specter) 모두 인텔 하드웨어에 대한 시간차 분석 부채널 공격이다. 폴 코처는 시간차 공격에 대해서 "개인키를 실행하기 위해 필요한 시간을 주의 깊게 측정하면 해커들은 고정된 디피-헬만(Diffie-Hellman) 지수를 찾아내고 RSA 키를 특정화하고 다른 암호화 체계를 깨뜨릴 수 있을 것이다"고 말했다.[2] 이런 발견에 대응해 시간차 노이즈를 암호화 과정에 추가하는 등 공격의 위험을 줄이기 위해 많은 노력이 이어지고 있다.
타자 소리를 해킹하는 음향 부채널 공격[편집]
음향 부채널 공격(acoustic side channel attack)은 공격 대상이 비밀번호를 입력하는 소리를 듣고서 암호키를 얻어내는 것이다. 이 기술은 수십 년간 행해져 왔으며, 스마트폰조차 마이크로 활용되어 음향 부채널 공격이 가능할 수 있다. 음향 부채널 공격은 아주 정교한 머신러닝 모델을 필요로 한다. 키를 누르는 것을 다른 키와 구별할 수 있는 충분한 훈련 데이터 역시 필요하다. 이러한 점 때문에 적어도 현재로서는 국가 기관과 경찰의 전문 영역이다.
대안[편집]
오픈 시큐어셀(SSH ; Secure Shell) 프로젝트를 통해 나온 패치를 이용해서 해커들의 공격으로부터 보호할 수 있다. 이 프로젝트는 해커들이 메모리 구역에 액세스하는 하드웨어 취약성을 통해 개인 키를 탈취할 수 없게 하는 패치이다. 후 세대 SDRAM 칩과 CPU에서 하드웨어 취약성 문제가 해결되기 전까지는 다른 소프트웨어 애플리케이션에도 똑같은 방식을 이용해 RAM의 정보를 보호할 수 있다.[3]
새로운 오픈 SSH 패치는 개인 키를 암호화한다. 단 메모리에 상주할 때, 그리고 16KB의 무작위 데이터로부터 유도된 다른 대칭 키와 함께 적극적으로 사용되고 있지 않을 때에 한해서 암호화한다. 해당 패치의 주석에서는 "공격자들이 보호된 개인 키를 복호화 하려면 먼저 프리키(prekey) 전체를 높은 정확성으로 빼내야 한다. 그러나 현 세대 공격들의 비트 오류율은 프리키 전체에 누적적으로 적용될 경우 그런 일을 불가능하게 한다. 실행 측면에서 보면, 키는 읽어 들일 때 암호화되어 보호된 후, 서명에 사용되거나 저장 및 직렬화될 때 자동으로 보호가 해제된다."고 밝혔다.[3]
오픈 SSH는 SSH 프로토콜의 가장 인기 있는 구현판이다. SSH 프로토콜은 컴퓨터 시스템과 서버에 대한 원격 접근 및 관리 목적으로 사용되며 기계 간의 자동화 통신에도 사용된다. 오픈 BSD 용으로 설계되었지만 대부분 리눅스 배포판에 의해서도 사용되며 윈도우10에서 지원된다. 하지만 오픈 SSH에서 사용한 방식은 부채널 공격의 성공 확률을 낮추는 것은 가능하지만 완전히 불가능하게 차단하지는 못한다. 공격은 나날이 개선되고 날카로워지기 때문에 이러한 대응이 통하지 않을 수도 있다. 근본적인 설계 결함은 하드웨어적인 측면에서 해결되겠지만 향후 공격을 막기 위해서는 많은 노력이 필요할 것이다.
사례[편집]
PC에 대한 전자파 부채널 공격 사례[편집]
이스라엘의 텔아비브 대학(Tel Aviv University)에서는 피타 브레드(Pita Bread) 모양의 장치를 이용하여 컴퓨터에 저장된 암호키를 훔쳐낼 수 있는 빠르고 저렴한 방법을 고안했다고 밝혔다. 피타 브레드 장치를 컴퓨터로부터 전자파 부채널 신호를 수집하여 암호키를 분석한다. 피타 장치는 루프 안테나로 덮지 않은 구리와 암호키를 유출할 수 있는 1.7MHz 범위의 주파수를 엿들을 수 있도록 설계한 커패시터로 구성되어 있으며, 대략 50cm 떨어져 전자기적 신호를 수집한다. 논문에서는 RSA와 엘가말 키 암호화 알고리즘을 사용하는 오픈소스 암호화 프로그램인 GunPG 1.x를 구동하는 노트북에서 신호를 수집하여 키를 추출했으며, 내장 마이크로 SD카드에 수집된 신호를 토대로 오프라인 분석으로 수 초 만에 암호화 키를 추출했다. 또한 로드 마스터(Road Master)라고 불리는 상업용 라디오 리시버를 사용하여 동일한 키 추출이 가능함을 보였다. 라디오 리시버 신호는 HTC 에보(EVO) 4G 스마트폰의 마이크 입력에 연결하여 저장한다.[1]
소리를 통한 부채널 공격 사례[편집]
이스라엘 텔아비브 대학과 와이즈만 대학(Weizmann University)에서는 소리를 이용해서도 컴퓨터에 대한 부채널 공격이 가능함을 보여줬다. RSA 알고리즘이 구동 중인 공격 대상 컴퓨터의 프로세서 소리를 수집용 마이크로 수집하며, 주파수 필터를 통해 분석에 필요한 소리만 필터링한다. 필터링 된 소리를 공격용 컴퓨터에서 분석을 수행하여 RSA 비밀키를 분석한다. 이는 부채널 분석 원리와 동일하게 RSA 비밀키의 0과 1의 차이에 의한 프로세서 사용 증가로 전력 소모량이 증가하며, CPU의 전력 소모량 증가로 CPU 가 동작하는 소리의 특성이 변화한다. CPU 소리의 변화를 파형으로 저장하여 평문과의 비교하여 곱셈, 덧셈 등 RSA의 비밀키와 관련된 연산을 식별하며, 식별된 연산 정보를 이용하여 비밀키를 획득하게 된다. 논문에서는 스마트폰에서도 분석 툴의 설치 및 분석이 가능하다고 주장했다.[1]
범죄에 악용된 사례[편집]
2011년 5월 프랑스에서 발생한 신용카드 도난 사건 및 도난 신용카드를 사용한 범죄 사건이 일어났다. 이 도난카드에 대한 범죄 포렌식 분석을 한 결과가 Cryptographic Engineering 저널에 2016년 4월 발표되었다. 해당 범죄에서 유출한 도난 신용카드를 이용하여 대량의 상품을 구입했는데, 포렌식 분석의 주안점은 도난 IC 카드에서 PIN 코드 입력 부분을 어떻게 우회하였는지를 밝히는 것이었다. 실제 도난카드의 칩 위에 또 다른 IC 카드를 덧붙여 실제 중간자 공격을 통한 PIN 코드 우회를 수행하도록 한 것이다. 더욱 놀라운 사실은 본 중간자를 통한 PIN 코드 우회 공격은 본 범죄 발생 이전 해인 2010년 IEEE Symposium on Security and Privacy 학회에서 본 공격이 가능함을 겨우 실험실에서 FPGA를 이용하여 입증한 공격이라는 것이다. 이러한 학계의 연구결과가 발표된 지 불과 1년 후에, 이 기법을 사용하여 실제 범죄에 이용하였다는 사실은 시사해주는 바가 크다고 할 수 있다.[1]
각주[편집]
- ↑ 1.0 1.1 1.2 1.3 1.4 최두호, 최용제,〈보안 칩에서 중요 키의 공격(부채널 공격 중심)기술 동향〉, 《전자공학회지》,2016-07
- ↑ J.M. Porup,〈"암호화 방식을 해킹하는"부채널 공격의 의미와 종류〉, 《아이티월드》, 2019-04-22
- ↑ 3.0 3.1 Lucian Constantin,〈부채널 공격으로부터 메모리 내 키를 보호하는 오픈 SSH〉, 《아이티월드》,2019-06-25
참고자료[편집]
- 최두호, 최용제, 〈보안 칩에서 중요 키의 공격(부채널 공격 중심)기술 동향〉, 《전자공학회지》, 2016-07
- 안상욱, 〈"컴퓨터에 손만 갖다대도 데이터 빼간다"〉, 《블로터》, 2014-08-21
- choirish, 〈나도 해본다,타이밍 어택!(feat.Side Channel Attack)〉, 《개인 블로그》, 2016-10-07
- Daniel Genkin, Itamar Pipman, Eran Tromer, 〈Get your hands off my laptop: physical side-channel key-extraction attacks on PCs, proc.〉, 《Workshop on CHES》, 2014
- Houda Ferradi, Rami Geraud, David Naccache, Assia Tria, 〈When organized crime applies academic results: a forensic analysis of an in-card listening device〉, 《Journal of Cryptographic Engineerin》, 2016-04
- J.M. Porup, 〈"암호화 방식을 해킹하는"부채널 공격의 의미와 종류〉, 《아이티월드》, 2019-04-22
- Lucian Constantin, 〈부채널 공격으로부터 메모리 내 키를 보호하는 오픈 SSH〉, 《아이티월드》, 2019-06-25
- 순천향대학교 산학협력단, 〈부채널 공격 취약성 평가방법론 및 기준개발〉, 《한국인터넷진흥원》, 2009-12
같이 보기[편집]