1 / 31

embedded IPsec VPN Implementation für low-end embedded Systeme

embedded IPsec VPN Implementation für low-end embedded Systeme. „D&E - Tag der Entwickler“ - M,O,C München, 07. Juli 2004. “Tag der Entwickler” – 7. Juli 2004 – M,O,C, München Christian Scheurer. 1. Übersicht. Hintergrund, Motivation und Ziele Design und Implementation Testen

ward
Download Presentation

embedded IPsec VPN Implementation für low-end embedded Systeme

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. embedded IPsec VPN Implementation fürlow-end embedded Systeme „D&E - Tag der Entwickler“ - M,O,C München, 07. Juli 2004 “Tag der Entwickler” – 7. Juli 2004 – M,O,C, München Christian Scheurer 1

  2. Übersicht • Hintergrund, Motivation und Ziele • Design und Implementation • Testen • Ergebnisse 2

  3. Hintergrund • 2003: Sicherheit für vernetzte Systeme: Passwort • 2004: Zahlreiche Angebote zum Thema Fernwartung über GSM • 200x: Vernetzt über öffentliche Netze 3

  4. Motivation • Offene IPsec Implementation ausgelegt für low-end embedded Systeme • Interoperabilität mit andern IPsec Systemen 4

  5. Vorbereitung: Verständnis • IPsec verstehen • Literatur • Big Book of IPsec RFCs(Peter Loshin, Morgan Kaufmann 2000) • Netzsicherheit(Günter Schäfer, dpunkt Verlag 2003) • Praktische Tests- Linux Kernel 2.6 - FreeS/WAN (jetzt OpenS/WAN, StrongS/WAN) 5

  6. Vorbereitung: Arbeitsplatz • Entwicklungsumgebung • PC mit Keil uVision IDE und Sniffer • VMware Workstation (oder PC) mit FreeS/WAN und Linux Kernel 2.6 IPsec • C167-Board • 10Mbit Ethernet Hub 6

  7. Design embedded IPsecModule 7

  8. Implementation der Module Reihenfolge Implementation: 1.) Anbindung an TCP/IP Stack 2.) Konfigurationsdatenbanken 3.) Crypto Funktionen 4.) AH Protokoll 5.) ESP Protokoll 6.) AntiReplay, ... 8

  9. „ipsecdev“ ipsecdev / ipsec Module 9

  10. TCP/IP Stack CS8900 Driver lwIP TCP/IP Stack lwIP – a light weight TCP/IP Stack 10

  11. IPsec Driver IPsec Library IPsec Integration Traffic Interception 11

  12. IPsec Datenbank Module SPD und SAD 12

  13. Security Policy Database • Welche Pakete werden verarbeitet? • DISCARD  • BYPASS  • APPLY  13

  14. Security Policy Database Beispiel einer SPD Konfiguration 14

  15. Security Association Database • Wie werden Pakete verarbeitet? • Tunnel oder Transport Mode • AH oder ESP • Algorithmen und Keys • Security Parameter Index 15

  16. Security Association Database Beispiel einer SAD Konfiguration 16

  17. SA Outbound Processing Datenfluss beiOutbound Processing 17

  18. AH / ESP / Crypto - Module AH und ESP 18

  19. Crypto - Library • Crypto Funktionen von OpenSSL • DES, 3DES • HMAC-MD5-96, HMAC-SHA1-96 • Für MCU optimierte Versionen • Dmitry Basko‘s DES • http://www.dbasko.com • Graham Cole‘s MD5 • http://www.programmersheaven.com/zone5/cat27/index.htm 19

  20. Authentication Header 20

  21. Encapsulating Security Payload 21

  22. Speicherverwaltung 22

  23. Testen • Test-Konzept 3. 2. 1. 23

  24. Structural Tests • Structural Tests TST sa_test_sad_lookup() : SUCCESS : TST sa_test_sad_get_spi(): SUCCESS : TST sa_test_spd_flush() : NOT IMPL. : TST sa_test_sad_flush() : NOT IMPL. : TST test_esp_decapsulate : SUCCESS : TST test_esp_encapsulate : SUCCESS : MSG main : structural testing finished: MSG main : o 100.00% correct (92 of 92 tests passed) MSG main : o 82.61% complete (19 of 23 functions implemented) 24

  25. Functional Tests • Functional Tests 25

  26. Crypto Library aufOpenSSL Basistotal 90kB Protokolle und DBtotal 18kB Ergebnisse: Grösse • Grösse 26

  27. 1280 Bytes Ohne: 13 mSAH-MD5: 165 mS ESP-3DES: 851 mS 512 Bytes Ohne: 8 mSAH-MD5: 38 mS ESP-3DES: 351 mS 64 Bytes Ohne: 5 mSAH-MD5: 19 mS ESP-3DES: 60 mS Ergebnisse: Performance • Performance 27

  28. Einsatzgebiete • Einsatzgebiete • Vernetzte Sensoren • Gebührenzähler 28

  29. Interoperabilität Aus Linux Kernel 2.6.7 (./net/ipv4/esp4.c): .. esph = (struct ip_esp_hdr*)skb->data; iph = skb->nh.iph; /* Get ivec. This can be wrong, check against another impls. */ if (esp->conf.ivlen) crypto_cipher_set_iv(esp->conf.tfm, esph->enc_data, crypto_tfm_alg_ivsize(esp->conf.tfm)); { u8 nexthdr[2]; ... • Interoperabilität 29

  30. 16-Bit Demo Demo 30

  31. Versuchs-Aufbau 16-Bit (Infineon C167) Laptop (grau) Hub 192.168.1.3 192.168.1.5 192.168.1.4 Laptop (schwarz) 8-Bit (ATMEL AVR) 192.168.1.21 192.168.1.20 31

More Related