USN환경에서 2단계 사용자 인증을 이용한 침입 방지 방안

Intrusion Prevention with Two-level User Authentication in Ubiquitous Sensor Networks

  • cc icon
  • ABSTRACT

    본 논문에서는 이기종 무선 센서들이 포함된 USN 환경에 적합한 보안성과 확장성을 갖춘 사용자 인증 방식을 갖는 침입 방지 방안을 제안한다. 본 연구에서 제안하는 사용자 인증 방식은 공용키 암호 방식과 비밀키 암호 방식을 모두 사용하고, 두 방법의 장점들을 활용하는 인증방식이다. 본 논문에서는 제안한 방식이 기존의 비밀 키 암호 기반 방식에 비해 보안성과 확장성이 뛰어나고, 전력 요구량은 더 적으며, 기존의 공용 키 암호 기반 방법들에 비해 에너지 효율이 더 높은 장점을 갖는 것을 시뮬레이션 결과로 보여준다.


    USN heterogeneous wireless sensors embedded in the environment with appropriate security and scalability with user authentication method is proposed intrusion prevention. In this study, the proposed user authentication and secret key cryptography, public key cryptography is used for both, to take advantage of the strengths of the two methods is authentication. In this paper, the proposed scheme the secret key of the existing security than password-based system performance, highly scalable, power demand is less, and the public-key cryptography based on the existing methods, a higher energy efficiency compared to the benefits that the simulation results with shown as.

  • KEYWORD

    유비쿼터스 센서 네트워크 , 침입 방지 , 사용자 인증

  • I. 서 론

    일반적으로 네트워크 상에서의 보안은 크게 침입방지와 침입 탐지의 2단계를 구분된다. 침입 방지는 네트워크 보안의 최일선에 있으며, 인증, 권한부여, 접근제어 등이 방식이 있다. 외부와 연결된 네트워크의 경우, 외부로부터의 침입은 불가피하다. 외부 침입자가 침입 방지 방식을 무력화시킨 후, 네트워크에 침입한다면 침입 탐지를 통해 외부 침입자의 찾아내야 한다. 본 논문에서는 USN 환경에서 침입 방지 방안을 기술한다.

    침입 방지에 가장 많이 사용되는 방법 중 하나는 사용자 인증(User Authentication)이다. 사용자가 자신을 증명하는 자료를 충분히 제시하지 못하면, 네트워크에 접속하지 못하게 막는 방법이다. 사용자 인증을 기반으로 네트워크의 침입을 방지하려면, 사용자 인증 방식을 네트워크 환경에 적합하게 설계하고, 전체 네트워크 차원에서의 보안 취약 지점들을 제거해야 한다. 적법한 사용자들에게 민감하고 소중한 기밀 정보를 전송하는 네트워크들에서는 사용자 인증이 절대적으로 필요하다. 예를 들면, 군용 감시 응용 분야에서 적군 차량의 좌표 정보, 의료 응용 분야에서 환자의 의료 통계 정보가 여기에 해당한다.

    사용자 인증을 응용하는 좋은 예 중 하나가 전술적 USN이다. USN을 전시 상황에 배치해서 전장의 적군에 대한 전술적 정보를 수집하는 경우가 있다. 이 경우, 근접(proximity) 센서 개념을 이용한다. 근접 센서들이 미리 설정된 시계 내에 들어온 차량이나 병사를 발견하고 경보가 작동된다. 이와 같이 적군의 차량이나 병사의 위치를 파악하는 것은 전시에 아주 중요하며, 우군끼리 전술적 우위를 평가할 때 사용할 수 있다. 우군의 차량이나 병사를 탐지하면 근접 센서 내의 경보가 작동하지 않는다. 사용자 인증은 이러한 환경에서는 반드시 제공되어야 한다.

    그렇지만, 일반적으로 USN은 다음과 같은 구조적인 문제점을 갖고 있다:

    • 계산 자원과 에너지 자원의 심각한 제약 : 전원(에너지) 제한, 제한된 메모리 크기. • 임시방편적 운용 환경 : 구조화된 네트워크가 없음(네트워크 운용 전용 라우터나 스위치가 없음), 전송대역폭이 협소.

    따라서, 전통적인 네트워크들에서 쓰이는 보안 기법들을 그대로 USN 환경에 적용하는 것은 불가능하지만, 전통적인 네트워크들과 사용자 인증을 연계한 연구는 많이 진행되고 있다. 그러나, USN이 갖는 특이성 때문에, 그러한 과거의 연구들에서 제안한 접근법들을 USN 환경에 적용하는 것은 어려운 점이 있다.

    USN에서 사용자 인증은 매우 중요한 보안 방식이다. 특히, 제한된 전력 자원을 절약하기 위해서는 불법 사용자들의 네트워크 접근을 방지해야 한다. 만일 악의적인 사용자들이 UDP Flooding 공격을 통해 네트워크 상에서 데이터 트래픽을 과다하게 발생시킨다면, 센서 노드의 전력 소모 속도가 빨라지게 된다. 또한, USN 환경에서는 악의적인 사용자들이 데이터를 네트워크에 쉽게 삽입할 수 있기 때문에, 특정 데이터를 수신하는 센서 노드에서는 해당 데이터를 의사결정에 사용하기 위해 데이터의 출처가 적절한 지 확인해야 할 필요가 있다. 따라서, 적법한 노드들은 불법 노드로부터 수신되는 데이터를 탐지해서 거부할 수 있어야 한다.

    본 논문에서 제안하는 사용자 인증 방식은 외부로부터의 불법 침입을 방지하기 위한 방법으로서 USN 사용자들의 신뢰성을 보장해 준다. 논문의 내용은 다음과 같다. 2장에서는 USN 환경에서의 사용자 인증에 관련된 연구를 소개하고, 본 연구의 동기와 목표를 제시한다. 3장에서는 본 연구에서 제안하는 2계층 사용자 인증(TLUA, Two-Level User Authentication) 방식을 소개한다. 4장에서는 TLUA 방식의 보안성을 분석한다. 5장에서는 TLUA 방식의 성능을 평가하고 분석한다. 마지막으로, 6장에서는 결론과 향후 연구 방향을 제시한다.

    II. 관련 연구

    최근, USN 기반의 사용자 인증 방식이 다수 제안되었다 : 연구[1] (WZCW 방식)은 USN 환경에서 동종(homogeneous)의 센서 노드 기반 동적 사용자 인증 방식을 제안했으며, 추후 이 연구를 개선한 연구[2] (TJY 방식)가 수행되었다. 연구[2]에서는 제안된 TJY 방식의 장점을 다음과 같이 기술하고 있다 : 재전송(replay) 공격과 위조(forgery) 공격에 대한 저항성, 사용자의 패스워드 누출 위험 감소, 패스워드 변경가능 기능, 효율성 향상. 그렇지만, 두 방법 모두 USN 환경에서 사용자 인증을 위해 비밀키를 사용하지만, 이 방식은 센서 노드와 사용자 수가 많을 경우에 확장성을 발휘하지 못하는 단점이 있다.

    연구[3]에서 제시한 방식(BGR)에서는 공개키 기반의 사용자 인증 방식을 사용한다. 그러나, 이 방식은 동종(homogenous)의 센서 노드에서 공개키 연산이 수행되기 때문에 실용적인 측면에서 단점이 있다. 즉, 일반적인 센서 노드에서 공개키 기반 인증 연산을 위해 많이 시간이 소요되며, 전력 사용이 증가하여 센서 노드의 배터리 소모 속도가 매우 증가하게 된다[4].

    연구[5]에서는 이종(heterogeneous) 센서 노드를 기반으로 TTUA라 불리는 사용자 인증 방식을 사용하였다. 연구[5]에서는, 클러스터 헤더(Cluster Header)를 네트워크 백본으로 이용한다. 즉, 센서 노드에서 데이터를 센싱하고, 데이터 수집을 거친 뒤 클러스터 헤더를 경유하여 요청한 사용자들에게 전송된다. 승인을 위해, 사용자와 클러스터 헤더 사이에서 비밀키가 발급된다. 그러나, 센서 노드의 메모리 한계 때문에 다수의 센서노드와 사용자들을 감당할 수 있도록 비밀키를 확장하는 것이 실질적으로 불가능하다. 또한, 비밀키 방식에서는 네트워크에서 기존 사용자들을 배제하고 신규 사용자들을 네트워크에 포함시키기 위해, 키 취소(revocation)와 키 재배포를 과정이 수행되는데 이 과정에서 상당한 트래픽 부담이 발생한다.

    앞서 언급한 방법들에서는 공개키 방식의 사용자 인증(BGR) 이나 비밀키 방식의 사용자 인증 (WZCW, TJY, TTUA)을 이용한다. 확장성과 키 관리 면에서는 공개키 방식이 좋지만, 일반 센서 노드에 적용하는 것은 자원의 제약으로 인하여 적합하지 않다. 처리 전력요구량이 매우 크고 에너지 효율은 떨어지기 때문이다. 반대로, 비밀키 방식은 처리 전력 요구량이 낮고 에너지 효율은 더 높지만, 메모리 제약으로 인하여 확장성이 부족하고, 복잡한 키 사전 배포 과정이 필요하며, 키 취소와 키 재배포(re-distribution) 과정을 거쳐야 하는 단점이 있다.

    WZCW, TJY, BGR 방식은 동종(homogenous)의 센서 노드로 구성된 네트워크를 이용한다. 이런 구조에서는 네트워크를 구성하는 센서 노드 유형을 한가지 형태로 제한하고 있다. 그렇지만, 요즘 우수한 성능을 갖춘 센서 노드들이 출시되기 때문에, 이종(heterogeneous)의 센서 노드 구성 방식이 적용될 수 있다. 이종 센서 노드 유형은 클러스터 헤더와 센서 노드, 두 가지로 구분될 수 있다. TTUA 방식[5]에서는 이종 센서 노드 구조를 채택하였고, 처리 성능이 좋은 클러스터 헤더를 활용하는 방식 때문에, WZCW, TJY, BGR 방식에 비해 좋은 결과를 보여준다. 그러나, TTUA 방식은 WZCW, TJY 방식과 같이 비밀키를 사용한다. 따라서, TTUA는 수천개의 노드와 수천명의 사용자들을 수용할 수 있는 확장성이 부족하고, 비밀키를 저장하기 위한 메모리가 많이 소비된다. 또한, 새로운 센서 노드와 신규 사용자를 추가하기 위해서는 키 배포 과정에서 많은 오버헤드가 요구된다.

    본 논문에서는 TLUA라 불리는 보안성과 확장성을 갖춘 새로운 사용자 인증 방식을 제안한다. TLUA는 기존에 제안된 WZCW, TTUA, TJY, BGR 방식들의 현재 문제점을 개선하기 위해, 2-계층 이종 네트워크 구조를 사용한다. 제안된 방식에서는 사용자가 센서 노드의 클러스터 헤더(Cluster Head)를 통해서 해당 센서 노드와 통신을 수행하며, 사용자 인증을 위해 클러스터 헤더와 사용자들 간에는 공개키를 사용하고 클러스터 헤더와 센서 노드 사이에는 비밀키를 사용한다.

    본 논문에서는 제안된 TLUA 방식을 평가하고, 기존의 TTUA, TJY1, BGR 방식들과 성능을 비교 분석하기 위해 다음과 같은 항목을 사용하였다.

    - 성능 평가 요소 • 메모리 저장공간 필요량• 확장성• 통신 비용 (시간과 에너지 측면)• 연산 비용- 에너지 소비와 전체 지연 시간(total delays)에 대한 시뮬레이션.

    III. TLUA(Two-Level User Authentication) 방식

    센서 노드에서 사용되는 공개키 알고리즘의 경우, RSA보다 ECC(Elliptic Curve Cryptography)가 연산 시간 및 전송 데이터 트래픽 측면에서 유리하다[4]. 본 논문에서도 사용자와 클러스터 헤더 사이에 ECC 알고리즘을 기반으로 디지털 서명을 생성하고 검증을 수행한다. 또한, ECDH(Elliptic Curve Diffie Hellman) 키 교환 알고리즘을 사용하여 클러스터 헤더와 센서 노드 간에 비밀키를 교환한다.

       3.1. 시스템 모델

    본 논문에서 제안한 TLUA 방식에서 USN을 구성하는 요소는 클러스터 헤더와 센서 노드이다. 이 구성 요소들은 이종 네트워크 구조를 대표하는 요소들로서, 클러스터 헤더는 처리 성능이 높고, 전원 능력이 좋기 때문에, iPAQ, PDA와 유사하다. 센서 노드는 자원의 제약으로 인하여 성능이 부족하고 전원은 제한적이며, MICA-2 motes와 비슷하다. 클러스터 헤더는 센서 노드로 통하는 신뢰받는 게이트웨이로 간주된다. 클러스터 헤더는 센서 노드들에 비해서 전력 공급 상태가 더 양호하고, 전력이 많이 필요한 공개키 알고리즘을 수행할 수 있기 때문에, TLUA 방식은 클러스터 헤더의 높은 처리 성능과 전력을 활용해서 센서 노드들이 부담하는 부하를 줄여준다.

    사용자와 클러스터 헤더는 공개키 기반(ECC) 사용자 인증을 수행한다. 사용자는 클러스터 헤더에 접근 인증을 받은 후, 해당 클러스터 헤더를 통해서 센서 노드에 접근할 수 있다. 일반 센서 노드의 자원 제약으로 인하여, 클러스터 헤더와 센서 노드 사이에는 비밀키 방식의 사용자 인증이 수행된다[6].

    그림 1에서 보듯이, 베이스 스테이션(BS, Base Station)은 중앙 통제 지점으로서, 충분한 자원을 갖고 있는 신뢰성 있는 키 분배 센터로 사용된다. 센서 노드들이 USN 환경에 배치된 후, 센서 노드들은 클러스터라는 그룹을 형성한다. 각각의 클러스터마다, 강력한 하나의 노드(예를 들면. PDA)를 클러스터 헤더로 지정한다. 클러스터 헤더는 센서 노드보다 전송 능력이 좋기 때문에, 무선 전송 범위도 훨씬 더 넓다. 클러스터 헤더는 상호 통신이 가능하며, BS과 통신이 가능하다. 또한, 클러스터 헤더는 키 재료(keying materials)들을 보호하기 위해서, 부정 조작 방지(tamper-resistant) 장치를 갖출 수 있다. 일반적으로, 이종 USN안에 있는 클러스터 헤더의 수(예를 들면, 센서 1000개에 약 20-30개의 클러스터 헤더)는 비교적 적으며, 부정 조작 방지 장치의 비용도 크지 않다[7]. 사용자들은 노트북과 같은 휴대용 컴퓨터 장비를 갖추고 있기 때문에, 센서 노드에 비해서 전력 제약이 없다. 사용자들은 센서 노드들과 상호작용하면서 질의 및 검색을 수행한다. 감지한 정보를 처리한 후, 센서 노드는 해당 데이터를 사용자에게 보내거나 향후 사용자 질의에 대비하여 저장할 수 있다.

       3.2. 키 교환 및 분배

    본 논문의 TLUA 방식에서는 BS가 네트워크의 인증기관(certification authority) 역할을 담당한다. ECC 알고리즘을 이용해서 암호화 및 복호화를 수행하고, ECDSA(Elliptic Curve Digital Signature Algorithm)을 이용해서 디지털 서명을 생성하고 검증한다. ECDH 키 교환 프로토콜을 이용해서 클러스터 헤더(그림 2의 A)와 센서 노드 사이에 키(KA,s)를 교환하고, 메시지 인증코드(MAC, Message Authentication Code)를 생성하기 위해 사용한다. 우선, BS 에서는 BS, 클러스터 헤더, 사용자들이 ECC와 ECDSA 연산을 위해 사용될 타원 곡선 매개변수(elliptic curve parameters), 그리고 클러스터 헤더와 센서 노드들이 ECDH 연산을 위해 사용할 타원곡선 매개변수들을 생성한다. 이 매개변수들은 베이스 포인트 P, 개인키 pri_keyBS, 해당 공용키 pub_keyBS=pri_keyBS × P (여기서 × 는 타원 곡선 점 곱셈(point multiplication)이다) 들이 있다. 또한, BS는 각 센서 노드의 개인-공용 키 쌍들 (pri_keys, pub_keys = pri_keys × P)과 각 클러스터 헤더의 개인-공용 키 쌍들 (pri_keyCH,vpub_keyCH = pri_keyCH × P)도 생성한다. 센서마다 센서의 개인-공용 키 쌍과 클러스터 헤더의 공용 키로 미리 적재된다. 각 클러스터 헤더는 클러스터 헤더용 개인-공용 키 쌍과 센서 노드들의 공용 키들로 미리 적재된다.

    본 논문에서 제안한 방식에서는, 클러스터 헤더와 센서 노드들 사이에서 양측이 공유하는 비밀 키에 대해 쌍방이 합의하도록 ECDH 키 교환 프로토콜을 적용한다[8]. 또한, 전력 소비를 줄이기 위해, ECDH 프로토콜에 필요한 모든 공개 키 재료들을 센서 노드들과 클러스터 헤더 간에 교환하고 나서 배치한다. 따라서, 공개 키 재료 교환을 위한 더 이상의 통신은 필요없게 된다. 배치 후에는, 각각의 센서 노드마다 클러스터 헤더(그림 2의 A)와 공유하는 비밀 키(KA,s)를 인증을 위해 다음과 같이 계산한다:

    s는 타원점(elliptic point) Rs을 계산한다: Rs = (xs,ys)=pri_keys × pub_keyA

    A 는 또 다른 타원 곡선점 RA도 계산한다: RA = (xA,yA)=pri_keyA × pub_keys pri_keys × pub_keyA =pri_keys × pri_keyA ×P = pri_keyA ×pri_keys × P = pri_keyA ×pub_keys

    Rs = RA,따라서 xs =xA. 결과적으로 s와 A 사이에 공유하는 비밀키로 KA,s = xs를 지정한다.

    본 연구에서는 BS와 클러스터 헤더 사이에서 키 분배를 수행할 때 모든 클러스터 헤더가 BS의 공개키, 즉 pub_keyBS를 갖는다고 가정한다.

       3.3. 인증(Authentication)

    TLUA는 등록, 인증, 패스워드 변경 등 3가지 과정이 포함된다. 이 3 단계 과정에서 수행되는 메시지가 그림 2에 보여진다.

       3.3.1. 사용자 등록(User registration)

    사용자가 BS에 USN 등록 요청을 보내면서, 사용자의 ID를 같이 보낸다. 사용자의 ID는 BS의 공개키로 암호화되어있다 : user → BS : Registration_request user → BS : encryptpub_keyBS(IDU)

    BS는 적법한 사용자들을 저장한 ID 목록을 가지고 있으며, 적법한 사용자에게마다 인증서를 하나씩 준다. BS는 공개키와 개인키 쌍 (pri_keyBS,pub_keyBS)을 가지고 있는데, BS가 개인키(pri_keyBS)를 이용해서 사용자의 ID에 서명한다. BS가 서명한 사용자의 ID가 바로 인증서다. 마지막 단계로서, BS는 그 인증서를 사용자에게 돌려보낸다.

    BS : certU =signpub_keyBS(IDU) BS → User : certU

    사용자 인증 단계에서는, BS의 공개키 (pub_keyBS)로 각각의 클러스터 헤더마다 사용자의 인증서를 검증하고 사용자의 ID, 즉 IDU를 추출한다.

       3.3.2. 사용자 인증(User authentication)

    네트워크 내에서 모든 데이터는 클러스터 헤더에 의해 전송된다. 예를 들면, 사용자가 센서 s(s의 클러스터 헤더가 A라고 가정)에서 수집된 데이터에 접근하는 경우, 사용자의 근접 거리 내에서 A 가 가장 가까운 클러스터 헤더라고 가정하면, 인증과정은 다음 과정들을 거치게 된다:

    1단계: 사용자가 자신의 인증서 certU와 타임 스탬프(time stamp) TU를 A에게 보낸다. 이때, 사용자 ID인IDU를 포함하여 인증서와 타임 스탬프의 해시(hash) 값도 함께 전송한다: user → A : certU,TU,H(certU∥TU∥IDU)

    여기서 ∥는 연결 문자(concatenation), H는 SHA-1과 같은 해쉬 알고리즘이다. 해시 값은 사용자의 패스워드와 같은 기능을 수행하며, 이 패스워드는 타임 스탬프에 의해 가변적이다.

    A는 사용자가 보낸 인증 요청을 받는 즉시, TU가 유효한 지 확인한다. 유효하면, A는 BS의 공개키 (pub_keyBS)를 사용해서 사용자의 인증서를 검증하고, 사용자의 ID, 즉 IDU를 추출할 수 있다: A: verify(certU)=IDU

    마지막으로, A는 사용자의 ID를 이용해서 사용자의 해시값을 검증한다: A: verify(H(certU∥TU∥IDU))

    2 단계: 검증되면 (사용자가 제시한 패스워드가 정확하면), A는 s에게 A의 ID (IDA)와 타임 스탬프 (TA)를 보낸다. 이때, 센서 s와 공유하는 키(KA,s)를 이용하여 메시지 인증 코드 MAC(KA,s,IDA∥TA)을 같이 보낸다. A → s : IDA,TA,MAC(KA,s,IDA∥TA)

    이 메시지를 받는 즉시, s는 TA가 유효한 지부터 확인한다. 유효하면, s는A (KA,s)와 공유하는 키로 MAC을 생성한 후, 수신한 MAC과 비교해서 IDA를 검증한다: s : verify(MAC(KA,s,IDA∥TA))

    이 과정이 통과되면, 사용자가 적법한 사용자라고 확인된다. 승인이 성공하면, 센서 s는 사용자에게 데이터를 보낼 준비를 한다. s는 A를 거쳐서 사용자가 인증받았다는 메시지를 전송하여 사용자에게 통지할 수도 있다.

       3.3.3. 사용자 패스워드 변경과 인증서 갱신

    TLUA에서는 BS를 기반으로 사용자가 원하면 인증서 갱신을 통해 패스워드를 변경할 수 있다. 사용자가 새 공개키 (pub_key*U)와 새 ID인 ID*U 를 현행 개인키(pri_keyU)로 암호화한다: user → BS : encryptpri_keyU(pub_key*U∥ID*U)

    암호화된 메시지를 받은 BS는 사용자의 현재 공개키(pub_keyU)를 이용해서 그 메시지를 복호화한다: BS : decryptpub_keyU(pub_key*U∥ID*U)

    그러면, BS가 새 ID인 (ID*U)를 자신의 개인키(pri_keyBS)로 서명하고 새 인증서 (certU)를 받아서 다시 사용자에게 보낸다: BS : cert*U = signBS(ID*U) BS → user : cert*U

    IV. 보안성 분석

    두 당사자가 개입하는 통신 방식의 경우, 메시지 인증은 순수하게 대칭적인 방식으로 이루어진다. 즉, 송신자 수신자 하나의 비밀키를 공유해서 통신하는 모든 데이터의 메시지 인증 코드(MAC)를 계산한다. 메시지가 도착하고 그 메시지의 MAC이 정확하면, 수신자 그 메시지를 보낸 송신자를 확신하게 된다. 본 연구에서 제안한 TLUA 방식에서는 센서 노드들이 모든 전송에 MAC을 이용하며, 사용자, BS, 클러스터 헤더 사이에서는 공개키를 이용한다. 따라서, 네트워크의 보안성을 높이고, 공개키와 비밀키 방식의 장점을 갖게 된다.

    최근 ECC 같은 공개키 알고리즘이 발전하면서, 공개키 방식이 비밀키 방식에 비해 키 관리는 물론 메모리 사용량과 보안 장애 허용력(resilience)에서도 더 유리할 수 있음을 확인했다[9]. TLUA에서는 클러스터 헤더가 BS의 공개키를 저장하고 있으면 사용자들을 손쉽게 추가 및 취소할 수 있는 반면에, TTUA에서는 클러스터 헤더가 매번 사용자들의 패스워드 리스트를 보관해야 한다.

    TTUA 방식에서는 사용자 패스워드의 해시값을 보안 채널을 통해 BS에게 보낸다. 또한, 클러스터 헤더 비밀키들의 해시 값 리스트를 BS에서 보안 채널을 거쳐 사용자에게 보낸다. 즉, 보안 채널에 어떤 침략이 발생할 경우 USN이 훼손될 수 있다. 그렇지만, TLUA 방식에서는 공개키를 사용하기 때문에, 사용자와 BS 사이에 보안 채널이 필요없다. 따라서, 사용자들이 키 교환을 위해 BS과 별도의 인증 절차를 수행하지 않아도 된다. 즉, 사용자들은 BS가 담당하는 네트워크 범위 내에서는 인증이 가능하다.

    TTUA에서는, 클러스터 헤더 A의 비밀키 (KA)가 파악되는 경우 네트워크가 훼손되며, A에 저장된 모든 사용자 패스워드들을 취소해야 한다. 또한, TTUA 방식에서는 사용자들이 패스워드를 변경할 때 항상 클러스터 헤더를 거쳐야 한다. TLUA 방식에서는 사용자들이BS와 직접 대화해서 패스워드를 변경한다. 클러스터 헤더가 패스워드 변경 과정에 개입하지 않기 때문에, TLUA가 TTUA에 비해 상대적으로 안전하다고 간주된다. TTUA 방식은 해시함수인 SHA-1을 이용하여 사용자와 클러스터 헤더 사이에 메시지 인증을 수행하지만, TLUA 방식에서는 ECC를 이용한다. ECC와 SHA-1이 사용하는 키의 사이즈가 동일할 때, ECC가 SHA-1보다 보안성이 우수하다고 알려져 있다[10].

       4.1. 노드 훼손 공격(Node compromising attacks)

    클러스터 헤더는 부정 사용 방지(tamper resistant) 장치를 갖추고 있어서, 클러스터 헤더를 훼손하기는 불가능하다. 따라서, 클러스터 헤더에서 각 센서와 연관 비밀키들의 보안을 유지한다. 또한, 클러스터 헤더와 사용자 사이에 공개키 재료(keying materials)들의 보안도 유지된다. 본 연구에서 제안한 방식에서 가장 취약한 구성 요소는 센서 노드이다. 센서 노드는 부정 사용 방지 장치가 없기 때문에, USN을 훼손할 중요한 정보를 센서 노드들이 전송하지 않는다. 그러므로, 클러스터 헤더와 각 센서 노드 사이의 비밀 키들이 서로 다르다. 공격자가 있을 경우, 공격자가 침입할 수 있는 최대의 훼손 수준은 파악된 센서 노드와 관련된 클러스터 헤더와 해당 센서 노드 간의 전송 선로를 훼손하는 수준이다. 이를 방지하기 위해, TLUA 방식에서는 클러스터 헤더와 센서 노드들 사이의 비밀 키들을 ECDH 프로토콜로 일정 기간마다 갱신하는 것이 가능하다

       4.2. 재전송 공격(Replay attacks)

    TLUA 방식에서는 공격자가 이전에 침입했을 때 사용했던 로그인 메시지 H(certU∥TU∥IDU)를 재사용 못한다. 왜냐하면 사용자가 생성하는 타임 스탬프 TU 를 통해 일정 시간 후에 이 메시지를 다시 사용하지 못하도록 보호하기 때문이다. 일정 시간이 지나면, 클러스터 헤더는 그 사용자에게 액세스를 허용하지 않는다. 따라서, 재전송 공격을 방지할 수 있다.

       4.3. 위장 공격(Impersonation attacks)

    본 연구에서 제안한 방식은 위장 공격에 대한 방지 대책을 갖추고 있다. 인증 단계에서 외부인이IDU 를 IDU-guessed 로 만들어서 로그인 메시지H(certU∥TU∥IDU)를 위장하는 경우에, 만들어진 ID로 해시 값을 변경하지만, 해시 값 검증 과정에서 클러스터 헤더에게 탐지된다.

    H(certU∥TU∥IDU-guessed)!=H(certU∥TU∥IDU)

       4.4. 무차별 암호 대입 공격(Brute-force attacks)

    본 연구에서 제안한 방식은 다음과 같이 무차별 암호대입 공격에 대해 다음과 같은 방법을 사용한다.

    • 패스워드 변경 단계에서, 침입자가 메시지 암호pri_keyU(pub_key*U∥ID*U)를 가로채고 사용자의 공개키를 추정해서 그 메시지를 복호화 하려고 시도한다. 따라서 침입자는 pub_keyU를 모든 방법으로 조합해서 패스워드 변경 메시지를 복호화 한다. 이런 공격을 무차별 공격이라고 하며, 가용 시간 내에 실질적으로 그리고 암호체계적으로도 성공 가능성 없다. • 패스워드 변경 단계에서, 침입자가 메시지 암호pri_keyU(pub_key*U∥ID*U)를 가로채고, 암호화된 메시지에서 사용자의 개인키를 추정하려 시도한다. 이 방법은 가용 시간 내에 실질적으로 그리고 암호체계적으로도 성공 가능성 없다.

    V. 성능 평가

    본 절에서는, 본 연구에서 제안한 TLUA의 성능을 평가하고 TTUA, TJY, BGR 방식과 비교한다. 비교 기준은 메모리 요구량, 확장성, 연산 비용의 3가지 관점이며 다음과 같다.

       5.1. 저장 공간

    클러스터 헤더의 경우 TTUA 방식에서는 각각의 클러스터 헤더가 사용자 ID와 패스워드 해시 값을 저장해야 하므로, 사용자 수가 증가하면 저장할 내용도 증가한다. TTUA 방식의 경우, 사용자 수가 n, 사용자 ID 크기는 8 바이트, 패스워드 해시 값이 20 바이트라고 하면, 각각의 클러스터 헤더가 저장해야 하는 사용자 데이터는 n × 28 + 120 바이트이다. 반면, TLUA 방식에서는 사용자 인증을 위해서, 클러스터 헤더가 메모리안에 저장해야하는 유일한 키는 BS의 공개키 (pub_keyBS)뿐이다. 본 연구의 방식에서는 160 비트(20바이트) 타원 곡선을 사용하므로, 공개키 크기는 40 바이트이다(160 비트의 타원 곡선의 경우, 인증서 길이는 40 바이트, 공개키 길이는 40 바이트, 개인키 길이는 20 바이트). n = 1000일때, 각 클러스터 헤더 상에 키를 저장하는데 필요한 메모리를 표1에 정리했다. TJY와 BGR방식에서는 네트워크 내에서 클러스터 헤더가 필요 없기 때문에 표1에서 이 항목을 N/A로 표시했다.

    센서 노드의 경우 TLUA 방식에서는 각각의 센서 노드가 자체 개인키와 클러스터 헤더의 공개키를 저장해서 ECDH 연산을 수행한다. ECDH 연산 후, 클러스터 헤더와 센서 노드들은 비밀 키 KA,s에 대해 합의한다. 이 비밀키의 길이는 20 바이트다. 앞서 언급한 대로 ECDH의 경우, 공용키 길이는 40 바이트이고 개인키 길이는 20 바이트이다. 따라서, 이 키들에 대해 필요한 메모리 저장 공간 총량은 80 바이트다. TTUA 방식에서는 각각의 센서가 비밀키 KA,s를 저장한다. 이 비밀키의 길이는 20 바이트이다. TJY 방식에서는 모든 센서 노드가 각각의 사용자에 대해 10 바이트 길이의 키를 저장한다. 따라서, 각각의 센서 노드 마다 저장해야 하는 키 재료(keying material)의 길이는n × 바이트이다. 마지막으로, BGR 방식에서는 각각의 센서 노드가 인증 권한을 갖는 공용 키를 저장해야 하는데, 이 공용키의 길이가 40 바이트이다. n = 1000일 때 각각의 센서 노드에 키를 저장하는데 필요한 메모리를 표 1에 정리했다.

       5.2. 확장성(Scalability)

    앞 절에서 언급한 바와 같이, TLUA에서는 클러스터 헤더 상의 가용 메모리 공간이 사용자 수에 따라 변하지 않는다. 따라서, 사용자 수에 제한이 없다고 할 수 있다. 반면, TTUA 방식에서는 클러스터 헤더 상의 가용 메모리 공간이 사용자 수와 비례한다. TJY 방식에서는 센서 노드들 상에서 가용 메모리 공간이 사용자 수에 비례한다. 공개키 방식을 사용하는 BGR 방식에서도 사용자 수에 따라 가용 메모리 공간이 변동하지는 않는다.

       5.3. 시간 비용 계산(Time Cost Computation)

    계산 비용을 비교할 때 시간 비용과 에너지 비용 두가지 비교 기준을 도입한다. 클러스터 헤더와 센서 노드 관점에서 분석하였으며, 사용자 장비와 베이스 스테이션 상에서 실행하는 연산은 고려하지 않았다.

    본 연구의 비용 계산에 참고하기 위해, 다양한 신뢰할만한 조사 결과들을 선행문헌에서 검토하였다. 특히 8-비트 CPU 장비(Atmel Atmega 마이크로콘트롤러)와 PDA 장비(iPAQ)에 대하여 암호 프리미티브(cryptography primitives)를 적용하는 것에 관련된 논문들을 조사하였다[10-11]. 클러스터 헤더는 iPAQ H3670 PDA와 센서 노드는 Berkeley의 MICA2 motes를 대상으로 계산 비용을 분석하기 위해 참고하였다[8][12].

    TMAC, TSHA1, TRC5, TXOR, TVER을 해시 기반 메시지 인증 코드(CBC-MAC), 해시 함수 (SHA-1), 대칭형 암호화 (RC5), XOR 연산, ECDSA를 이용한 디지털 서명 검증을 수행하는 계산 시간 비용이라고 정한다. 이 방식을 적용했을 경우, TLUA, TTUA, TJY, BGR의 계산 시간 비용을 표3에 정리했다. TJY와 BGR에서는 네트워크 내에 클러스터 헤더가 필요없기 때문에, 표 2에 해당 항목을 N/A로 표시했다.

    본 연구에서 제안한 TLUA 방식에서 공개키를 사용하지만, 그 성능 결과는 비밀키 기반 방식들 (TTUA과 TJY)과 거의 비슷하다. 그 이유는 클러스터 헤더의 고속 처리능력 때문이다. 비교상의 편의를 위해, 그림 3에 각 방식의 전체 시간 비용(msec단위)을 그림으로 제시한다.

    본 연구의 TLUA 방식에서는, 클러스터 헤더가 등록 단계에 개입하지 않기 때문에, 계산 비용이 전혀없다. 인증 단계에서 소요되는 시간은 TLUA의 경우 약 138 msec, TTUA 방식에서는 약 8msec이다. 즉, TLUA 방식이 인증 단계에서 TTUA 방식에 비해 약 15배 더 느리다. 이것은 예상했던 결과로서, 비밀키 방식에서 공개키로 암호 체계 접근을 변동할 때 이 부분을 고려해서 선택해야 한다. 하지만, BGR 방식에서 인증 단계가 6.545 sec 걸리는 점을 고려하면, 본 연구에서 제안한 방식은 클러스터 헤더의 빠른 처리 시간으로 인하여 약 50배 더 빠르다는 것을 볼 수 있다.

    VI. 결 론

    본 논문에서는, USN 환경에서 이기종 센서 노드에 적합한 새로운 사용자 인증 방식인 TLUA를 제안하였고, TLUA의 성능을 다른 방식 방식들과 비교 평가하여 분석을 수행하였다. TLUA 방식에서는 공개키 방법과 비밀키 방법을 모두 사용함으로써, 두 방법의 장점을 모두 활용하였다. 본 논문에서 제안된 방식으로 성능분석과 시뮬레이션의 결과에 의하면, TLUA 방식이 기존의 비밀키 방법에 비해 보안성과 확장성이 뛰어나며, 공개키 기반의 사용자 인증 방법에 비해 처리 전력 필요량이 적기 때문에 에너지 효율성이 더 높은 것을 확인하였다. 제안한 바와 같이, 본 논문에서 제안한 방식은 공개키 기반의 장점인 확장성과 유연성을 갖추었을 뿐 아니라, 센서 노드 상에서 추가적인 처리 비용을 유발하지 않는다. 또한, 시간 측면에서도 다른 공개키 기반 방식들(예를 들면, BGR 방식)에 비해서 시간 비용이 아주 적다는 것을 알 수 있다.

    향후 연구에서는, 제안한 TLUA 방식을 실제 센서 장비 활용하여 하드웨어로 구현한 후, 실측값을 조사하고 그 결과를 발표할 예정이다.

  • 1. Wong K.H.M., Zheng Y., Cao J., Wang S. 2006 “A dynamic user authentication scheme for wireless sensor networks” [Proceedings of IEEE International Conference on Sensor Networks, Ubiquitous, and Trustworthy Computing] google
  • 2. Tseng H.R., Jan R.H., Yang W. 2007 “An improved dynamic user authentication scheme for wireless sensor networks” [Proceedings of IEEE Global Communications Conference, (GLOBECOM)] P.986-990 google
  • 3. Benenson Z., Gedicke N., Raivio O. “Realizing robust user authentication in sensor networks” [Proceedings of Workshop on Real-World Wireless Sensor Networks] google
  • 4. Wander A.S., Gura N., Eberle H., Gupta V., Shantz S.C. “Energy analysis of public-key cryptography for wireless sensor networks” [Proceedings of the 3rd IEEE International Conference on Pervasive Computing and Communications] P.324-328 google
  • 5. Le X.H., Lee S., Lee Y.K. 2009 “Two-tier user authentication scheme for heterogeneous sensor network” [Proceedings of the 5th IEEE International Conference onDistributed Computing in Sensor Systems (DCOSS)] google
  • 6. Lee H., Choi Y., Kim H. 2005 “Implementation of tinyhash based on hash algorithm for sensor network” [Proceedings of the World Academy of Science, Engineering and Technology] P.135-139 google
  • 7. Rifa-Pous H., Herrera-Joancomarti J. 2011 “Computational and energy costs of cryptographic algorithms on handheld devices” [Journal of Future Internet] Vol.3 P.31-48 google doi
  • 8. Du X., Mohsen G., Yang X.O., Hsiao-Hwa C. 2007 “Two tier secure routing protocol for heterogeneous sensor networks” [IEEE Transactions on Wireless Communications] Vol.6 P.3395-3401 google doi
  • 9. Le X.H., Lee S., Butun I., Khalid M., Sankar R. 2009 “An energy-efficient access control scheme for wireless sensor networks based on elliptic curve cryptograph” [Journal of Communications and Networks] Vol.5 P.240-247 google
  • 10. Trakadas P., Zahariadis T., Leligou H.C., Voliotis S., Papadopoulos K. “Analyzing energy and time overhead of security mechanisms in wireless sensor networks” [Proceedings of IEEE 15th International Conference on Systems, Signals and Image Processing] P.137-140 google
  • 11. Batina L., Mentens N., Sakiyama K., Preneel B., Verbauwhede I. 2006 “Low-cost elliptic curve cryptography for wireless sensor networks” [Springer Journal of Security and Privacy in Ad-Hoc and Sensor Networks] P.6-17 google
  • 12. Potlapally N.R., Ravi S., Raghunathan A., Jha N.K. 2006 “A study of the energy consumption characteristics of cryptographic algorithms and security protocols” [IEEE Transactions on Mobile Computing] Vol.5 P.128-143 google doi
  • [그림 1.] TLUA 방식에서 사용자 인증 시나리오
    TLUA 방식에서 사용자 인증 시나리오
  • [그림 2.] TLUA 방식에서 등록, 인증, 인증서 갱신을 위해 WSN의 서로 다른 실체들 간에 보내는 커뮤니케이션 핸드쉐이크 메시지들.
    TLUA 방식에서 등록, 인증, 인증서 갱신을 위해 WSN의 서로 다른 실체들 간에 보내는 커뮤니케이션 핸드쉐이크 메시지들.
  • [표 1.] TLUA, TTUA, TJY, BGR에서 사용자 1,000명당 CH와 각 센서 노드 상에서 필요한 메모리 저장공간(바이트 단위) 비교
    TLUA, TTUA, TJY, BGR에서 사용자 1,000명당 CH와 각 센서 노드 상에서 필요한 메모리 저장공간(바이트 단위) 비교
  • [표 2.] TLUA,TTUA, TJY, BGR에서 각 센서 노드와 CH 상의 계산 시간 비용 비교 (분석)
    TLUA,TTUA, TJY, BGR에서 각 센서 노드와 CH 상의 계산 시간 비용 비교 (분석)
  • [그림 3.] LUA, TTUA, TJY, BGR의 총 계산 시간 비용 비교
    LUA, TTUA, TJY, BGR의 총 계산 시간 비용 비교