230 likes | 1.12k Views
S E A D Secure Efficient Distance Vector Routing for Mobile Wireless Ad Hoc Networks. Yih-Chun Hu David B. Johnson Adrian Perrig Rice University Rice University University of California, Berkeley
E N D
S E A DSecure Efficient Distance Vector Routingfor Mobile Wireless Ad Hoc Networks Yih-Chun Hu David B. Johnson Adrian Perrig Rice University Rice University University of California, Berkeley yihchun@cs.cmu.edu dbj@cs.rice.edu perrig@cs.berkeley.edu Master Course Network & Information Security Lab Lee. pung. ho In Proceedings of the 4th IEEE Workshop on Mobile Computing Systems and Applications (WMCSA 2002), IEEE, Calicoon, NY
CONTEXT • 1. INTRODUCTION • 2. RELATED WORK • 21. Ad-Hoc Network • 2.1 DSDV • 2.3 Simple Cryptography for Distance Vector Routing • 3. SEAD(Secure Efficient Ad hoc Distance vector routingprotocol) • 4. CONCLUSION
1. INTRODUCTION • Abstract • DSDV기반으로 One-way hash chain을 사용하여 Ad-Hoc 네트워크 인증과 데이터 무결성을 제공하기 위해 제안된 프로토콜 • DSDV Problem • DSDV는 Network 에서의 Routing 만을 제공하는 것이 목적인Routing Protocol이므로 Routing Table 위조와 같은 공격에 취약함 • Solution • Hash Chain기법을 사용, 사전에 인증된 Node 사이에 Hash Chain 값을 배분, Routing Table에 Hash 값을 추가하여, 무결성 여부로 Routing Table의 인증여부 판별
2. RELATED WORK • 2.1 Ad-Hoc Network • 기존의 네트워크와 달리 네트워크 인프라가 구축되지 않은 상태에서 단말들이 상호간에 데이터 송/수신을 수행할 수 있는 형태의 네트워크 • 기지국이나 AP(Access Point)가 존재하지 않음 • 각각의 단말 node들이 Routing 역할을 수행 • 동적인 Topology 를 소유 • Problem • 불안정한 링크 소유 : 무선을 이용하므로 대역폭, 거리의 제한을 받고, 간섭/다중링크 문제점이 존재 • 도청에 취약 : 유선매체가 아닌 무선매체로 인한 통신 이므로 중간에 도청 당할 위험성 존재 • 한정된 자원 : Power, memory, computing 능력 등 기존의 네트워크와 달리 자원이 한정됨.
2. RELATED WORK • 2.2 DSDV(Destination-Sequence Distance Vector) • DSDV 개요 • Distance Vector Routing기반의 Routing • Ad-hoc Network에서 보편적으로 사용되는 Routing Protocol • Distance Vector Routing와 마찬가지로 Metric과 Sequence Number를 사용 • DSDV 동작과정 • 주기적으로 경로상에 포함된 Node들간에 Routing table를 전달 • 가장 최단경로(Low metric)로 Routing table이 포함된 패킷을전송 • 만일 같은 metric을 가진 packet가 전송 될 경우 High Sequence Number를 가진 패킷을 수신
2. RELATED WORK • 2.2 DSDV(Destination-Sequence Distance Vector) • DSDV 구성요소 • Route Table Entry: • Destination’s address • Destination 까지의 Hop count • Sequence number (Destination node 에서 생성) • Sequence number • 오래된 Entry와 새로운 Entry를 구분 (Advertisement 할 때 마다 sequence num 증가) • Destination에서 할당 (짝수) • Broken link가 감지되었을 경우 Metirc 을 무한대로하고 Detecting host에 의해 홀수 Seq num 할당
2. RELATED WORK • 2.2 DSDV(Destination-Sequence Distance Vector) • Route update information Type • Full dump • 모든 이용 가능한 routing information • Incremental • Last full dump 이후 바뀐 정보 • Network의 상태가 변한 경우 (e.g 노드가 이동 ) 사용
2.2 DSDV(Destination-Sequence Distance Vector) N3 N4 N5 N2 N8 N6 N7 N1 2. RELATED WORK (a) 네트워크 토플로지 (b) N4 node 의 Routing table (Full dump) (c) N4 node가 이웃 node와 주고받는 Distance-Vector (Incremental) (a) (b) (c)
2.2 DSDV(Destination-Sequence Distance Vector MH1에 의해 update가 발생하고 MH7과 MH8에 브로드캐스트 Broken link가 감지된 경우 MH2에 의해 홀수 seq num과 무한대 metric을 가진 incremental update 발생 Update 가 network에 propagate N3 N4 N5 N2 N8 N6 N7 N1 N1 2. RELATED WORK
2.2 DSDV(Destination-Sequence Distance Vector N3 N4 N5 N2 N8 N6 N7 N1 2. RELATED WORK (a) (a) Update 이후의 네트워크 토플로지 (b) (b) Update 이후의 N4 node 의 Routing table
2. RELATED WORK • 2.2 DSDV(Destination-Sequence Distance Vector • DSDV의 위와 같은 특징을 이용하여 공격이 가능 • DSDV Routing protocol의 취약점 • Blackhole attack • Distance Vector Routing이 가장 짧은 metric를 이용하는 점을 공격 • 최단거리를 표시한 패킷을 배포해서 가능한 많은 트래픽을 유도 • Inject routing loops • Looping 방지목적으로 쓰이는 Sequence Number를 조작함으로써 Looping을 일으키는 공격을 수행 • Inject a large number of route updates • Node간에 Routing update를 수행하려 할 때, Metric값을 조정함으로써 Routing update를 실패하게 하거나, 엉뚱한 곳으로 트래픽을 유도
2. RELATED WORK • 2.2 DSDV(Destination-Sequence Distance Vector • Solution • Node들 간에 Routing update를 수행 할때 Metric과 Sequence Number의 무결성을 검증함으로써 Node간에 인증을 수행 • Metric 값과 Sequence Number값의 무결성을 인증하는 기법으로 Hash Chain 기술을 적용하여 이러한 문제점들을 해결
2. RELATED WORK • 2.3 Simple Cryptography for Distance Vector Routing • Hash 기법을 사용한 Routing Table 무결성 인증의 예 • 두 Node간에 Hash 값을 사용하기로 약속되어 있다고 가정 • 1) • 2) A B Packet(table(B,1,B,2,34546354)) 송신자는 metric 1, Sequence Number 2 를 hash해서 암호문을 만들어 Packet 에 첨부 하여 전송 B 수신자는 전송 받은 metric 1, Sequence Number 2 를 hash해서 H(m,s)값을 생성함
2. RELATED WORK • 2.3 Simple Cryptography for Distance Vector Routing • 3) 수신자 B는 송신자 A가 전송한 H(m,s)와 자신이 hash 해서 만든 H(m,s)를 비교함 • 만일 2개의 값이 일치하지 않으면 무결성에 문제가 있는 것으로 간주 • 단순 hash를 이용한 무결성 인증은 충돌쌍이 존재하므로 그대로 적용불가. • 예) H(128)= 34567 128이 아닌 다른값(512)을 hash해서 H(512)=34567 • 충돌쌍 문제를 해결하기 위해 hash를 연쇄적으로 사용한 hash cha 기법으로 충돌쌍 문제를 해결 • Collisions for Hash Functions MD4, MD5, HAVAL-128 and RIPEMD- 에서 Hash의 종류인 MD5, MD4의 충돌쌍 발견에 대한 내용언급
2. RELATED WORK • 2.3 Simple Cryptography for Distance Vector Routing • Hash Chain Mechanism • hash chain 의 구조 • Hash초기 hash 값을 를 연쇄적으로 hash 하여 chain 형태로 만든 Mechanism • hi-1 = H[hi] • h5 => h4 => h3 => h2 => h1 => h0 • 이 hash chain은 hash의 one-way 특징이 있기 때문에 hi에서 hi-1을 만들 수 있지만, 역으로 hi-1에서 hi값을 만들 수 없음
3. SEAD • SEAD • Secure Efficient Ad hoc Distance vector routingprotocol • Hash chain를 사용한 node간에 무결성 인증법 • metric과 Sequence Number에 해당되는 hash 암호문을 보냄으로써 무결성 확보 Each node N forms a one-way hash chain Vkn, Vkn-1, … , Vo (with Vi-1 = H[Vi]) • k : maximum node • n : maximum sequence number • Vo : authenticated seed value (by using CA) • Vks+j : sequence number s && metric m • k-m=j
A B C D E 3. SEAD • 예) 5개의 Node들이 3까지의 Sequence Number 값을 주고 받는다고 가정 • k = 5, n =3 -> v15, v14, v13, v12, ……..v0까지의 hash 값이 존재 • v14 = H[v15] , v13 = H[v14], v12 = H[v13] … Vi-1 = H[Vi])
3. SEAD • V0값은 각각의 hash chain(V15..V1)까지의 무결성 증명에 사용 • (모든 node들은 hash 값의 무결성 인증을 위해 v0값을 사용함) • Metric m과 Sequence Number s 의 무결성을 인증 받기 위해서는 Vks+j 번째의 hash 암호문을 전송해야 함 • 예) metric 0, Sequence Number 0 전송시 무결성 인증 법 • metric 0 , Sequence Number 0 인 경우, j = k-m Vks+j이므로, • metric 0, Sequence Number 0에 해당되는 hash chain value는 V5 • metric 1, Sequence Number 0에 해당되는 hash chain value는 V4 • metric 2, Sequence Number 0에 해당되는 hash chain value는 V3 • metric 3, Sequence Number 0에 해당되는 hash chain value는 V2 K=5, n=3 이라고 가정할 때의 SEAD Table
3. SEAD • Node D가 다른node 에게 node E에 대한 routing 정보를 전송함을 가정 • 모든 node들이 위에서 만든 hash chain value를 가지고 있다고 가정함 • 1) • 2) Node C는 Vks+j공식을 사용해서 자신이 소유한 V9값과 일치하는지 검사 • 또한 V9값을 9번 hash 해서 V0 도달여부로 hash 값의 무결성을 인증 할 수 있음 • Metric=2, Seq #=1 여기에 해당되는 해당 hash 값인(여기서는 V8) Routing table에 기록하여 전송함 A B C D E Node D는 Metric 1, seq# 1, 에 대한 인증용 Hash 값으로 V9를 Table에 포함 Node D의 routing table
3. SEAD • 3) • 4) node B는 Vks+j 공식을 사용해서 자신이 소유한 V8값과 일치하는지 검사함 • Metric=3, Seq #=1 여기에 해당되는 해당 hash 값인(여기서는 V7) Routing table에 기록하여 전송함 A B C D E Node C의 routing table
4. CONCLUSION (a) (b) DSDV와 SEAD의 Routing table의 차의점
4. CONCLUSION • 장점 • 사전에 hash chain value 값들을 받은 node들에 한하여 Routing 에 개입 가능 • 악의적인 목적을 지닌 node의 Routing 관련 공격에 대한 차단이 가능 • 공격자가 Routing table metric, Sequence Number을 위조하기 위해서는 여기에 해당되는 hash 값을 알아야 하므로 Routing 방해와 관련된 공격을 최대한 방지 할 수 있음 • 단점 • 초기에 생성될 hash chain value 값으로 인한 overhead 가 예상 • Network 내에 존재하는 node들이 수가 많을 경우 더 많은 계산이 필요 • same-distance fraud : 같은 거리에 존재하는 악의적인 node가 packet를 그대로 재 전송하는 공격을 차단할 수 없음
참고문헌 • SEAD : Secure Effcient Distance Vector Routing • Effcient security mechanisms for routing protocols • Highly Dynamic Destination-sequenced vector routing