ISSN 2383-630X(Print) / ISSN 2383-6296(Online) Journal of KIISE, Vol. 41, No. 11, pp. 982-991, 2014. 11 http://dx.doi.org/10.5626/jok.2014.41.11.982 순환형 데이터 블록 체이닝을 이용한 차량용 블랙박스의 영상 데이터 무결성 보장 기법 (A Car Black Box Video Data Integrity Assurance Scheme Using Cyclic Data Block Chaining) 이 강 김 경 미 조 용 준 (Kang Yi) (Kyung-Mi Kim) (Yong Jun Cho) 요 약 차량용 블랙박스의 이용율이 급격히 증가하고 있으나, 교통사고 발생 시에 블랙박스에 기록된 사고 영상이 조작되거나 임의 삭제되지 않았음을 보장하는 무결성 검증 방안이 절실히 요구된다. 본 논문 에서는 차량용 블랙박스의 영상 기록의 특성을 반영하여 블랙박스에 저장된 영상 데이터의 무결성을 보장 하는 방안을 제시한다. 본 제시된 방안은 저장된 모든 영상 데이터 블록들을 각각 그 인접한 영상 데이터 블록들과 순환형 체인으로 연결시켜 무결성 정보를 생성한다. 제안된 방법은 데이터 블록의 삽입, 삭제, 변 경 등의 공격을 탐지하고 부인 불가 기능을 지원할 수 있을 뿐 아니라, 더 나아가 파일 저장 공간이 가득 차서 가장 오래된 블록을 삭제하고 새로운 블록을 삽입 할 때나 일부 영상 정보가 물리적으로 손상이 되 더라도 일관성 있게 무결성 보장 시스템이 작동할 수 있는 구조를 가지는 있다. 실험 결과에 따르면, 본 방법은 full HD@30fps의 경우에도 임베디드 시스템에서 실시간성이 충분하다. 키워드: 무결성, 비디오 데이터 무결성 보장, 차량용 블랙박스, 데이터 조작, 해시, 인증 Abstract The integrity assurance of recorded video by car black boxes are necessary as the car black box is becoming more popular. In this paper, we propose a video data integrity assurance scheme reflecting the features of car black box. The proposed method can detect any kind of deletion, insertion, modification of frames by cyclic chaining using inter block relation. And, it provides the integrity assurance function consistently even in cases of file overwriting because of no more free space in storage, partial file data lost. And non-repudiation is supported. Experimental results with a car black box embedded system with A8 application processor show that our method has a feasible computational overhead to process full HD resoultion video at 30 frames per second in a real time. Keywords: integrity, video data integrity assurance, car black box, falsification, hash, authentication 본 논문은 2014년 미래창조과학부의 재원으로 (재)스마트 IT 융합 시스템 논문수정 : 2014년 9월 24일 연구단(글로벌프론티어사업)의 지원을 받아 수행된 연구임((재)스마트 IT 융 (Revised 24 September 2014) 합시스템 연구단-2011-0031863) 심사완료 : 2014년 9월 24일 (Accepted 24 September 2014) 종신회원 : 한동대학교 전산전자공학부 교수(Handong Global Univ.) yk@handong.edu (Corresponding author임) 정 회 원 : 한동대학교 GLS학부 교수 kmkim@handong.edu 학생회원 : 한동대학교 전산전자공학부 wp0039@naver.com CopyrightC2014 한국정보과학회ː개인 목적이나 교육 목적인 경우, 이 저작물 의 전체 또는 일부에 대한 복사본 혹은 디지털 사본의 제작을 허가합니다. 이 때, 사본은 상업적 수단으로 사용할 수 없으며 첫 페이지에 본 문구와 출처를 반드시 명시해야 합니다. 이 외의 목적으로 복제, 배포, 출판, 전송 등 모든 유형의 사용행위 를 하는 경우에 대하여는 사전에 허가를 얻고 비용을 지불해야 합니다. 정보과학회논문지 제41권 제11호(2014. 11) 논문접수 : 2014년 8월 20일 (Received 20 August 2014)
순환형 데이터 블록 체이닝을 이용한 차량용 블랙박스의 영상 데이터 무결성 보장 기법 983 1. 서 론 2013년 기준 국내 자동차 등록은 2천만대가 넘어 자 동차 1대당 인구수 2.64명이며, 자동차의 증가로 인해 지난 10년간 교통사고 발생은 해마다 20만 건을 웃돌고 있다. 대중교통 및 개인차량 교통사고가 발생하는 경우, 사고 발생의 책임 소재를 판단하는 근거로 삼을 수 있 는 객관적인 자료 확보가 분쟁 해결에 중요하다. 무엇보 다 사고 순간이 왜곡될 수 있는 운전자의 증언이 아닌 사고 시점의 차량 운행 정보와 사고 지점의 운행정보를 포함하는 다양한 데이터가 필요하다. 또한, 운전자가 원 하는 시점에 수동으로 녹화하여 위급 상황이나 범죄 가 능성이 높은 상황에서도 자료 수집은 필요하다[1]. 자동차 블랙박스는 자동차 내에 설치하는 교통사고 영 상기록장치로서, 교통사고 전 후의 사고발생 영상, 발생 위치, 속도, 가속도, 음성 등을 자동으로 기록하는 장치 를 일컫는다. 서울 시내 4개 교차로에 자동차 블랙박스 를 설치하고 설치 전 후의 교통사고 감소효과를 분석한 결과, 교통사고 발생건수는 평균 16.9% 감소한 것으로 나타났다[2]. 차량용 블랙박스를 장착함으로써 교통사고 의 예방 및 감소에 상당한 효과를 거둔 것으로 조사되어 교통사고 지수는 23%, 사망사고 건수는 48%, 부상사고 건수는 17% 가량 감소한 것으로 추정하고 있다[3]. 이미 국내는 물론 유럽, 중국, 일본 등에서는 의무화 되고 있는 DTG (Digital Tachograph) 뿐만이 아니라, 차량 운행정보 영상기록 장치인 자동차 블랙박스의 필 요성이 매우 강조되고 있다[4]. 국내에서는 2013년부터 전국 화물차를 대상으로 블랙박스와 운행기록장치의 장 착 의무화를 강화하고 있으며, 설치 시 50%의 국가예산 을 지원하고 있다. 국내 차량용 블랙박스 보급현황을 살 펴보면, 2012년 말 기준으로 택시와 자가용 장착차량을 포함하여 전국적으로 약 200만 대의 차량이 자동차 블 랙박스를 장착한 것으로 추정되며, 이는 전국 자동차 등 록대수의 약 11%에 해당된다[2]. 이처럼 국내에서 자동 차 블랙박스 장착은 해마다 증가하고 있다. 그러나 블랙박스의 설치 및 활용에 대한 법적 규정이 미비하여 차량용 블랙박스의 사용과 함께 다양한 문제 가 발생 할 수 있다. 특히, 교통사고 시시비비를 가리기 위해서 블랙박스에 기록된 영상이 증거 자료로 제출될 때는 그 영상이 임의로 삭제나 조작되지 않았음을 입증 할 수 있어야 한다. 따라서 블랙박스에 저장된 데이터의 위 변조를 방지할 방법이 필요하다. 이러한 보안 요구 사항들을 반영하여 2011년 6월에 제정되고 그 후에 개 정된 제정된 KS-R-5078: 차량용 영상 사고기록 장치 표준에는 블랙박스에 저장되는 사고기록 데이터의 무결 성이 제공되어야 함을 명시하였다[5]. 무결성은, 사고기 록 정보 무결성은 영상 사고기록 장치에 저장된 사고기 록 정보가 오손 또는 훼손 없이 그대로 유지되는 특성 으로 정의된다[1]. 자동차 블랙박스에 저장된 영상 데이 터는 운전자가 쉽게 접근을 할 수 있어야 하고, 해당 내 용을 필요시 재생할 수 있어야 한다. 그러나 특정 교통 사고의 내용을 은폐 및 위조하기 위한 사고 영상 위 변 조를 방지하기 위해 영상 데이터에 대한 무결성을 유지 하고 검증할 수 있어야 하며, 삭제 또는 순서 재배열이 된 경우에도 이를 감지할 수 있어야 한다[3]. [6]에서는 차량용 블랙박스를 스마트폰을 이용하여 구 현할 수 있음을 보여주었으나, 무결성 검증에 대한 언급 은 찾아볼 수 없으며, [7]에서는 무결성 검증 시스템을 실제로 구현하여 무결성 검증 기능을 보여주지만, 중간 파일의 삭제나 추가 삽입에 대한 보안책이 언급되지 않 았다. [7]에서는 SHA-1을 이용하여 영상 데이터의 해 쉬값을 생성하고 이 해쉬값을 AES를 이용하여 암호화 하는 기본적인 무결성 검증 체계를 제안하였다. [8]에서는 비디오 데이터를 uncompressed 영역의 프 레임 단위로 나누어서 key frame level, shot level, video level의 3단계의 비밀 정보를 생성하고 이를 모아 서 top level(video level)의 데이터의 검증 정보를 생성 하는 방식이다. [9]는 자신들이 2010년에 제안했던 비디오 데이터에 적용한 PIATS(Partially Sanitizable Signature Scheme) 기반 방식이 비디오 사이즈가 커질수록, 인코딩하는데 걸리는 시간이 너무 길어지는 단점을 극복하려고, 프레 임별로 해싱함수를 적용할 때 그 이전에 적용된 모든 프 레임의 해싱값을 연결하여 해싱하는 기법을 제안하였다. [10]에 제시된 특허의 내용은, 영상 블록의 해쉬값을 계산할 때 이전 블록의 해쉬값과 현재 블록의 데이터를 더하여 한 번 더 해쉬한 값을 무결성 검증 정보로 사용 하겠다는 것이 주된 내용이다. 블록들의 해쉬 값이 상호 연쇄되어 하나의 영상데이터라도 조작되면 이후 모든 해쉬값이 달라지는 특징을 가진다. 단, 최초 영상 블록 은 이전 블록의 해쉬값이 없기 때문에 별도의 초기 키 값을 이용하여 초기 무결성 검증용 데이터를 인위적으 로 생성해야 한다. AES등의 별도의 암호화 과정 없이 도 두 번에 걸친 해쉬값 자체가 무결성 검증 자료가 된 다는 방법이다. [11]에서는 [10]의 내용을 발전시켜서 가 장 최근에 생성된 영상 데이터 블록을 삭제하려는 후방 삭제 공격에 대비하여 현재 블록과 이전 블록 해쉬값은 물론이고 이후 블록의 해쉬 정보를 더해서 세 개 블록 의 정보를 모아서 한 번 더 해쉬하는 기법을 제안하였 다. 그러나 이 방식은 파일저장 공간의 용량이 부족할 경우에 대한 대책이 불분명하고, 일부 영상 블록 파일 손상 시에 손상된 지점 이후의 모든 파일의 무결성 검
984 정보과학회논문지 제41권 제11호(2014. 11) 증이 어려워지는 문제를 가지고 있다. 본 논문에서는 데이터의 삭제, 삽입, 수정 등의 위조 및 조작을 찾아내는 기본적인 무결성 보장 기능은 물론 이고, 종래 무결성 보장 방안이 언급하지 않는 몇 가지 문제를 추가로 해결함을 목표로 하고 있다. (1) 파일 저장 공간이 찼을 때의 무결성 보장 유지 (2) 영상 데이터 파일 일부 손실 시에 나머지 데이터에 대한 무결성 보장 유지 (3) 갑작스런 정전 시에도 저장된 영상 데이터에 대한 무결성 검증 데이터를 최대한 생성 (4) 전체가 아닌 일부 영상데이터에 대한 무결성 검증 시에 효율적으로 무결성 여부를 판정 가능 본 논문은, 다음과 같이 구성된다. 2장에서는 [10]과 [11]의 방안을 중심으로 기존 블랙박스 무결성 보장 방 안과 그 한계점을 설명한다. 3장에서는 제안된 무결성 보장 방안을 기술하고, 4장에서 차량용 블랙박스에 적용 을 고려한 추가 사항을, 5장에서 실험을 통해 기능 및 성능에 대한 테스트 결과를 제시한다. 6장에서는 결론 및 향후 과제를 설명한다. 2. 관련 연구 [10] 및 [11]에서 제안하는 무결성 지원 방식을 자세 히 살펴보고자 한다. 이 방법들은 공통적으로 해싱을 이 용한다. 해싱은 큰 데이터 블록의 고유한 특성을 나타내 는 작은 길이의 값을 얻어내는 연산으로서 입력 데이터 의 값이 조금만 달라져도 출력 해쉬값이 많이 달라지는 특성을 가진다. 기존 방법[10,11]에서는 입력으로 받은 모든 영상 데 이터를 일정크기의 영상데이터 블록으로 잘라서 BD(1), BD(2),..., BD(N)으로 만들고 각각 BD(i) (i=1, 2,..., N)에 대해서 자신의 데이터 블록 BD(i) 자체에 직전 블록에 서 생성한 일차 해쉬값을 덧붙여서 해싱한 후, 일차 해 쉬값을 생성한다. 이 일차 해쉬값을 한 번 더 해쉬한 이 차 해쉬값 h(i) 를 생성한 뒤. h(i) 에 time stamp등 필 요한 기타 데이터를 추가하여 BD(i)를 위한 무결성 검증 데이터 AD(i)로 저장한다. 단, 첫 번 데이터 블록 BD(1) 은 1차 해쉬를 할 때 사용할 이전 블록의 해쉬값이 없 기 때문에 비밀키로 만든 서명값으로 1차 해쉬값 h(1) 을 대신다. 한편, 이 서명값은 비밀키 sk로 BD(1)을 비 대칭 암호화 알고리즘을 이용하여 생성한다. 비밀키는 스마트카드 내에 안전하게 보관된다고 가정한다. [10]에서 제안하는 BD(i)를 위한 무결성 검증 데이터 AD(i)를 생성하는 과정의 핵심 아이디어는 다음과 같다. (1) 인증키(sk)와 첫 번 영상데이터 블록 BD(1)을 이용 해서 초기서명을 만들고 이를 일차 해쉬값 h(1) 값 으로 임시 메모리에 저장한다. 예를 들어 블록의 크 기가 100KB에서 해쉬값 32바이트를 구하는 것이다. (2) 해쉬값 h(1)을 해싱하여 h(1) 를 생성하고 AD(1)으 로 비휘발성 메모리에 저장한다. (3) 두 번째 데이터블록 BD(2)에 h(1)을 이어 붙여 해 쉬값을 구한다. 즉, (BD(2) h(1))에 대해서 일차 해쉬값을 계산한다. 이 일차 해쉬값을 h(2)로 임시 메모리에 저장한다. 예를 들어 100KB 크기의 BD(2) 에 32B 크기의 h1을 붙여서 (100K+32)바이트 데이 터에 대한 해쉬값 32바이트가 h(2)가 되는 것이다. (4) 이전 블록의 일차 해쉬값인 h(1)은 임시 메모리에서 지운다. (5) h(2)를 한번 더 해쉬하여 h(2) 을 생성하고 AD(2) 로 저장한다. (6) 위 (3)-(5)의 과정을 모든 BD(i)에 대해서 반복하여 AD(i)를 생성한다. 위의 과정을 그림으로 도식화하면 그림1과 같다. 플래 쉬 메모리에 남는 내용은 BD(i)와 AD(i)(h(i) )이 된다. 이 그림은 4개의 블록 데이터를 위한 무결성 검증 데이 터 4개를 생성하는 방법을 보여주고 있다. 아래 그림에 서 박스들은 입출력 데이터이고 타원은 해쉬를 비롯한 연산을 의미한다. 이 과정 후에 최종적으로 비휘발성 저 장장치에 무결성 검증데이터와 영상 블록 데이터가 저 장된다. 추후 영상 블록 데이터의 무결성 검증이 필요하 면 검증이 필요한 영상 블록으로부터 다시 무결성 검증 데이터를 생성하여 영상 블록 생성시 영상 데이터와 함 께 비휘발성 메모리에 저장되었던 검증 데이터와 비교 하여 그 값이 서로 일치하면 무결성이 확인되고 조금이 라도 값이 다르면 영상 생성 후에 인위적인 조작이 영 상에 가해진 것으로 판정되는 것이다. BD들의 무결성 검증값이 서로 체이닝이 되어 있기 때문에 어느 하나의 이전 BD라도 바뀌거나 삭제가 되 면 무결성 검증을 통과하지 못한다. 예를 들어, 임의로 BD(2)를 바꾼 사람이 그 사실을 감추기 위해서는 h(2) 도 바꾸어야 하는데, h(2) 를 바꾸기 위해서는 h(1) 값을 알아야 하고 h(1) 값을 알기 위해서는 비밀키 sk를 알 아야 하는 문제가 되기 때문에 비밀키(sk)값을 모르는 사람이 BD(2)에 맞는 h(2) 를 인위적으로 만들 수가 없 게 된다. 뿐만 아니라, h(1)을 알 수 없다는 것은 수정 한 BD(2)에 대응하는 h(2) 값뿐만 아니라 이 값을 이용 하는 그 이후의 모든 블록 데이터의 일차 해쉬값을 계 산할 수 없다는 뜻이 되고, 따라서 이에 대응하는 이차 해쉬값들도 생성이 불가하게 된다. 다시말해서, BD(2)의 값을 누군가 수정을 한다 해도 이에 대응하는 h(2) 값을 만들어 낼 수 없기 때문에 검증 과정에서 h(2), h(3) h(4) 이 저장된 무결성 검증 값과 모두 다른 값으로 계 산되어 임의 수정 사실이 드러나게 된다.
순환형 데이터 블록 체이닝을 이용한 차량용 블랙박스의 영상 데이터 무결성 보장 기법 985 그림 1 [10]의 무결성 검증 데이터 생성 방법 Fig. 1 Integrity assurance data generation in [10] 그러나, 이 방식에는 몇가지 문제점이 있다. 첫째, 후위 삭제공격에는 무력하다. 위 그림 1에서 BD(4)와 h(4) 를 삭제한 경우 이의 삭제 사실을 무결성 검증 절차에서 알 수가 없다. 둘째, 중간에 어느 하나의 BD(i)의 저장된 값이 손상 되면 그 BD(i) 이후의 모든 BD(i)의 무결성을 검증할 수 없다. 이는, 초기 블록을 고의로 훼손하게 되면 무결 성 검증 자체를 불가하게 만들 수 있다는 문제가 된다. 셋째, 임의의 BD(i)의 무결성을 검증하기 위해서는 BD(1)부터 BD(i) 까지 모든 데이터 블록을 해싱하여야 한다는 번거로움이 있다. 블록 개수가 많을 때는 시간이 걸리는 일이 될 수 있다. 넷째, 파일 저장 공간이 거의 남지 않았을 때, 기존의 오래된 블록 무결성 검증 데이터 h(i)를 지우고 새로운 블록 검증 값을 추가 할 수 없고, 전체 파일 시스템을 덮어 써야 하는 문제가 있다. 자동차 블랙박스의 경우, 파일저장 공간이 크지 않아서 오래된 것부터 지우면서 새로운 영상을 저장하는 일이 흔하기 때문에 이는 현실 적으로 매우 심각한 문제가 된다. [11]에서는 위의 [10]의 방법이 가지는 문제들 중 첫 번째 문제 (후위 삭제 공격)에 대한 해결책을 제시하고 있다. 그 해결방안은, 현재 데이터블록의 무결성 검증 값을 생성할 때 직전 블록 데이터의 값과만 연계하는 [10]과는 달리 현재 블록 데이터값을 직전 블록 데이터 값과 직후 블록 데이터 값을 모두 연계하여 최종 검증 값을 생성한다. 이를 위해서 [10]의 과정에 추가의 해쉬 과정을 한번 더 거쳐야 한다. 그림 2는 [11]의 무결성 검증 데이터 생성과정을 도식화하고 있다. 아래 그림 2에 서 맨 마지막에 추가된 BD(4)에 대해서는 무결성 검증 값 IVD(4)가 h(4) 와 같지만 IVD(1)~IVD(3)은 현재 블록 데이터의 이차해쉬 함수값과 이전 블록 데이터의 일차해쉬 함수값을 연결하여 다시 해쉬를 하여 만들어 진 값이다. 만일 BD(4)를 삭제한다면, h(4)가 존재하지 않기 때문에 BD(3)의 IVD(3)을 제대로 계산할 수 없게 그림 2 [11]의 무결성 검증 데이터 생성 방법 Fig. 2 Integrity assurance data generation in [11] 되어 후위 삭제 공격에 대응할 수 있다. 참고로, 만일 BD(4) 다음에 BD(5)를 추가한다면, BD(5)의 1차 해쉬함수 값 h(5)와 h(4) 을 연결하여 해 쉬값을 구하여 IVD(4)를 갱신하고 h(5)를 이차해쉬한 h(5) 값이 DB(5)를 위한 무결성 검증값 IVD(5)가 되어 계속 새로운 블록데이터를 추가할 수 있으며 후위 삭제 공격에 지속적으로 대응이 가능하다. [11]의 보완방식에도 불구하고, [10]의 약점으로 지적 된 네가지 문제점들 중 후위삭제 공격에 대비한 것 외 에, 나머지 3가지 문제점은 여전히 해결되지 않았다. 3. 문제 정의 다음의 입력, 출력, 기능, 및 제약조건을 만족하면서 목적함수를 최적화 시키는 영상데이터 무결성 검증 알 고리즘을 구하는 것이 목표이다. 3.1 입력 (1) {BD(i) (i=1,...,n)}: 평균 크기 M 바이트로 나뉘어 진 영상 블록 데이터 (2) SK: AES 등 대칭키 알고리즘을 위한 비밀키 (3) L: 영상 데이터와 무결성 데이터를 저장하기 위한 비휘발성 저장공간의 최대 용량 (바이트) 3.2 출력 (1) BD(i) : 입력으로 주어진 영상 데이터 블록 (2) IVD(i) (i=1,..,n): BD(i)의 무결성 검증에 필요한 데이터 3.3 요구되는 필수 기능 다음의 무결성을 해치는 공격들에 대한 대응이 가능 해야 한다. (1) 치환공격: 임의의 BD(i)를 저장 후 고의로 수정하였 는지 검증할 수 있어야 한다. (2) 삭제공격: 저장된 후 고의로 삭제한 블록데이터가 있는 지 검증할 수 있어야 함. 특히, 맨 뒤에 저장된 데이터
986 정보과학회논문지 제41권 제11호(2014. 11) 블록의 삭제여부를 검증할 수 있어야 한다(후위 삭제 공격). (3) 삽입공격: 임의의 BD(i)가 이미 저장된 블록데이터들 사이에 고의로 삽입된 것인지 검증할 수 있어야 한다. (4) 재배열공격: 이미 저장된 블록 데이터들의 순서를 고의 로 서로 바꾸어 저장하였는지 확인할 수 있어야 한다. 3.4 목적 함수 다음 값들을 최소화하도록 설계되어야 한다. (1) IVD(i)를 생성하는데 소요되는 시간 (2) IVD(i)크기의 BD(i)의 크기에 대한 상대적 크기 (3) IVD(i)를 생성하는 과정에서 비휘발성 저장장치 읽기 및 쓰기 횟수 (4) 임의의 영상 블록 데이터 BD(i) 의 무결성을 검증하기 위하여 요구되는 하는 주변 블록 데이터 BD(i)의 개수. (5) 갑작스런 정전시에 영상 데이터 블록은 기억장소에 저 장되었으나 무결성을 보장할 수 없는 영상 데이터 블록 의 개수 3.5 제약조건 다음 세가지 제약조건을 반드시 만족해야 차량용 블 랙박스에 적용이 가능한 무결성 검증 알고리즘이 된다. (1) 저장공간 크기 초과시의 무결성 보장: BD(j) (1 j N)를 저장하려고 할 때 지금까지 처리되어 저장된 블 록데이터의 크기의 합이 영상 데이터 저장공간의 크기 L을 초과하기 직전이면 저장공간에 남아 있는 가장 오 래된 영상 블록 BD(k)를 삭제하고 새로운 BD(i)으로 대체할 수 있어야 한다. 이때에도 모든 저장된 블록 데 이터에 대한 무결성을 검증할 수 있어야 한다. (2) 저장장치 오류 저항성: 저장 장치의 물리적 문제로 임 의의 한 블록 데이터 값이 손상된 경우에도 손상된 블 록의 앞뒤 블록을 제외한 나머지 모든 블록 데이터들의 무결성 검증이 가능하여야 한다. (3) 부인방지: 저장된 블록 데이터와 무결성 보장 데이터가 자신의 블랙박스 기기에서 생성 및 저장된 영상이 아니 라고 부인할 수 없도록 해야 한다. 4. 새로운 무결성 보장 방안의 제안 및 분석 3장의 문제 정의에서 요구되는 모든 기능과 제약조건을 만족시키는 무결성 검증 데이터 생성 방안을 제안한다. 4.1 무결성 보장 방안 본 제안 방식은, 현재 데이터블록의 무결성 검증 값 생성시에 이전 블록 데이터와 현재 블록 데이터를 연결 한다는 것과 첫 번째 블록과 마지막 블록을 연결하여 순환 고리를 만들어 후위삭제 및 저장공간이 찼을 때에 도 일관성을 유지할 수 있다는 것이 기본 내용이다. 구체적으로, 블록 데이터 BD(i)를 위한 무결성 검증 데이터를 생성하기 위해서 현재 블록 데이터의 해쉬값 그림 3 제안한 무결성 검증값 생성 방법의 개요 Fig. 3 Overview of proposed integrity assurance method 과 이전 블록 데이터의 해쉬값의 논리연산 값인 h(i) xor h(i-1) 연산한다. 이 결과를 대칭키 암호화 알고리즘인 AES로 암호화하여 BD(i)의 무결성 검증 값인 IVD(i)로 저장한다. 그림 3에서는 4개의 블록 데이터를 위한 무결 성 검증 정보가 계산된 방법을 보여주고 있다. 첫 번째 블록 데이터의 무결성 검증 값 IVD(1)은 마지막 블록 데이터를 해쉬한 값을 이용하여 체이닝한다. 이는 앞서 말한 바와 같이 인접한 두 BD의 데이터를 이용하여 후 위 공격을 대비하기 위한 방안이다. n-번째 블록데이터 BD(n)를 추가할 때의 구체적 방 법은 다음과 같이 설명할 수 있다. (1) 블록 데이터 BD(n)의 해쉬 함수값 h(n)를 구하여 임시 메모리 (레지스터)에 저장해 둔다. (2) 이전 블록 데이터의 해쉬값 h(n-1)을 현재 블록 데이터 의 해쉬값 h(n)와 XOR 연산을 시켜서 D(n)=[h(n) xor h(n-1)]을 생성하고 (3) D(n)를 AES를 이용하여 암호화시키고 IVD(n)을 비휘 발성 메모리에 저장한다. (4) header 블록이 BD(k)라고 가정하고, (예: 그림 3의 경 우, k=1) header 블록의 해쉬값 h(k) 값을 모른다면 (5) 을 실행하고 h(k)값을 안다면 (6)을 실행한다. (5) IVD(k)로부터 AES -1 (IVD(k)) 계산으로 D(k)을 구하 고, D(k) xor h(n-1)를 통하여 h(k)를 계산한다. (6) D(k)=[h(k) xor h(n)]를 구한다. (7) h(n-1)을 삭제한다. (8) IVD(k) = AES(D(k))를 계산하여 비휘발성 메모리에 다시 저장한다. 그림 4에서 새로운 블록 데이터 BD(3)과 BD(4)가 추 가되는 경우의 업데이트 되는 데이터를 표시하고 있다. 이 그림에서 검은색 박스는 내용이 업데이트되어 저장 장치에 다시 쓰기를 해야 하는 데이터를 표시하고 있으
순환형 데이터 블록 체이닝을 이용한 차량용 블랙박스의 영상 데이터 무결성 보장 기법 987 그림 4 제안된 무결성 보장 방법에서 새로운 블록 데이터 3, 4 추가하기 Fig. 4 Adding new block data 3 and 4 using proposed integrity assurance method 며 회색 박스로 표시된 부분은 임시 메모리(레지스터)에 다음 블록데이터 추가를 빨리하기 위해서 보관한 정보 를 표시한다. 여기서 주목할 내용은 두 가지이다. 첫째, 그림4를 통 해서 알 수 있듯이, 헤더블록 데이터의 무결성 검증값 IVD(1)은 매 새로운 블록이 추가될 때마다 값이 갱신되 어야 한다. 헤더 블록 무결성 검증 값 IVD(1)을 저장하 는 부분은 전체 메모리 공간이 다 찰 때까지, 즉 (플래 쉬 메모리 용량/ 한블록의 크기) 만큼 쓰기가 반복되어 야 한다는 것이다. 그러나, 일단 전체 저장 용량이 다 차고 나면 그 이후로는 그림 5에서 보여 주듯이, 헤더를 계속 한 블록씩 옮기기 때문에 하나의 무결성 검증값만 집중 갱신하는 현상은 사라짐을 알 수 있다. 그림 5는 전체 용량이 N개의 블록 데이터를 수용할 수 있다고 가 정했을 때, N+1번째 블록 데이터가 추가됨에 따라, BD(1)이 삭제되면서 헤더 블록이 BD(1)에서 BD(2)로 바뀜을 보여준다. 만일, N+2번째 블록이 이어서 추가된 다면 BD(2)가 삭제되고 헤더블록도 BD(2)에서 BD(3) 으로 바뀌게 될 것이다. 헤더블록이 BD(k)로 바뀔 때마 새로이 지정되는 헤더 블록을 위한 무결성 검증 값 IVD(k)도 재계산되어 갱신된다. 두 번째 주목할 내용은, 그림 5에서 BD(N) 블록을 추가할 때, h(n) 해쉬값을 얻기 위해서 h(n-1)이 필요 하다는 것과 헤더 블록 BD(k)의 무결성 검증 값 IVD(k)을 업데이트하기 위해서 h(k)와 h(n-1)이 매번 필요하다는 사실이다. 따라서, 이값들을 내부 레지스터 그림 5 제안된 무결성 보장 방법에서 저장공간이 없는 경우 신규 블록 데이터 (N+1) 추가 방법 Fig. 5 Adding new block data (N+1) when storage space is not available in proposed integrity assurance method 에 저장해 두면 빨리 계산 할 수 있어 무결성 값 생성 속도에 도움이 된다. 이 내용을 그림 5에서 회색 박스로 표시했다. 만일, h(k)과 h(n-1) 값을 저장해 두지 않는 다면, 매번 BD(K)과 BD(N-1)을 해쉬하여 계산하면 되 지만, 블록 데이터의 많은 데이터를 처리하는데 적지 않 은 시간이 소요된다. 이 값들은 필요없을 때 즉각 레지 스터에서 삭제하여 보안 누출에 대비하고 기억장소를 효과적으로 사용하도록 한다. 한편, 블랙박스의 전원을 다시 켤 경우에는, 해쉬값이 임시기억장소에 없기에 헤더블록 해쉬값 h(k)과 마지막 블록 해쉬값 h(n)를 다시 계산해서 레지스터에 넣어두 어야 한다. h(n)은 BD(N)을 해쉬하여 구하고 레지스터 에 보관한다. 그런데, h(k)는 굳이 BD(k)을 다시 해쉬 하여 얻기보다는 h(k)= [D(k) xor h(n)]에 의해서 계산 하는 편이 더 간단하다. 암호화된 IVD(k)을 복호화하여 D(k)를 얻고 D(k)와 이미 계산된 h(n)으로부터 xor 연 산으로 h(k)를 얻을 수 있는 편이 더 비용이 적게된다. 왜냐하면, 암호복호화 연산 자체는 해쉬 연산에 비해 복 잡도가 높지만 복호화 할 IVD(k)의 데이터 크기(32바이
988 정보과학회논문지 제41권 제11호(2014. 11) 트)가 해쉬할 BD(N)의 크기(VGA의 경우 367KB)에 비해 1000배 이상 작기 때문이다. 헤더를 BD(k)에서 BD(k+1)로 바꾸기 위해서는, 기존 헤더의 해쉬값 h(k)과 새로운 헤더가 될 블록 BD(k+1) 의 무결성 검증값 IVD(k+1)가 필요하다. IVD(k+1)을 복호화하여 D(k+1)를 얻고. 이 값과 h(k)로부터 h(k+1) = D(k+1) xor h(k)을 구한다. 이로부터 D(k+1)를 h(k+1) xor BD(N+1)으로 다시 구하고 AES로 암호화 하여 새로운 IVD(k+1)을 구하여야 한다. 이러한 사실을 그림 5에서 확인할 수 있다. 블록 데이터 저장 파일 시스템의 초기 상태 관리는 다음 두가지 중 한가지로 가정한다. (1) 무조건 두 개 이상의 블록 데이터가 체이닝되어 파일 시스템에 저장되어 있는 것으로 가정한다. 이를 구현하 기 위해서는 저장장치 초기화 시에 dummy 블록 데이 터 두 개와 이들의 무결성 검증값 두 개를 그림 4의 처음 블록도처럼 만들어 메모리에 자동으로 저장하면 된다. (2) 처음 삽입되는 블록은 체이닝을 하지 않고 두 번째 삽 입되는 블록부터 체이닝을 한다. 즉, 블록이 하나뿐일 경우에는 아예 그 영상 데이터를 검증하지 않겠다는 뜻 이다. 대개 블록 하나의 길이를 1초 이하로 생각하면, 이정도 짧은 시간은 블랙박스를 처음에 사서 시범 운영 하기 위해 촬영하는 시간 정도에 해당하므로 파일시스 템에 생기는 첫 영상 블록은 무결성 보장이 불필요하다 고 가정해도 큰 무리가 없을 것이다. 4.2 무결성 보장 방안의 분석 이 제안된 방식에 의하면, 임의 블록의 변경, 순서교 체, 삽입, 삭제 및 후위 삭제 공격을 모두 탐지할 수 있 다. 왜냐하면, 모든 블록 무결성 검증값들이 체이닝이 되어 있기에 어느 하나라도 변화되면 그 영향이 바로 이웃에 전달되어 무결성 검증에서 탐지가 되기 때문이 다. 그림 6에서는 임의의 블록 데이터의 값이 변경되었 을 경우 그 영향 범위를 보여주고 있다. 이 그림에서 주 황색(어두운색)으로 표시된 부분이 BD(2)가 수정될 경 우에 값이 달라지는 부분이다. 무결성 검증값 생성 이후 BD(2)를 임의 조작하면 무결성 검증 절차에서 IVD(2) 와 IVD(3)의 계산에 영향을 미치게 되어 이 두 개 무결 성 검증 값이 저장된 값과 불일치하게 될 것이다. 제안된 방법은, 하나의 블록이 잘못되면, 두 개의 블 록에 영향이 미친다. 이는, 달리특정 블록 데이터가 물 리적으로 손상되었을 경우에 잘못된 블록 이후의 모든 블록의 무결성 검증이 불가능해지는 [11]과는 달리, 잘 못된 블록과 그 다음의 두 개 블록의 무결성 검증에만 그 영향이 한정됨을 의미한다. 한편, 임의 블록의 무결 성을 확인하기 위해서 전체의 처음 블록부터 순차적으 로 무결성 검증 값을 생성해야 하는 [11]의 방법과는 달 그림 6 제안된 무결성 보장 방법에서 임의 블록 데이터를 수정할 경우 영향 Fig. 6 The effects of block modification in the proposed integrity assurance method 리, 원하는 블록과 바로 그 앞의 블록만 해싱과 XOR 연산으로 얻은 검증 값을 기저장된 무결성 값을 복화화 하여 값과 비교하면 된다. 갑자기 정전이 될 경우에, 최 악의 경우 현재 처리 중인 블록의 무결성 검증 데이터 값을 저장하지 못할 수 있는데 그 결과 마지막 블록 또 는 처음 블록에만 영향력이 한정된다. 이 경우에, 블록 의 크기를 1초미만으로 설정하면 최악의 경우에도 정전 되기 전 1초미만의 영상의 무결성만 보장할 수 없게 되 어 문제를 최소화할 수 있다. 3장의 문제 정의에 비추어 기능 및 제약조건들의 만족여 부를 평가하면 다음과 같이 제안된 방법은 모든 제약조건 을 만족하고 모든 요구되는 기능을 모두 수용하고 있다. (1) 치환 공격 탐지: BD(i)를 바꿀 수는 있어도 D(i)를 암호 화하는 비밀키를 모르기 때문에 공격자가 해당 무결성 검증 값 IVD(i)를 바꿀 수는 없어 검증 통과 불가함. (2) 삽입 공격 탐지: BD(i)를 새로 삽입하더라도 공격자가 비밀키를 모르기에 해당 IVD(i)를 생성할 수 없어 검증 에 통과 불가함. (3) 일반 삭제 공격 탐지: BD(i)와 IVD(i)를 둘다 삭제할 경우, BD(i+1)의 무결성 검증값 계산시에 이전 블록인 BD(i)를 필요로 하기 때문에 IVD(i+1)가 불일치하게 됨. (4) 후방 삭제 공격 탐지: 최근 추가된 블록의 삭제시, 순환 형 체인 구조로 헤더 블록의 무결성 검증값 생성시 필 요한 블록 값이 없어서 무결성 검증시 헤더 블록의 무 결성 검증값 불일치함. (5) 재배열 공격 탐지: 치환공격과 같은 문제가 됨. 그룹으 로 옮긴다해도 결국 경계면의 인접블록과의 관계에서 치환공격과 같은 유형이 되어 검증 통과 불가.
순환형 데이터 블록 체이닝을 이용한 차량용 블랙박스의 영상 데이터 무결성 보장 기법 989 (6) 저장장치 포화 시 무결성 보장 방안: 헤더 블록 (첫블 록)을 지우고 대신 새로운 블록을 삽입하며, 해더블록 의 다음 블록을 새로운 헤더블록으로 지정함. 새로운 헤더 블록과 추가된 블록을 서로 연결시켜 헤더블록의 무결성 검증 값을 생성하여 모든 블록의 무결성 검증이 가능한 구조를 유지함. (7) 저장장치 오류 저항성: 갑작스럽게 정전이 되어 마지막 블록의 무결성값 또는 헤더블록의 무결성 값이 미처 갱 신이 되지 않더라도 헤더블록과 마지막 블록에 한해서 무결성 검증이 실패함. 블록 크기를 1초 내외로 설정하 는 관례에 비추어 이 정도는 크게 문제 되지 않을 것임. (8) 부인방지: 무결성 보장키가 블랙박스마다 다르고 비밀 키는 제3기관만이 안다고 가정하기 때문에, 특정 키로 암호가 해제되어 무결성이 검증된다면 특정 블랙박스 에서 생성되었음을 부인할 수 없음. 표 1은 제안된 무결성 검증 방법을 기존에 알려진 방 법 [11]과 비교한 내용이다. 제안된 방법은 기존 방법에 비해서 연산양이 더 많다 는 단점이 있으나, 기억장소가 다 찼을 때에도 무결성 보장에 문제가 없다는 점과 일부 영상 데이터가 손상되 어도 나머지 블록의 무결성 검증에 문제가 없다는 장점 이 있다. 5. 차량용 블랙박스에 적용을 고려한 추가 사항 실제 차량용 블랙박스에서 영상을 저장할 때를 고려 하면 다음과 같은 구현이 필요하다. 참고로, 기존의 블 랙박스들은 대개 영상들을 1분짜리로 나누어서 여러 개 의 AVI 파일로 플래시 메모리에 저장된다. (1) 해쉬 함수: SHA256을 채택한다(256비트 출력). (2) 암호화 함수: AES를 사용한다(128비트 암호키). (3) 암호키 관리: 무결성 정보 생성 칩 내에 내장되어 외부 그림 7 AVI 파일단위 무결성 검증 데이터 저장방법 Fig. 7 Additionally proposed integrity assurance method by avi file format 접근이 불가하다고 가정함, 블랙박스 제품 초기화시에 인터넷 등으로 키를 전송받아 저장한 뒤에는 재설정이 불가함. (4) 파일 저장 포맷: AVI 화일 포맷으로 저장한다. 영상 블 록과 무결성 검증값을 같이 한 파일에 저장할 수 있다. 그림 7과 같이 파일간에도 각 파일 마지막 블록과 다음 파일의 첫블록 간에 연동시키고 마지막 파일과 첫 파일 을 순환형으로 체이닝시켜서 파일단위 삽입이나 삭제 혹은 변경이 불가하도록 한다. 이와 같이 하여 AVI 파일은 표준 디코더에서 원활히 영상이 재생되며 무결성 검증이 필요할 때만 별도의 소 프트웨어로(인터넷과 연동하여) 비밀키값을 아는 제 3자 에 의해서 제출된 AVI 파일 내의 영상데이터와 무결성 검증값을 비교하여 데이터 무결성 여부가 검증된다. 블랙박스의 내부에서 무결성 검증 데이터 생성을 위 한 시스템의 구조도는 그림 8과 같다. 6. 실험 결과 블랙박스 실시간 성능을 확인하기 위해 상용 블랙박 스와 같은 시스템을 탑재한 임베디드 보드에서 실행 시 표 1 기존방법과 제시된 방법의 기능 및 성능 비교 Table 1 Comparison of functions and performance between the existing method and our method items [11] our proposed method detectable attacks insertion, deletion, modification, and rearrangement attacks are all detectable non-repudiation supported by encryption with secure key action for storage full overwrite all blocks at once overwrite only one oldest block integrity checking when partial data lost time to check integrity of specific block required operation per a block addition number of writes into flash memory for each block addition impossible to check integrity the lost and the following blocks proportional to the relative position of the record from start point two hashes (block data + hash) two for integrity assurance data (current + previous) and block data still be able to check block data integrity except the lost and the next block irrelevant to block position (constant time) encryption (two hashes), hash (block data), logic operation (two for between hash values) two for integrity assurance data (current + header) and one for a block data data size overehad one hash value per GOP one hash value per GOP
990 정보과학회논문지 제41권 제11호(2014. 11) 그림 8 무결성 데이터 생성을 위한 시스템의 구조도 Fig. 8 System structure chart for creating integrity assurance data 표 2 하나의 GOP 프레임들(30 fps)을 위한 다양한 해상도 에서의 무결성 검증 데이터 생성에 소요되는 우리방 법의 평균 소요 시간(플래쉬 메모리 쓰기 시간 제외) Table 2 Time for generating integrity assurance data for a GOP (@30fps) with various resolution by our method (except flash memory write time) functions 1 GOP(30 frame)의 크기 (Mbytes) SHA256 for a GOP (30 frames) AES for 32Bytes XOR (32 bytes) Total time for 1 GOP VGA (640 480) HD (720 1280) full HD (1080 1920) 0.37 0.97 1.22 62.9ms 163.1ms 205.9ms 0.061ms 0.00048ms 72.1ms 173.5ms 222.9ms 간을 측정한 결과를 제시한다. 실험에 사용된 임베디드 보드에는, 800MHz A8 ARM 프로세서와 2GB의 DRAM 이 탑재되어 있고 리눅스 운영체제를 사용한다. 이 실험 에서 해쉬는 SHA256을 사용하였기 때문에 출력이 256 비트이다. 동영상의 무결성 보장 데이터 생성에 필요한 각 기능별 실행 시간과 통합된 전체 실행시간 측정값을 VGA, HD, fullhd 각 영상별로 표 2에 제시하였다. 표 2 에서의 시간은 1 GOP (30 frame)에 대한 무결성 값을 생성하는데 소요된 시간이다. 각 해상도별로 해쉬값 생 성 시간만 차이가 있고 XOR나 AES의 시간은 모두 32 바이트(512비트)를 사용하기 때문에 동일하다. 이 표에 서의 측정시간은 플래쉬 메모리 접근 시간은 제외한 것 이다. 블록당 저장하는 무결성 데이터가 32바이트이므로 파일 크기 오버헤드가 VGA의 경우에도 0.001%로 매우 작고 한 파일의 모든 블록 데이터의 무결성 검증 값을 모아서 한번에 파일 쓰기를 할 수도 있기 때문에, 무결 성 검증 데이터의 쓰기로 인한 실행 시간 오버헤드는 무시할 수 있다. 이 실험에서 모든 입력 영상은 초당 30프레임을 캡쳐 한다고 가정한다. 이 표의 마지막 행에 제시된 측정값은 30개의 프레임을 위한 무결성 검증값 30개를 생성하는 데 필요한 모든 과정을 포함한 시간이다. 표 2에 의하면 각 해상도별 무결성 검증 데이터 생성에 따르는 실행시간 오버헤드는, VGA@30fps의 경우는 76.4 ms, HD@30fps 의 경우는 181.7 ms, full HD@30fp의 경우에 225.6 ms가 각각 소요된다. 그러나, 영상의 생성과 영상의 무 결성 검증 데이터 생성을 비디오 인코딩과 파이프라인 식으로 진행한다고 가정한다면, Full HD급 영상을 초당 30 프레임으로 생성하는 경우에도 이 표에 제시된 실행 시간으로 충분한 실시간 작동이 가능하다. 7. 결 론 본 논문에서는, 블랙박스 영상 데이터의 무결성 검증 을 위한 새로운 방안을 제시하였다. 제시된 방법은 기존 방법들에 비해서 추가의 계산 시간이 늘어나지만 실시 간 작동에 영향을 주지 않으면서, 영상 블록의 삭제, 삽 입, 변경, 재배열 등을 모두 탐지할 수 있을 뿐만 아니 라, 파일 시스템의 공간이 다 찼을 때에도 일관성 있게 무결성 정보를 제공할 수 있고 일부 영상블록이 손상되 어도 나머지 블록에 대한 무결성 검증을 할 수 있는 등 의 여러 장점이 있다. 제안된 방식을 기존 제품에 적용 하면 국내 차량용 블랙박스 KS 5078 표준에서 요구하 는 무결성 검증 기능을 완전히 구현할 수 있을 것이다. References [1] M. S. Kim, S. G. Cho, C. Y, Jeong, and J. W. Jan, "Security Issues and Trends in Automotive Blackbox," Electronics and Telecommunications Trends, Vol. 27, No. 4, pp. 123-129, 2012. (in Korean) [2] J. H. Seol, "Traffic Accident Video Recording Device (Black-Box) Dissemination and Utilization Plan," Monthly Traffic, No. 184, pp. 13-18, 2013. (in Korean) [3] W. J. Kim and H. H. Kim, "Application of Security Technology Studies Plan for Automotive Black_Box Data," Journal of KIISC(Korea Institute of Information Security & Cryptology), Vol. 24 No. 2, pp. 35-41, 2014. (in Korean) [4] G. J. Yun and D. H. Park, "Security Trends and Development Directions for Convergence among Information and Communication Devices of Car," Journal of KIISC(Korea Institute of Information Security & Cryptology), Vol. 24 No. 2, pp. 21-27, 2014. (in Korean)
순환형 데이터 블록 체이닝을 이용한 차량용 블랙박스의 영상 데이터 무결성 보장 기법 991 [ 5 ] KS-R-5078, "Video Data Recording Systems for Road Vehicle Accidents," Korean Agency for Technology and Standard, 2013. (in Korean) [6] J. I. Kim, J. H. Yu, and J. S. Kim, "A Design of Car Video Black box on Mobile Device," Proc. of Summer Conference of Korea Institute of Information Technology, pp. 364-367, 2009. [7] M. S. Kim and C. Y. Jeong, "An Efficient Data Integrity Scheme for Preventing Falsification of Car Black Box," Proc. of ICT Convergence(ICTC) 2013, pp. 1020-1021, 2013. [8] P. K. Atrey, W.-Q. Yan, E.C. Chang, and M. S. Kankanhalli, "A Hierarchical Signature Scheme for Robust Video Authentication using Secret Sharing," Proc. of the 10th international Multimedia Modelling Conference (MMM04), 2004. [9] T. Izu, M.Takenaka, J. Yajima, T. Yoshioka, "Integrity Assurance for Real-time Video Recording," Proc. of the 6th International Conference on Innovative Mobile and Internet Services in Ubiquitous Computing, pp. 651-655, 2012. [10] D. H. Lee and B. H. Kim, "Black-Box System with Real-time data integrity method," Patent No. KR101072277, 2009/8/31. [11] Y. G. Kim, B. H. Kim, and D. H. Lee, "Real-time Integrity for Vehicle Black Box System," Journal of KIISC(Korea Institute of Information Security & Cryptology), Vol. 19 No. 6, pp. 49-61, 2009. (in Korean) 조 용 준 2008년 2월~한동대학교 전산전자공학부 재학중. 관심분야는 임베디드시스템 설 계, 영상 데이터 무결성 이 강 1990년 2월 서울대학교 컴퓨터공학과 졸 (학사). 1992년 2월 서울대학교 컴퓨터공 학과 졸(석사). 1997년 8월 서울대학교 컴 퓨터공학과 졸(박사). 1997년 9월~1999 년 2월 서울대학교 컴퓨터신기술연구소 특별연구원. 1998년 3월~1999년 2월 인 제대학교 정보통신공학과 전임강사. 1999년 3월~현재 한동 대학교 전산전자공학부 교수. 관심분야는 video/image encryption, error resilient multimedia system, 저전력 임베디드 시스템 설계 김 경 미 1987년 2월 고려대학교 수학교육학과 졸 (학사). 1992년 2월 한국외국어대학교 무 역정보학과 졸(석사). 2007년 2월 경북대 학교 컴퓨터공학과 졸(박사). 1986년 12 월~1996년 9월 한국과학기술원 전자계 산소 기술원. 1997년 2월~현재 한동대 학교 GLS학부 교수. 관심분야는 통신, 센서네트워크, 라우 팅 프로토콜, 정보보호