DOI QR코드

DOI QR Code

Proactive Code Verification Protocol Using Empty Memory Deletion in Wireless Sensor Network

무선 센서 네트워크에서의 메모리 공간 삭제를 이용한 선행 코드-검증 기법

  • Choi, Young-Geun (Information Security Research laboratory, INHA University) ;
  • Kang, Jeon-Il (Information Security Research laboratory, INHA University) ;
  • Lee, Kyung-Hee (Department of Electrical Engineering, The University of Suwon) ;
  • Nyang, Dae-Hun (Information Security Research laboratory, INHA University)
  • 최영근 (인하대학교 정보보호 연구실) ;
  • 강전일 (인하대학교 정보보호 연구실) ;
  • 이경희 (수원대학교 컴퓨터공학과) ;
  • 양대헌 (인하대학교 정보보호 연구실)
  • Published : 2007.08.31

Abstract

The authentication in WSN(Wireless Sensor Network) usually means the entity authentication, but owing to the data centric nature of sensor network, much more importance must be put on the authentication(or attestation) for code of sensor nodes. The naive approach to the attestation is for the verifier to compare the previously known memory contents of the target node with the actual memory contents in the target node, but it has a significant drawback. In this paper, we show what the drawback is and propose a countermeasure. This scheme can verify the whole memory space of the target node and provides extremely low probability of malicious code's concealment without depending on accurate timing information unlike SWATT. We provide two modes of this verification method: BS-to-node and node-to-node. The performance estimation in various environments is shown.

일반적으로 무선센서네트워크에서의 인증은 엔티티의 인증을 의미하나, 센서 네트워크에서는 데이터 집약적 특징에 의해 센서 노드의 코드를 증명하는 것이 더욱 의미 있는 인증기법이라 할 수 있겠다. 가장 기본적인 검증 기법은 검증자(Verifier)가 자신이 기존에 가지고 있던 목표 노드의 메모리 내용을 현재 목표 노드가 가지고 있는 실제 메모리 내용과 비교하여 차이점을 발견할 시, 노드의 감염으로 인식하는 것이다. 본 논문에서 우리는 기존 기법의 약점을 서술하고 대안 기법을 제안할 것이다. 이 기법은 SWATT와 달리 목표 노드의 전체 메모리 영역을 쉽게 검증할 수 있고 정확한 시간 정보에 의지하지 않고서도 악의적 코드가 자신을 은폐시킬 확률을 현저히 떨어뜨린다. 우리는 새로운 방식을 제안하고 여러 환경에서의 성능 평가 결과를 보여 줄 것이다.

Keywords

I  서론

무선 센서 네트워크에서 보안은 가장 중요한 이슈중하나이다. 군사 감시 용도로 쓰이는 무선 센서 네트워크를 가정해보자. 노드가 적에 의해 포획당하여 공격 용도로 쓰이게 된다면 이런 노드들은 적의 침입을 감지해낼 수 없고, 심지어는 아군의 패배를 초래하는 거짓 정보를 보고하게 할 수도 있다. 이러한 센서 노드들의 비정상적 행위를 막기 위해, 의심스러운 노드를 증명하는 방법이 필요하다.

불행히도 노드에 대한 물리적 공격은 어떠한 방법으로도 막을 수 없다. 오직 노드 내부의 수정을 물리적으로 강제하는 하드웨어 모듈만이 포획 노드가 다른 노드에게 피해를 주는 악의적 노드로 변하는 것을 방지할 수 있을 뿐이다. 따라서 지금까지의 연구는 대부분 어떻게 오염된 노드를 발견할 수 있는지에 대해 초점을 두어왔다. 대부분의 이러한 연구에선 오직 오염된 노드가 비정상적 행위를 하고 난 뒤에서야 그 오염된 노드를 발견 할 수 있다. 따라서 노드의 비정상행위 전에 악의적 노드를 찾을 방법은 없었다. 이러한 이유 때문에 WSN 은 악의적 노드에 의한 피해에 취약하였다.

따라서 우리는 악의적 노드가 비정상적 행위를 수행하기 전에 코드의 이상여부를 알아낼 수 있는 사전 탐지 기법이 필요하다. SWATT(SoftWare-based Attestation for embedded device)"'은 이러한 소프트웨어 기반 증명을 위해 고안되었다. SWATT 는 매우 간단하게 적용될 수 있지만 정확한 시간을 기반으로 동작하기 때문에 예상할 수 없는 네트워크 지연에 민감하고 하드웨어 플랫폼에 의존적이다. 이 기법은 후에 Mark Shaneck에 의해 시간 기반의 약점을 개선하여 새롭게 제안되었다. (2)

이 논문에서는 오염된 노드를 탐지하는 완전히 새로운 사전 코드검증 기법을 제안한다. 본 기법은 목표 노드의 전체 메모리 내용을 검증하고 SWATT(1)와는 달리 정확한 시간 정보에 의지하지 않고서도 악의적 코드가 자신을 은폐시킬 확률을 현저히 떨어뜨린다. 이 논문에서는 새로운 방식을 제안하고 여러 환경에서의 기능평가 결과를 보여 줄 것이다.

Ⅱ. 가정, 공격 모델 및 필요사항

2.1. 가정

이 논문에서는 검증자가 목표노드의 메모리 내용의 사본을 가지고 있다고 가정한다. 각각의 엔티티는 서로 간의 안전한 통신 채널을 구축하기위해 키 쌍을 분배한다. 이 키 쌍은 무작위 키 선-분배 기법 등에 의해 설정될 수 있다. 그리고 검증자가 원격으로 실행 가능한 증명 코드가 목표노드의 메모리 안에 탑재되어 있다고 가정한다. 공격자는 포획한 노드의 메모리 접근에 대한 모든 권한을 가지고 있다. 하지만 그 외의 하드웨어 구조에 대한 수정 가능성은 공격자가 외부 자원을 이용할 수 있다는 의미가 됨으로 이 논문에선 논외로 한다. 우리는 프로그램 가능한 플래쉬 메모리는 특별한 목적이 없는 한, 어떠한 빈 공간도 가지고 있지 않는다고 가정한다. 또한 노드는 가상 메모리를 지원하지 않으며 데이터 스토리지에서는 직접적으로 코드를 실행시킬 수 없다고 가정한다.

2.2. 공격모델

검증 기법의 가장 원시적 기법은 검증자가 목표 노드의 실제 메모리 내용과 자신이 알고 있는 메모리 내용을 비교해보는 것이다. 이 기법에서 검증자는 먼저 목표 노드의 증명을 요구하는 메시지를 보낸다. 그러면 목표 노드는 자신의 메모리에 있는 증명코드를 실행한다. 이 증명 코드는 노드의 메모리 내용에 접근하여 그 내용을 검증자에게 전송한다. 마지막으로 검증자는 수신한 내용을 자신이 가지고 있는 복사본과 비교한 후 목표 노드의 감염여부를 결정한다.

그러나 공격자는 다음과 같은 공격기법을 사용함으로서, 포획한 노드 내부에서 악의적으로 수정된 펌웨어 코드가 이러한 원시적인 검증 기법에 의해 발견 되는 것을 쉽게 피할 수 있다. 우선, 공격자는 원래 메모리 내용에 대한 유효한 정보를 가지고 있는 공격코드를 센서 노드의 빈 공간에 심어 놓는다. 그리고선 노드 내의증명 코드■가 실제 메모리 내용에 접근하는 대신에 심어놓은 유효정보에 접근하도록 수정한다. 그러면 증명 코드는 악의적으로 수정된 펌웨어의 정보가 아닌 노드가 공격 받기 이전의 유효한 메모리 정보 값을 전송할 것이다. 결과적으로, 검증자는 목표노드의 감염여부를 정확히 검증해내지 못한다.

Ⅲ. 제 안

이 장에서 우리는 소프트웨어 기반 검증 방법에 대한 새로운 기법을 제안할 것이다. 이 기법의 기본 동작 원리는 검증자의 요청이 있을 때마다 목표노드의 메모리 안에 악의적 코드가 동작할 공간을 남기지 못하도록 만든 후 전체 메모리 내용의 값을 전달하는 것이다. WSN 은 일반적으로 대규모의 센서들과 몇 개의 BS(Base Station)으로 구성되어 있다. BS 가 여러 업무를 동시에 처리할 수 있을 정도의 충분한 자원을 소유하고 있는 반면에 센서 노드는 작은 메모리 크기, 적은 배터리 용량, 좁은 라디오 범위 등 매우 제한된 자원을 가지고 있다. 본 단원에서는 BS가 검증자로서 센서 노드의 정상 동작 여부를 증명할 수 있는 방법을 논의한다.

3.1. 표기법

본 논문에서 다음과 같은 표기를 사용한다.

3.2. 코드 검증 기법

센서 노드는 여러 종류의 메모리를 가지고 있다. 예를 들어 UC Berkeley에 의해 개발된 MICA mote는 4kB의 고정 RAM, 128kB 프로그램 가능한 플래쉬 메모리와 4Mbit의 외부 플래쉬 메모리를 가지고 있다.(3) 대부분의 센서 노드 구조는 MICA mote와 유사하다. 우리는 마이크로 컨트롤러의 SR"M을 族诚로 표시할 것이다. 그 외 族冷는 플래쉬 프로그램 메모리나 외부데이터 저장소를 나타낸다. 보통 오직 한 개의 프로그램 가능한 플래쉬 메모리가 센서노드의 마이크로 콘트롤러안에 내장되고 외부의 데이터 저장소는 EEPROM 이다. 여기서는 외부 데이터 저장소를 이용한 공격은 염두해두지 않는다. 그 이유는 외부 데이터 저장소를 공격목적으로 사용하기에는 접근시간이 너무 길어서 쉽게 발견할 수 있기 때문이다. 센서 노드가 배치된 후에, 증명 코드 y와 펌웨어 코드 從 노드가 동작하는 동안 族溯에 상주하게 된다. 族配는 각각의 데이터 파트 , 를 가지고 있으므로, 하나의 노드가 가지고 있는 총 데이터는 _0= {少}?=i 이다. 여기서 A는 하나의 센서노드가 가지고 있는 모든 메모ㅌ리 개수를 의미한다. [그림 1〕은 이러한 메모리 맵을 나타낸다.

(그림 1) 센서노드의 메모리 내용. M* ee 마이크로 콘트롤러의 RAM을, 1) 은 프로그램 가능한 플래쉬 메모리를 나타낸다.

3.2.1. 요청단계

우리의 검증 메커니즘은 4가지 단계로 구성되어 있다. 검증자의 요청단계와, 목표노드의 연산단계, 응답 단계, 그리고 다시 검증자의 검사단계가 있다. 먼저 목표 노드의 메모리 내용을 검증하기 위한 요청 단계에서, 검증자인 BS는 요청 메시지헤더(Bq)와 BS의 ID(ZDgs), 그리고 m bs와 nonce(n)를 BS와 노드 간의 분배된안전키(%卽讪)로 암호화하여 이 세 가지를 함께 목표노드에게 전송한다. 목표노드가 이들 메시지를 수신하게 되면 노드는 鸟3决2, 也龄)를 복호화하여 丑备와비교함으로써 메시지의 합법성 여부를 판단한다. 이를 통해 공격자가 분배 키 Kbs*血를 알지 못하는 한, 공격자는 BS로 위장할 수 없으므로 특정 노드에 대한 서비스 거부 공격(Denial of Service)을 방지할 수 있다.

BS-enode : Req,IDBS, (n, JDBS)

3.2.2. 연산단계

검증자의 요청 단계에 이어 목표노드의 연산단계에서, 목표노드는 n을 시드로 하여 난수를 생성한다. 그리고 목표노드 내 메모리의 빈 영역은 이렇게 생성된 난수를 이용한 특정 알고리즘의 결과 값인 비트 열로 채워진다. 族配의 빈 공간의 크기인 烤는 증명코드, 펌웨어 코드, 데이터 영역을 제외한 빈 메모리 영역의 크기를 의미한다. 이는 다음처럼 계산할 수 있다.

#(1)

본 단계에서 사용하는 알고리즘은 메모리의 빈 공간을 두 개의 난수 값의 XOR연산으로 채우는 기능을 수행하게 된다. 먼저, 난수는 를 채운다. 그리고 이러한 난수 열이 빈 메모리 공간을 다 채우게 되면 반대 방향으로 동작하면서 기존의 난수가 있던 공간을 새롭게 생성된 난수와의 XOR 연산으로 덮어쓰게 된다. 이 알고리즘에서 사용하는 해쉬 함수의 입력 값은 이전에 채워진 512-bits의 메모리 값을 사용한다.〔그림 2〕는 본 알고리즘의 동작과정 예를 보여준다.

(그림 2) 연산 단계에서 두 난수의 XOR 연산 값으로 메모

그러나 이 알고리즘이 4번째 라운드까지 동작하기 이전에는 해시 입력을 위한 512-bits의 메모리 값이 존재하지 않으므로, 첫 번째 라운드에서의 난수 값은 단지시드 71에서부터 생성되고 두 번째부터 네 번째 라운드까지의 연산은 메모리 값의 빈 부분을 0으로 채운 값을 입력으로 한다. 이 알고리즘을 사용하는 이유는 4.3절에서 다룰 것이다. 지금까지 설명한 증명단계의 알고리즘 Fill_Memory(n) 은 다음과 같다.

(그림 3) Algorithm Fill_Memory( )

3.2.3. 응답단계

그 다음, 목표노드의 응답단계에서 해당 노드는 자신의 메모리 전체의 해쉬값을 응답으로 하여 검증자인 BS 에게 보내게 된다. 이 해쉬값은 胰诚부터 族配까지의 h(MIXED_MEM II Z>)이다. 여기서 MIXED_MEMe VII Cll FJiq을 특정 규칙에 의거하여 읽은 메모리 값의 열이다. MIXED_MEM으로 표현한 이런 혼합화는 공격자가 포획한 다른 노드를 이용하는 등의 방법으로 吗전체의 해쉬 값을 미리 사본으로 저장해 놓는 것을 방지한다.[그림 4〕는 위 설명의 간단한 예이다.

그림 4) MIXED_MEM(SHA-1 사용)

node-eBS-. EeJjieMIXEDMEMe D,D)

BS는 노드가 임시적으로 보관하고 있는 데이터 D를 모르기 때문에, 일반적으로 노드는 증명 단계 이전에 BS 에게 〃를 보내야 한다. 그리고 목표 노드의 메모리안의 矿와。를 제외한 모든 공간을 난수로 채운 뒤, 메모리의 해쉬값으로 응답한다. 응답 단계가 끝나면 BS는 자신이 보관하고 있던。를 본래의 자리인 노드에 게로 되돌려줘야 한다. 하지만 이 방식은 두 가지 이유로 부담이 되는데, 첫 번째 이유는 노드의 제한된 배터리 용량에 기인한다. 노드는 데이터 處 송신, 수신해야하기때문에 에너지를 두 번 소비하게 된다. 결과적으로 노드는 검증을 위하여 자신이 원래 가지고 있던。를 지우고, 검증이 끝난 후엔 그것을 다시 얻기 위하여 불필요한 에너지 낭비를 하게 되는 것이다. 다른 이유는 불필요한 증명 시간의 증가이다.

3.2.4. 검사단계

이 논문이 제안하는 기법 에서 사실상 노드는 Q를 다시 수신 받아야할 필요가 없다. 응답 단계에서 노드는 단지。를 해쉬값과 함께 BS에게 보내기만 하면 되는 것이다. 그러면 BS는 이미 자신이 알고 있는 목표 노드의 X C와 함께。도 알게 된다. 참고로 노드가 를 단지 임시로 사용하기 때문에 굳이 D를 저장할 필요가 없을 경우엔 노드는 단지 해쉬값 Ek (HMIXED MEM eBS.nde —))만 BS에게 전송하면 된다. 마지막으로 검증자의 검증 단계에서 BS는 목표노드로부터 수신한 해쉬값과 자신이 가지고 있는 목표노드의 메모리정보로 계산한 해쉬값을 비교한다. 만일 이 둘이 일치하지 않다면 BS는 목표 노드가 공격자에 의해 오염되었거나 불법적으로 수정되었다고 최종적으로 판단하게 되고, 다른 노드들에게 이를 공지할 것이다.

〔그림 5〕는 본 기법의 연산단계 전후 상황을 간략하게 보여준다. 만일 목표노드가 오염되지 않았다면 노드는 전체 메모리 이미지를 해쉬한 유효한 값을 전송할 것이며, 목표노드가 오염되었고 공격자가 유효한 값을 응답하기 위한 공격코드를 심어놓았더라도 난수가 채워짐으로 인하여 공격코드를 덮어쓰게 된다. 결과적으로 오염된 노드는 검증자인 BS에게 유효한 값을 전송할 방법이 사라지게 된다.〔그림 6〕은 지금까지 설명한 기법의 4단계에 대한 전체적인 그림이다.

〔그림 5) FilLMemoryO 알고리즘 전후의 메모리 내용 변화

〔그림 6) 검증기법의 4단계에 대한 전체적인 설명

Ⅳ. 보안 고려사항

4.1. 시간에 민감하지 않은 검증

WSN에서 SWATT는 악의적 코드를 검출해내는데 있어 연산 시간에 대한 면밀한 측정을 필요로 한다. 만약 노드가 더 강력한 마이크로프로세서를 사용한다면 연산 시간의 차이를 증폭시키기 위하여 검증의 더 많은 반복 실행을 필요로 한다. 또한 이것은 노드가 많은 에너지를 소비하게 될 것이라는 것을 의미한다. 또 SWATT 는 예상할 수 없는 시간 지연을 고려하기 힘들다. 만약 네트워크 지연시간 등을 고려하게 된다면, 공격자는 검증자가 공격에 필요한 연산 시간의 증가를 네트워크 지연시간으로 인식하게 만들 수 있다. 따라서 WSN에서의 SWATT는 매우 신중히 사용되어야한다.

반면에, 본 코드-검증 기법은 이러한 연산시간의 정확한 측정을 필요로 하지 않는다. 대신에 정확한 응답을 위한 메모리 공간을 필요로 하는데, 만약 센서 노드가 많은 메모리 공간을 가지고 있다면 빈 메모리 공간을 채우기 위한 시간을 필요로 하게 된다. 우리는 메모리의 크기에 비례하는 검증연산시간과 네트워크 지연시간을 합한 적절한 응답한계시간을 둠으로써 이후에 설명할 여러 가지 공격을 예방할 수 있다. 또한 본 기법에서 네트워크의 지연시간이 목표노드의 감염여부를 결정하는데 끼치는 영향은 미비하기 때문에 시간에 기반하지 않는 유연성을 제공한다.

4.2. 재전송 공격 방어

공격자에 의하여 오염된 노드는 재전송 공격을 할 수 있다. 이 노드는 이전에 다른 노드의 검증절차에 쓰였던 유효한 메시지를 도청할 수 있다. 그러나 본 기법은 기본적으로 challenge-and-response 방식이므로 설령 공격자가 다른 노드와 검증자간의 세션 키를 획득하게 되더라도 nonce의 특성상 재전송 공격은 불7}능하다.

challenge-and-response 방식에서 만약 공격자가 두엔티티간의 비밀을 알고 있다면 그는 이러한 비밀을 계산한 응답 메시지를 전송함으로써 쉽게 공격을 성공시킬 수 있다. 본 기법에서 비밀은 코드 그 자체이다. 사실상 코드는 공격자에게 쉽게 노출될 수 있기 때문에 본 프로토콜에 대한 공격은 쉬워 보인다. 그러나 우리의 기법에서 공격자는 악의적 코드와 정상 코드 모두를 유지할 메모리 공간을 가질 수 없다. 그러므로 오염된 노드에서 nonce를 사용한 유효한 응답을 도줄해내는 것은 불가능하다.

4.3. 필요한 난수 블록을 직접 계산하는 공격과 그 방어

다른 공격 방법은 증명, 응답단계에서 악의적 코드가해쉬값을 계산하는데, 필요한 시점에서 랜덤 시퀀스의 블록을 만들어내는 것이다. n을 빈 메모리 블록의 개수라고 본다면, 如번째 블록은 &QR啊独] X2-n 이기 때문에 시드로부터 [区/&。] x2-n번의 계산 값으로 볼 수 있다. 여기서 岛。는 해쉬 함수의 출력 값의 크기이고 丨 丨 는 특정 메모리의 크기를 나타낸다.(해쉬 함수가 SHA-1 이라면 岛。는 160이 되고, MD5라면 128이 된다.) 빈 메모리 영역은 Fill_Memory(n)가 동작하는 동안 난수 값을 두 번 채우게 됨을 상기하라. 유사하게 S-1)번째 블록 또한 생성할 수 있다.

만약 우리가 총 메모리의 길이가 공격코드에 비교하여 월등히 크다고 가정한다면, 공격 코드는 자신이 상주한 메모리 위치에 정상 코드■가 검증받을 때와 비교하여 최소한 20배(SHA-1)에서 16배(MD5)의 해쉬 연산을 수행하게 된다. 그러나 총 메모리 길이 대 공격 코드의 길이의 비율은 우리의 가정보다 크다. 그 때문에 우리는 보다 많은 시간이 소요됨을 기대할 수 있다.

사실 적절한 캐시를 이용하여 해쉬 체인 계산 시간을 줄일 수 있는 거의 최적화된 방법이 존재한다(4). 본 논문에서 우리는 두 개의 512-bit길이 캐시, 512-bit의 시드 저장소 등을 사용하는 400byte(SHA-l)나 320byte (MD5) 길이의 공격코드가 이와 같은 최적화 된 방법을 사용했을 때에도 여전히 효과적임을 보여줄 것이다.

V. 증명기법과 공격모델의 분석

5.1. 증명메커니즘의 성능분석

본 기법에서 우리는 총 실행시간 7를 다음과 같이 계산할 수 있다.

(표 1) 센서노드의 하드웨어 플랫폼

#(2)

는 난수 방생에 소요되는 시간이고 0는 族財의접근시간이다. 현재 대부분의 종류의 센서노드는 AfemeAfemeAfem3 만을 사용하고 있는데 A* fe 은 SRAM, 族%2는 프로그램 가능한 플래쉬 메모리, 族*는 외부 EEPROM 이다.

만약 우리가 앞서 가정한바와 같이 관리자가 이미 플래쉬 메모리의 빈 공간을 남겨두지 않았다면 EEPROM 의 쓰기시간은 매우 느리기 때문에 본 기법을 이용할 때 오직 SRAM 만을 랜덤 값으로 채우면 될 것이다. 몇몇 종류의 센서노드에서는 외부 EEPROM의 크기가 몇메가비트이다. 그리고 이러한 EEPROM-fr 채우려면 수천 초가 걸릴 것이다.(예를 들어 EEPROM의 사이즈가 4Mbit이고 쓰기시간이 1비트 당 1ms가 걸릴 경우, 전체 쓰기 시간은 1시간 8분 16초가 소요된다.) 그에 반해 SRAM의 쓰기시간은 무시해도 좋을 만큼 매우 빠르다. 위에서 언급한 바와 같이, 본 기법의 실행시간은 오로지 해쉬 연산의 횟수로 계산할 수 있으므로 식2를 다음과 같이 다시 쓸 수 있다.

#(3)

를 빈 메모리 공간을 채울 때의 해쉬 라운드 수로 보고 d를 한 라운드의 실행 시간으로 보자. 그렇다면 Tt X, 电은 U$ 对로 다시 쓸 수 있다. 또한 %는 다음의 식으로 계산할 수 있다.

#(4)

q■을 응답 단계에서의 해쉬 라운드의 수로 보고

#(5)

岛.는 해쉬 함수의한 라운드에서의 입력 값 크기이다. (보통 明는 512이다. +1은 해쉬 함수에서 초기 패딩 연산이 있기 때문에 추가한다.) 따라서 缶*도 Ur x<5 로 표현할 수 있다. 최종적으로 T는 다음과 같다.

#(6)

ATmegal28에서 라운드의 실행시간 6는 SHA-1 에서 3636 貽, MD5에서 1473 Us임을 Alexander Dean 의 논문 내 실험결과에서 언급하였다⑼. 각각의 MIPS 를 비교해봄으로써 ATmegal28의 값으로 ATmegal63과 MSP430F1611의 6를 추산하였다.

(표 2) 라운드 시간과 필요한 해쉬 라운드 수(*는 추산 값이다.)

〔표 3〕은 각각의 마이크로프로세서에서의 실행 시간을 보여주고 있다. 이 표에서 나타나다시피 실행 시간은 마이크로프로세서에 따라 약1초부터 10초에 이르기까지 큰 차이를 보이고 있다. 따라서 노드로부터의 응답 대기시간을 설정할 시, 네트워크 지연시간과 더불어 이러한 추정 실행시간을 충분히 반영하여야 할 것이다.

〔표 3) 해쉬 연산에 필요한 시간

5.2. 공격 모델의 성능분석

이제 우리는 4.3 단원의 최적화된 공격모델에 대한 분석을 할 것이다. 공격자는 응답단계에서 해쉬 함수가 필요로 할 때, 난수 값으로 구성된 블록 값을 생성해야 함을 상기하라. 공격자가 자신의 코드를 숨기기 위해 수행해야 할 총 연산시간은 다음과 같다.

#(7)

0는 공격자가 유효한 응답 값을 생성하기 위해 필요한 총 해쉬 라운드의 수이다. 우리는 본 공격 코드 의총 길이를 20-블록으로 가정하였다.〔표 4〕는 공격 모델의 총 실행시간의 근사치이다.

(표 4] 공격코드가 해쉬 연산에 필요한 시간

〔그림 6〕는 정상적 검증기법의 총 연산시간과 공격 코드의 총 연산시간의 격차를 보여준다. 이 그림에서 공격 코드의 시간은 정상의 그것에 최소한 두 배를 상회한다는 것을 알 수 있다. 이것은 검증자가 네트워크 트래픽 등의 예상치 못한 시간 지연에도 불구하고 정상 노드와 악의적 노드를 구분하기에 충분한 시간차를 얻을 수 있음을 의미한다.

(그림 7) 정상검증기법의 총 연산시간과 공격코드의 총 연산 시간의 비교. 공격코드의 연산시간은 정상검증기법의 연산시간에 최소 2배이다.

Ⅵ. 결론 및 향후연구

이 논문에서 우리는 새로운 코드-증명 기법을 제안하였다. 이 기법은 매우 간단한 방식으로 동작하나 정확한 시간 정보에 의존하지 않고서도 센서노드 내의 악의적 코드를 발견해내는데 있어 효과적이다. 이 기법의 특성상 증명자와 목표노드간의 시도-응답 방식을 노드와 노드가 서로 증명자와 목표노드의 역할을 수행하는 방식으로 쉽게 변환할 수 있다. 우리는 이러한 노드-대-노드증명기법을 연구하고 있으며, 특히 노드-대-노드 증명기법은 BS의 중계 없이 각각의 노드가 연계하여 포획된 노드를 네트워크 내에서 제외시키는 기능을 수행하도록 확장할 수 있다. 본 기법을 노드-대-노드 기법까지 확장할 경우 BS가 없는 환경에서도 공격자에 의해 악의적으로 수정되었다고 의심되는 노드를 선행 검증하고 네트워크에 피해를 주는 행동을 하기 전에 적절히 제거할 수 있을 것이다. 또한 본 기법의 적절한 수정을 통하여 특정 그룹 내 노드들의 코드를 증명하는 그룹 코드-증명 기법을 고안할 수 있을 것이다.

* 본 연구는 한국과학재단 특정기초연구(R01-2006-000-10957-0)지원으로 수행되었음.

References

  1. A. Seshadri, A. Perrig, L. van Doorn, and P. Khosla 'SWATT:SoftWare-based ATTestation for Embedded Devices.' In Proceedings of the IEEE Symposium on Security and Privacy, May 2004
  2. M. Shaneck, K. Mahadevan, V. Kher, and Y. Kim 'Remote Software-Based Attestation for Wireless Sensors.' In ESAS 2005, LNCS 3813, pp. 27-41, 2005
  3. Jason L. Hill, Dacid E. Culler 'Mica: A Wireless Platform for Deeply Embedded Networks.' In Nov-Dec 2002, IEEE MICRO
  4. Don Coppersmith and Markus Jakobsson. 'Almost Optimal Hash Sequence Traversal.' In Proceedings of the Fifth Conference on Financial Cryptography (FC '02), February 2002
  5. Atmel 8-bit AVR Microcontroller with 16K Bytes In-System Programmable Flash. ATmega163 ATmega163L Summary Rev. 1142CS-09/01
  6. Atmel 8-bit AVR Microcontroller with 128K Bytes In-System Programmable Flash. ATmega128 ATmega128L Rev. 2467N.AVR. 03/06
  7. Telos Ultra low power IEEE 802.15.4 compliant wireless sensor module. PRELIMINARY Datasheet( 12/5/2004)
  8. Atmel 4-megabit 2.5-volt or 2.7-volt DataFlash. AT45DB041B 3443C-DFLSH-5/05
  9. P. Ganesan, R. Venugopalan, P. Peddabachagari, A. Dean, F. Mueller, M. Sichitiu 'Analyzing and Modeling Encryption Overhead for Sensor Network Nodes.' In WSNA'03, September 19, 2003, San Diego, California, USA. ACM Press