ZigBee WPAN에서의
안전한 키 관리기법과 인증 프로토콜

임준현, 한규석, 김광조

한국과학기술원

Secure Key Management and Authentication Protocol
in ZigBee WPAN

Junhyun Yim, Kyusuk Han, Kwangjo Kim

Korea Advanced Institute of Science and Technology.

요 약

ZigBee WPAN은 개방된 무선통신 환경을 이용하고 다양한 활용분야에서 중요한 정보를 다룰 수 있기 때문에 보안이 매우 중요하며 ZigBee Alliance 규격에도 보안 계층이 포함되어 있다. ZigBee 네트워크는 마스터키, 네트워크키, 링크키를 사용해서 안전한 네트워크 환경을 구성하지만 마스터키가 안전하지 않은 채널을 통해 전달됨으로써 마스터키가 직접적으로 노출될 수 있는 취약점이 존재하며 악의적인 공격자에 의해 키가 노출되거나 손상되어 악의적인 행동을 하는 노드를 발견하더라도 이에 대한 대처 방안이 존재하지 않아 잠재적인 취약점이 존재한다.

본 논문에서는 이런 문제점을 해결하기 위해 ZigBee WPAN에서의 안전한 키 관리기법과 노드의 인증 프로토콜을 제안하였다. 제안한 프로토콜은 마스터키를 안전한 채널을 통해 전송함으로써 외부로 직접 노출되지 않도록 하였고 인증서를 이용한 노드의 검증과 등록, 안전한 키 전송, 손상된 노드의 탐지 및 키의 재분배를 통해 안전한 네트워크를 구성하고 유지할 수 있다.

서론

최근 무선 통신을 위한 기술이 발전하고 유비쿼터스 환경에 대한 관심이 높아지면서 사용자에게 편의성을 제공하기 위한 다양한 무선 네트워크 환경들이 제안되었다. ZigBee WPAN(Wireless Personal Area Network)는 LR-WPAN(Low Rate Wireless Personal Area Network)[1]의 대표적인 기술로 ZigBee[2] 통신을 이용하여 10m 내외 비교적 단거리의 디바이스들을 무선 연결하고 20∼250Kbps의 전송속도로 데이터 전송을 지원하는 저전력의 무선 근거리 통신 기술이다.

LR-WPAN는 사물에 부착된 경량의 센서노드들 간의 통신을 제공하며 무선 센서네트워크에 주로 응용된다. 센서노드는 환경, 방범, 방재, 헬스케어, 위치, 음성 등과 같은 다양한 종류의 센싱기능, 센싱데이터의 처리 및 제어 데이터의 생성, 무선전송 기능 등을 기본적으로 가지며 이를 기반으로 WPAN에서 다양한 서비스가 가능하다. WPAN은 IEEE 802.15에서 전송규격을 정의하고 있고 LR-WPAN의 표준은 IEEE 802.15.4의 LR-WPAN Task Group에서 담당하고 있다.

ZigBee WPAN의 경우 개방된 무선 통신 환경을 이용하고 다양한 활용분야에서 중요한 정보를 다룰 수 있다. 그러므로 ZigBee WPAN에서의 보안은 매우 중요하며 ZigBee Alliance[1] 규격에도 보안 계층이 포함되어 있다. ZigBee 네트워크는 마스터키(master key), 네트워크키(network key), 링크키(link key)를 사용해서 안전한 네트워크 환경을 구성한다. 그러나 각 노드들 사이의 안전한 데이터 전송을 가능하게 하는 네트워크키와 링크키를 유도하는데 이용되는 마스터키가 PAN 코디네이터(PAN coordinator)로부터 WPAN에 조인한 디바이스에게 전달되는 과정이 ZigBee Alliance의 보안 규격에는 정의되어 있지 않기 때문에 마스터키가 안전하지 않은 채널을 통해 전달됨으로써 직접적으로 노출될 수 있다. 그리고 악의적인 공격자에 의해 키가 노출되거나 손상되어 악의적인 행동을 하는 노드를 발견하더라도 이에 대한 대처 방안이 없어 잠재적인 취약점이 존재한다[4, 5, 6, 7].

이를 해결하기 위해 본 논문에서는 ZigBee WPAN에서의 안전한 키 관리기법과 노드의 인증 프로토콜을 제안하였다. 제안한 프로토콜은 PAN 코디네이터를 이용하여 관리자에 의한  추가적인 노드의 등록과정을 포함하며 마스터키를 암호화하여 전송함으로써 안전한 마스터키 전송을 가능하게 한다. 그리고 만약 마스터키가 외부로 노출되었거나 공격자에 의해 손상된 악의적인 노드가 발견될 경우 PAN 코디네이터가 새로운 마스터키를 생성하고 다른 노드들에게 분배하여 안전한 네트워크를 유지할 수 있다.

본 논문의 구성은 다음과 같다. 2장은 관련연구로써 Zigbee WPAN과 ZigBee Alliance 보안 규격에서의 인증 및 키 생성 프로토콜에 대해서 알아보고, 3장에서는 본 논문에서 제안하는 프로토콜을 기술한다. 4장에서는 제안한 프로토콜을 분석하고, 마지막 5장에서는 결론 및 향후 연구과제를 정리한다.

관련연구

2.1  ZigBee WPAN

IEEE 802.15.4 표준은 네트워크 내에서 PAN 코디네이터, FFD(Full Function Device), RFD(Reduced Function Device)의 3가지의 디바이스 타입을 정의하고 있다[3]. 먼저 PAN 코디네이터는 네트워크 내의 전체적인 동작을 제어하는 역할을 하며 보통의 노드보다 많은 메모리와 컴퓨팅 파워를 가지고 있다. FFD는 모든 IEEE 802.15.4 표준의 기능과 특징을 지원하며 PAN 코디네이터로도 동작 가능한 디바이스이다. 마지막으로 RFD는 가격과 복잡도를 가능한 낮추기 위해서 IEEE 802.15.4 표준의 제한된 기능만을 가지고 있으며 일반적으로 네트워크 에지 디바이스(Network Edge Device)로 사용된다.

[그림 ] ZigBee WPAN 토폴로지

ZigBee WPAN는 기본적으로 성형 토폴로지, 메시 토폴로지, 클러스터 트리 토폴로지의 세 가지 네트워크 토폴로지를 지원하며 그 구성은 [그림 1] 과 같다. ZigBee WPAN에서는 다양한 네트워크 토폴로지를 구성하는 것이 가능하지만 본 논문에서는 주로 사용되고 있는 성형 토폴로지를 가정한다. 그리고 중앙의 PAN 코디네이터는 신뢰되는 노드로써 네트워크와 어플리케이션을 관리하며 사용되는 키를 분배하고 관리한다.

2.2  ZigBee 인증 및 키 생성 프로토콜

ZigBee 네트워크는 네트워크키, 링크키, 마스터키를 이용하여 인증 및 암호화를 수행한다. 네트워크키는 네트워크 레벨에서의 인증 및 암호화에, 링크키는 디바이스 레벨에서의 인증 및 암호화에 사용된다. 마스터키는 디바이스 간에 링크키를 유도하기 위한 신뢰성 있는 정보로, SKKE(Symmetric-Key Key Establishment)[8] 프로토콜은 마스터키를 이용하여 디바이스 사이에 링크키를 생성한다.

ZigBee 네트워크에서 새로운 디바이스가 WPAN에 조인하게 되면 PAN 코디네이터는 디바이스와 링크키를 생성하고 네트워크키를 전송하여 디바이스를 인증하게 된다. 링크키를 생성하기 위한 마스터키를 분배하기 위한 방법으로는 각 디바이스에게 사전 분배하거나 네트워크에 조인한 디바이스에게 직접 전송하는 두 가지 방법이 있다. 그러나 사전 분배하는 방법은 노드가 동적으로 추가되고 제거될 수 있는 WPAN 환경에서는 적합하지 않기 때문에 주로 직접 전송하는 방법을 사용한다. [그림 2]는 마스터키를 가지지 않은 새로운 노드 Ni가 PAN 코디네이터 Cr과 통신을 하여 PAN에 조인하는 과정을 보여준다.

[그림 ] ZigBee 인증 및 키 생성 프로토콜

노드 Ni와 PAN 코디네이터 Cr이 비컨(Beacon) 신호를 주고받은 후, 노드 Ni는 Association Request Command를 보내 PAN에 조인을 요청한다. PAN 코디네이터 Cr이 Association Response Command를 보내 노드 Ni의 조인을 허가하면 PAN 코디네이터와 디바이스 간의 인증 및 키 생성 과정을 수행하게 된다. PAN 코디네이터 Cr은 노드 Ni에게 마스터키를 전송하고 마스터키를 이용하는 SKKE 프로토콜을 진행하여 링크키를 생성한다. 그리고 마지막으로 링크키로 암호화된 네트워크키를 전송하여 노드 Ni를 인증한다. 이 과정에서 링크키를 유도하기 위한 마스터키가 안전하지 않은 평문 형태로 전송됨으로써 마스터키가 외부로 노출될 수 있으며 마스터키가 노출될 경우 링크키와 네트워크키 역시 유도 가능하다는 취약점이 발생한다.

2.3  SKKE 프로토콜

SKKE 프로토콜은 공유된 마스터키를 사용하여 서로 신뢰할 수 있는 비밀키인 링크키를 생성하는 과정이다. 다음은 마스터키를 공유한 PAN 코디네이터 Cr과 새로운 노드 Ni가 SKKE 프로토콜을 이용하여 링크키를 생성하는 과정이다.

SKKE-1 Command :

노드 Ni는 임의의 비트스트링 QEU를 생성하여 PAN 코디네이터에게 전송한다.

SKKE-2 Command :

PAN 코디네이터 Cr은 임의의 비트스트링 QEV를 생성하여 노드 Ni에게 전송한다.

SKKE-3 Command

노드 Ni와 PAN 코디네이터 Cr은 서로 주고받은 임의의 비트스트링 QEU/QUV 와 마스터키 MK를 이용하여 HMAC 값을 구한다. (i는 노드 Ni의 식별자, r은 PAN 코디네이터 Cr의 식별자)

[eqn: HMAC=H _{MK} (i||r||QEU||QEV)]

HMAC 값과 16진수 x16을 이용하여 2개의 해쉬값 H1과 H2를 만든다. 노드와 PAN 코디네이터가 생성한 해쉬값은 동일하며 H2은 링크키로 사용되고  H1은 동일한 링크키가 생성되었는지 확인하기 위해 사용된다.

[eqn: H _{1} =H(HMAC`||`01 _{16} )# H _{2} =H(HMAC`||`02 _{16} )]

그리고 PAN 코디네이터와 노드는 다음과 같이 두 개의 MACData값을 생성한다.

[eqn: MACData _{1} =H _{MK} (i||r||QEU||QEV||02 _{16} )# MACData _{2} =H _{MK} (i||r||QEU||QEV||03 _{16} )]

노드 Ni는 MACData1 을PAN 코디네이터 Cr에게 전송한다.

SKKE-4 Command

코디네이터 Cr은 노드 Ni에게 MACData2를 전송한다.

각각 수신한 값이 일치하면 서로 동일한 링크키를 생성한 것으로 간주하고 인증하게 된다.

제안하는 프로토콜

본 논문에서는 ZigBee WPAN에서의 안전한 키 관리기법과 노드의 인증 프로토콜을 제안한다. 제안하는 프로토콜은 PAN 코디네이터를 이용하여 관리자에 의한  추가적인 노드의 등록과정을 포함하며 마스터키를 암호화하여 전송함으로써 안전한 마스터키 전송을 가능하게 한다. 그리고 만약 마스터키가 외부로 노출되었거나 공격자에 의해 손상된 악의적인 노드가 발견될 경우 PAN 코디네이터가 새로운 마스터키를 생성하고 다른 노드들에게 분배하여 안전한 네트워크를 유지할 수 있다. 제안하는 프로토콜은 노드의 등록, 키의 안전한 전송과 인증, 손상된 노드의 탐지 및 키의 재분배, 이렇게 세 단계로 나눌 수 있다.

3.1  노드의 등록

WPAN 내에 노드가 조인하기 위해서는 관리자에 의한 노드의 등록과정이 필요하다. 이를 위해 제3의 신뢰된 인증기관으로부터 발급된 인증서를 사용한다. 모든 노드들은 생산자로부터 고유의 식별자와, 디바이스의 정보, 비밀키와 공개키 쌍을 부여받고 이에 대해 제3의 신뢰된 인증기관으로부터 인증을 받는다고 가정한다. PAN 코디네이터는 조인할 노드로부터 이와 같은 정보를 전송받아 검증하고 관리자의 선택에 따라 노드를 실제로 등록할 것인지를 결정한다. [그림 3]은 PAN 코디네이터 Cr이 새로운 노드 Ni를 등록하는 과정을 보여준다.

[그림 ] 새로운 노드 디바이스의 등록 과정

노드 Ni와 PAN 코디네이터 Cr이 비컨 신호를 주고받은 후, 노드 Ni는 Association Request Command와 노드의 인증서를 보내 PAN에 조인을 요청한다. 노드의 인증서는 노드의 식별자, 노드의 공개키, 노드의 정보를 담고 있는 데이터 코드, 인증기관의 서명 등으로 이루어지며 노드의 서명과 함께 전송된다. 이를 받은 PAN 코디네이터 Cr은 인증서를 검증하고 인증서로부터 얻어낸 노드 Ni의 공개키를 이용하여 서명을 검증한다. 인증서와 서명의 검증이 끝나면 관리자는 노드의 디바이스 정보를 확인하고 노드를 등록할 것인지를 결정한다. 관리자가 노드의 등록을 결정할 경우 PAN 코디네이터 Cr은 Association Response Command를 전송하여 노드 Ni의 조인을 허가하고 노드의 인증서와 서명을 저장한다.

3.2  키의 안전한 전송과 인증

등록된 노드 Ni는 PAN 코디네이터로부터 안전하게 마스터키를 전송받는 것이 가능하다. [그림 4]는 PAN 코디네이터 Cr로부터 마스터키 MK가 노드 Ni에게 안전하게 암호화 되어 전송되는 것과 이후 SKKE 프로토콜을 진행하여 링크키를 생성하고 네트워크키를 전송하여 노드를 최종적으로 인증하는 과정을 보여준다.

[그림 ] 키의 안전한 전송과 인증 과정

먼저 노드 Ni가 Request Key Command를 보내 PAN 코디네이터 Cr에게 마스터키를 요청하면 PAN 코디네이터 Cr은 노드 Ni가 등록된 노드인지를 확인한다. 노드 Ni가 등록된 노드일 경우 PAN 코디네이터 Cr은 임의의 세션키 t를 생성하고 t를 이용하여 마스터키 MK를 대칭키 암호화한다. 그리고 t를 노드 Ni에게 안전하게 전달하기 위해 Ni의 공개키 PKi를 이용하여 t를 공개키 암호화하고 이들을 노드 Ni에게 전송한다. 이를 전송받은 노드 Ni는 자신의 비밀키 SKi를 이용하여 세션키 t를 얻어내고, 세션키 t를 이용하여 마스터키 MK를 얻어낸다. 마스터키를 전송하고 난 이후에는 PAN 코디네이터 Cr과 노드 Ni가 기존의 SKKE 프로토콜에 따라 링크키를 생성하고 네트워크키를 생성된 링크키로 암호화하여 전송함으로써 노드를 최종적으로 인증하게 된다.

3.3  손상된 노드의 탐지 및 키의 재분배

만약 손상된 노드가 발견되거나 키가 외부로 노출되었다고 판단되면 관리자는 손상된 노드를 등록목록에서 제거하고 새로운 마스터키를 생성하여 등록된 노드들에게 분배함으로써 네트워크를 다시 안전한 상태로 되돌릴 수 있다. 키의 재분배시에 PAN 코디네이터에 저장되어 있는 등록된 노드들의 공개키와 임의의 세션키를 사용함으로써 안전한 키 분배가 가능하다. 손상된 노드의 탐지 방법으로는 등록목록에는 존재하지만 일정기간 이상 연결 또는 메시지 송수신이 없는 노드, 자신의 디바이스 정보와는 일치하지 않는 잘못된 명령 메시지를 전송하는 노드 등을 탐지하는 방법 등이 있을 수 있다. 그러나 본 논문에서는 이는 자세히 기술하지 않겠다.

분석

기존의 ZigBee 인증 및 키 생성 프로토콜의 경우 PAN 코디네이터가 WPAN에 조인하려는 노드에게 링크키와 네트워크키를 유도하는데 사용되는 마스터키를 평문형태로 전송함으로써 마스터키가 쉽게 노출될 수 있으며 조인하는 노드를 아무 검증 없이 신뢰함으로써 쉽게 공격당할 수 있는 취약점이 존재했다. 그리고 키가 공격자에 의해 외부로 노출되거나 손상된 노드가 발생해도 사후대처방안이 존재하지 않아 잠재적인 취약점이 존재했다. 본 논문이 제안한 프로토콜은 이를 해결하기 위해 제3의 신뢰된 인증기관의 인증서를 이용하여 노드를 검증, 관리자의 확인을 거쳐 노드를 PAN 코디네이터에 등록하고 마스터키를 안전한 채널을 통해 전송함으로써 마스터키를 안전하게 전송할 수 있도록 한다. 그리고 키가 공격자에 의해 외부로 노출되거나 손상된 노드가 발생할 경우에는 새로 생성한 마스터키를 안전한 노드들에게만 재분배함으로써 네트워크를 안전하게 유지할 수 있도록 한다. [표 1]은 기존의 프로토콜과 제안한 프로토콜의 비교이다.

[표 1] 제안한 프로토콜과 기존의 프로토콜 비교

	노드의 인증	노드의 무결성	안전한 키 전송	사후 대처방안
기존의 프로토콜	O	X	X	X
제안한 프로토콜	O	O	O	O

결론

ZigBee WPAN의 경우 개방된 무선 통신 환경을 이용하며 다양한 활용분야에서 중요한 정보를 다룰 수 있으므로 보안이 매우 중요한 부분이며 ZigBee Alliance 규격에도 보안 계층이 포함되어 있다. 그러나 ZigBee 인증 및 키 생성 과정에서 마스터키가 평문으로 전송됨으로써 외부로 직접적으로 노출될 수 있는 취약점이 존재하며 공격자에 의해 키가 노출되거나 손상되어 악의적인 행동을 하는 노드를 발견하더라도 이에 대한 대처 방안이 존재하지 않아 잠재적인 취약점이 존재한다. 이를 해결하기 위해, 본 논문에서는 ZigBee WPAN에서의 안전한 키 관리기법과 노드의 인증 프로토콜을 제안하였다. 마스터키를 안전한 채널을 통해 전송함으로써 외부로 직접 노출되지 않도록 하였고 인증서를 이용한 노드의 검증과 등록, 손상된 노드의 탐지 및 키의 재분배를 통한 안전한 네트워크의 구성과 사후 대처방안을 제안하였다.

향후에는 WPAN에서 공격자에 의해 손상된 노드를 효과적으로 탐지하는 방법과 새로운 키를 효율적으로 재분배하는 방법을 위한 연구가 필요하다.

[참고문헌]

[1] IEEE Std 802.15.4, Wireless Medium Access Control(MAC) and Physical Layer (PHY) Specifications for Low-Rate Wireless Personal Area Networks (LR-WPANs), 2003.

[2] ZigBee Alliance Document, ZigBee Specification Pro/2007, 2007.

[3] S. C. Ergen, ZigBee/IEEE 802.15.4 Summary, http://www.eecs.berkeley.edu/ csinem/academic/publications/zigbee.pdf

[4] N. Sastry and D. Wagner, Security considerations for IEEE 802.15. 4 networks, Proceedings of the 3rd ACM Workshop on Wireless Security, pp. 32-42, ACM, 2004.

[5] T. Kennedy and R Hunt, A Review of WPAN Security: Attacks and Prevention, Proceedings of the International Conference on Mobile Technology, Applications, and Systems, Article No. 56, Sep., 2008.

[6] Kyunghwa Lee, Joohyun Lee, Bongduk Zhang, Jaeho Kim, and Yongtae Shin, An Enhanced Trust Center Based Authentication in ZigBee Networks, Advances in Information Security and Assurance, Vol. 5576, pp. 471-484, LNCS, 2009.

[7] Jelena Misic, ZigBee: A long way to go?, Infosecurity, Elsevier, April, 2007.

[8] Hyunjue Kim, Jong-Moon Chung, and Chang Hyun Kim, Secured communication protocol for internetworking ZigBee cluster networks, Computer Communications, Vol. 32, Issues 13-14, Elsevier, Aug., 2009.