Bộ bảo mật IP (Ipsec) tốc độ cao 10GBGS trên FPGA
Trong bài báo này, tôi đề xuất thực hiện một bộ bảo mật dữ liệu IPSec
trên FPGA Xilinx Virtex-6. Giao thức bảo mật IP (IPSec) là một giao thức quan trọng
trong giao thức bảo mật mạng được sử dụng trong lớp IP. Thông thường các bộ bảo
mật IPSec đều được thực hiện bằng phần mềm như trên Windows hoặc Linux, trong
IPSec các bộ xử lý, mã hóa và xác thực chiếm nhiều thời gian xử lý của CPU do đó rất
khó thực hiện hệ thống IPSec tốc độ cao. Vì vậy, tôi sẽ trình bày một bộ bảo mật IPSec
tốc độ cao bằng sự kết hợp xử lý giữa phần mềm và phần cứng. Phần mềm Racoon
với chức năng quản lý, đàm phán và trao đổi khóa IKEV2 được chạy trên lõi xử lý
Microblaze. Phần cứng thực hiện trên phần logic của FPGA với chức năng quan trọng
xử lý dữ liệu cho mã hóa AES và xác thực HMAC. Khi đó bộ IPSec trở thành bộ đồng
xử lý với CPU giúp hệ thống thực hiện với tốc độ xử lý cao - 10Gbps.
Tóm tắt nội dung tài liệu: Bộ bảo mật IP (Ipsec) tốc độ cao 10GBGS trên FPGA
15 BỘ BẢo MẬT IP (IPSEC) TỐC ĐỘ CAo 10GBGS TRÊN FPGA Lê Thị Thanh Bình1 Tóm tắt: Trong bài báo này, tôi đề xuất thực hiện một bộ bảo mật dữ liệu IPSec trên FPGA Xilinx Virtex-6. Giao thức bảo mật IP (IPSec) là một giao thức quan trọng trong giao thức bảo mật mạng được sử dụng trong lớp IP. Thông thường các bộ bảo mật IPSec đều được thực hiện bằng phần mềm như trên Windows hoặc Linux, trong IPSec các bộ xử lý, mã hóa và xác thực chiếm nhiều thời gian xử lý của CPU do đó rất khó thực hiện hệ thống IPSec tốc độ cao. Vì vậy, tôi sẽ trình bày một bộ bảo mật IPSec tốc độ cao bằng sự kết hợp xử lý giữa phần mềm và phần cứng. Phần mềm Racoon với chức năng quản lý, đàm phán và trao đổi khóa IKEV2 được chạy trên lõi xử lý Microblaze. Phần cứng thực hiện trên phần logic của FPGA với chức năng quan trọng xử lý dữ liệu cho mã hóa AES và xác thực HMAC. Khi đó bộ IPSec trở thành bộ đồng xử lý với CPU giúp hệ thống thực hiện với tốc độ xử lý cao - 10Gbps. Từ khóa: IPSec, IP security, bộ bảo mật IP, Giao thức bảo mật IP, bảo mật mạng. 1. Mở đầu Trong nhưng năm gần đây các cuộc tấn công mạng xảy ra ngày càng nhiều và ở hầu hết các quốc gia trên thế giới, tính chất của các vụ tấn công ngày càng phức tạp và khó lường. Như thông tin từ tờ báo NBC News đã đưa tin “Tin tặc của Trung Quốc đã tiếp cận hộp thư điện tử cá nhân của các quan chức thương mại và các an ninh quốc gia hàng đầu của Mỹ từ tháng 4/2010” và một số tờ báo đã đưa tin “Mỹ nghe lén điện thoại của 35 nhà lãnh đạo trên thế giới” cũng đã làm cho các quốc gia lo ngại về sự đảm bảo thông tin mạng và an ninh quốc gia. Các cuộc tấn công mạng với các thiết bị được triển khai từ xa qua mạng Internet như tấn công thụ động hoặc tấn công chủ đích. Khi hệ thống bị tấn công sẽ làm thay đổi hành vi của hệ thống hoặc thậm chí làm tê liệt toàn bộ hệ thống. Những loại tấn công phố biến bao gồm: Nghe lén: Người sử dụng trái phép đã sử dụng mã độc gây hại để khai thác mạng, sao chép phân tích dữ liệu. Nếu họ thấy được thông tin văn bản rõ và thông tin cấu hình thì họ có thể phát hiện ra điểm yếu của hệ thông để tấn công. Giả mạo: Người sử dụng trái phép có thể giành quyền kiểm soát các thiết bị từ xa bằng cách phát hành các gói tin điều khiển giả. Loại tấn công này có thể làm thay đổi hành vi của hệ thống hoặc làm tê liệt hệ thống. 1 CN, Trường Đại học Quảng Nam 16 BỘ BẢO MẬT IP (IPSEC) TỐC ĐỘ CAO 10GBGS TRÊN FPGA Tấn công truyền lại: Người sử dụng trái phép đứng chắn ngang việc truyền tin hợp lệ và sử dụng lại nó để truyền lại, và có thể thay đổi hành vi của hệ thống bằng cách thiết lập lại một số trạng thái trước đó của hệ thống. Tấn công từ chối dịch vụ (DoS): Tấn công DOS làm giảm hiệu suất của hệ thống bằng cách làm quá tải của hệ thống với một lưu lượng quá lớn. Nó là nguyên nhân làm mất giao tiếp và từ chối dịch vụ. Dịch vụ bảo vệ hệ thống có thể được chia bốn lại như sau: Bí mật: Đảm bảo rằng chỉ những đơn vị có thẩm quyền mới có quyền xem nội dung dữ liệu được bảo vệ bằng cách mã hóa dữ liệu như AES hoặc các thuật toán khác để đảm bảo dữ liệu an toàn Xác thực: Xác thực để đảm bảo chắc chắn thực thể truyền là một và nó là duy nhất. Thực thể xác thực bao gồm xác thực ngang hàng và xác thực nguồn gốc dữ liệu. Chữ ký số được tạo bởi các thuật toán công khai như RSA và El-Gaman là rất khó để giả mạo. Tính toàn vẹn: Đảm bảo rằng dữ liệu nhận được là chính xác giống như dữ liệu gửi đi, đảm bảo không bị chỉnh sửa, chèn, xóa hay thay thế xảy ra trong quá trình truyền dữ liệu. Message Authentication Code (MAC) được tính bằng cách băm khóa bí mật với thông điệp nhằm cung cấp tính toàn vẹn trên văn bản ký. Kiếm soát truy cập: Bảo vệ tài nguyên từ việc sử dụng trái phép. Các chính sách an ninh tại điểm truy cập mạng được xác định để kiểm soát ai có thể được quyền truy cập và có những điều kiện gì có quyền truy cập. Bí mật khóa mã hóa và khóa hàm băm rất cần thiết cho các dịch vụ an ninh được xác định ở trên. Giao thức trao đổi khóa, chẳng hạn IKEV cung cấp một cơ chế thương lượng, đàm phán và trao đổi chia sẽ khóa bí mật giữa các thực thể truyền và nhận. Sự đồng thuận chung về tầm quan trọng liên quan đến bảo mật mạng đã dẫn đến sự phát triển của IPSec. IPSec đã cung cấp một tiêu chuẩn để đảm bảo thông tin liên lạc trên mạng Internet. Nó được thiết kế tương thích với Ipv4 và Ipv6. Nhiều công ty, như Cisco đã triển khai IPSec trong sản phẩm của họ. Trong bài báo này tôi trình bày việc thực hiện IPSec trong chế độ đường hầm (tunnel) trên kit phát triển ML605 với chíp FPGA Virtex 6. 2. Nội dung 2.1. IPSec Freamwork Giao thức IPsec bao gồm Authentication Hearder (AH) và Encapsulating Security Payload (ESP) tất cả AH và ESP đều sử dụng số sequence number để bảo vệ gói IP chống tấn công lặp lại. Thêm vào đó AH cũng cấp xác thực dữ liệu còn ESP cung cấp vừa xác thực vừa mã hoá dữ liệu. Mỗi giao thức cung cấp hai chế độ hoạt động đó là 17 LÊ THỊ THANH BÌNH chế độ vận chuyển (transport) và chế độ đường hầm (tunnel). Transport mode là được sử dụng giao tiếp cuối đến cuối (end-to-end) nơi mà hai host Ipsec là điểm cuối. Trong chế độ đường hầm thường được sử dụng khi đích của gói dữ liệu khác từ cổng định tuyến khác, chúng cung cấp dịch vụ IPSec cho gói dữ liệu chuyển tiếp. Trong bài báo này, tôi tập trung mô tả chế độ đường hầm (turnnel mode). Chế độ đường hầm trong giao thức ESP thêm phần header ESP vào trước IP header và thêm phần IP header mới vào trước ESP. Thêm phần dữ liệu (trailer) vào phần cuối gói tin. Giao thức ESP hoạt động trong chế độ đường hầm như hình sau: Hình 1. Giao thức ESP ở chế độ đường hầm Trong giao thức AH chế độ đường hầm phần header AH được chèn vào trước IP header và IP header mới cũng được chèn vào trước AH header. Giao thức AH hoạt động chế độ đường hầm như hình 2 sau: Hình 2. Giao thức AH ở chế độ đường hầm 2.2. IPSec trên Xilinx board ML605 (Virtex-6) Trong những năm gần đây, Field Programmable Gate Arrays (FPGA) đã đạt được đầy đủ khả năng để thực hiện những tính năng phức tạp về xử lý mạng máy tính trong việc lập trình phần cứng. Các thiết bị mạng sử dụng FPGA cho thấy sự cân bằng giữa hiệu suất và tính linh hoạt, chúng làm cho FPGA thích hợp tối ưu tài nguyên cho giải pháp ASIC. Xilinx Virtex-6 là dòng có tốc độ cao, hỗ trợ hệ thống xử lý nhúng (Embedded system) trên McroBlaze 32bit RISC, Tri-speed Ethernet, DDR3 SO-DIMM, các cổng IO giao tiếp mở rộng FPGA Mezzanine Card (FMC). Bộ IPSec tốc độ cao trong bài báo được thực hiện trên chíp FPGA Virtex6 board ML605 nhằm tận dụng lợi thế của bộ vi xử lý nhúng, khối RAM trên chíp cho phép 18 BỘ BẢO MẬT IP (IPSEC) TỐC ĐỘ CAO 10GBGS TRÊN FPGA thực hiện lưu trữ khóa mở rộng cho khối AES. MicroBlaze thực hiện nhúng OS và chạy các chương trình ứng dụng như IKEv2. 2.3. Thực hiện trên FPGA 2.3.1. Phần mềm Phương thức trao đổi khóa tự động bằng phần mềm Racoon với thuật toán trao đổi khóa IKEV2 là phiên bản nâng cao cho giao thức trao đổi khóa, tăng cường chức năng thực hiện trao đổi khóa và xác thực. Phần mền Racoon được chay trên hệ điều hành RTOS ecos cho phép tối ưu hệ thống và kết hợp phương thức trao đổi khóa, mã hóa và xác thực được dễ dàng, linh hoạt. 2.3.2. Phần cứng Bộ IPSec thực hiện bằng phần cứng cho phép thay đổi số lượng bộ mã hóa và xác thực AES, HMAC-SHA-256 trong thiết kế có thể cấu hình để đáp ứng các ứng dụng khác nhau. Sơ đồ kiến trúc hệ thống Hình 3. Sơ đồ kiến trúc IPSec thực hiện bằng phần cứng Khối IPSec đó là những bộ mã hóa AES và xác thực HMAC(SHA256) được thực hiện bằng phần cứng trên FPGA. Để Kernel RTOS giao tiếp được với khối IPSec cần phải có driver. Ở trên cùng là các ứng dụng trong mạng, ứng dụng IKEV thực hiện việc trao đổi khóa cho IPSec. Sơ đồ kiến trúc phần cứng IPSec trên FPGA 19 LÊ THỊ THANH BÌNH Hình 4. Sơ đồ khối thực hiện IPSec 2.3.3. Mô phỏng Bằng phương pháp mô phỏng, với 4 giao thức IP AH và 4 core IP AES và HMAC kết nối bên trong IPSec thực hiện đồng thời cho phép tăng tốc độ mã hóa và xác thực. Băng thông thực hiện 6.44Gbs ở mức trung bình chiều dài 512 byte gói dữ liệu dưới đồng hồ tốc độ 214MHz với 68 xung nhịp và 4 core mã hóa và xác thực thực hiện đồng thời. Việc thực hiện IPSec trên kit Virtex-6 XC6VLX240T. Phương pháp thiết kế sử dụng kỹ thuật pipeline cho việc nâng cao tốc độ và thiết kế giảm công suất để giảm tiêu hao năng lượng. 2.4. Kết quả đạt được 2.4.1. Kết quả mô phỏng Hình 5. Tài nguyên AES core Hình 6. Tốc độ AES core 20 BỘ BẢO MẬT IP (IPSEC) TỐC ĐỘ CAO 10GBGS TRÊN FPGA Hình 7. Kết quả mô phỏng AES core trên ModeSim Kết quả trên lý thuyết khi chạy HMAC (SHA256): Key = 0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b (20 bytes) Data = 4869205468657265 (“Hi There”) PRF-HMAC-SHA-256 = b0344c61d8db38535ca8afceaf0bf12b 881dc200c9833da726e9376c2e32cff7 Kết quả chạy HMAC mô phỏng trên Modelsim: Key in Data in Data out Hình 8. Tốc độ của core HMAC Hình 9. Tài nguyên của core HMAC 21 LÊ THỊ THANH BÌNH Hình 10. Kết quả mô phỏng chạy HMAC(SHA256) trên Modelsim 2.4.2. Kết quả chạy thực tế khi chạy toàn bộ hệ thống: [root@localhost sbin]# tcpdump -i p2p1 -v | grep 172.17.67.201 tcpdump: listening on p2p1, link-type EN10MB (Ethernet), capture size 65535 bytes 172.17.67.201 >localhost.localdomain: ESP(spi=0xc3c2b98f,seq=0x1), length 120 localhost.localdomain >172.17.67.201: ESP(spi=0xc363183b,seq=0x1), length 200 172.17.67.201 >localhost.localdomain: ESP(spi=0xc3c2b98f,seq=0x2), length 120 localhost.localdomain >172.17.67.201: ESP(spi=0xc363183b,seq=0x2), length 120 172.17.67.201 >localhost.localdomain: ESP(spi=0xc3c2b98f,seq=0x3), length 120 localhost.localdomain >172.17.67.201: ESP(spi=0xc363183b,seq=0x3), length 120 172.17.67.201 >localhost.localdomain: ESP(spi=0xc3c2b98f,seq=0x4), length 120 localhost.localdomain >172.17.67.201: ESP(spi=0xc363183b,seq=0x4), length 120 172.17.67.201 >localhost.localdomain: ESP(spi=0xc3c2b98f,seq=0x5), length 120 localhost.localdomain >172.17.67.201: ESP(spi=0xc363183b,seq=0x5), length 120 16:46:59.304792 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has localhost. localdomain tell 172.17.67.201, length 46 Key in Data in Data out 22 BỘ BẢO MẬT IP (IPSEC) TỐC ĐỘ CAO 10GBGS TRÊN FPGA 172.17.67.201 >localhost.localdomain: ESP(spi=0xc3c2b98f,seq=0x6), length 120 localhost.localdomain >172.17.67.201: ESP(spi=0xc363183b,seq=0x6), length 120 172.17.67.201 >localhost.localdomain: ESP(spi=0xc3c2b98f,seq=0x7), length 120 localhost.localdomain >172.17.67.201: ESP(spi=0xc363183b,seq=0x7), length 120 172.17.67.201 >localhost.localdomain: ESP(spi=0xc3c2b98f,seq=0x8), length 120 localhost.localdomain >172.17.67.201: ESP(spi=0xc363183b,seq=0x8), length 120 172.17.67.201 >localhost.localdomain: ESP(spi=0xc3c2b98f,seq=0x9), length 120 localhost.localdomain >172.17.67.201: ESP(spi=0xc363183b,seq=0x9), length 120 172.17.67.201.isakmp > localhost.localdomain.isakmp: isakmp 2.0 msgid 00000000: parent_sa child_sa: localhost.localdomain.isakmp >172.17.67.201.isakmp: isakmp 2.0 msgid 00000000: parent_sa child_sa[IR]: 172.17.67.201.isakmp > localhost.localdomain.isakmp: isakmp 2.0 msgid 00000001: child_sa inf2: localhost.localdomain.isakmp > 172.17.67.201.isakmp: isakmp 2.0 msgid 00000001: child_sa inf2[IR]: 172.17.67.201 >localhost.localdomain: ESP(spi=0xc818c848,seq=0x1), length 120 localhost.localdomain >172.17.67.201: ESP(spi=0xcbc9e516,seq=0x1), length 120 16:47:04.454742 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 172.17.67.201 tell localhost.localdomain, length 28 16:47:04.455153 ARP, Ethernet (len 6), IPv4 (len 4), Reply 172.17.67.201 is-at 00:0a:35:00:01:22 (oui Unknown), length 46 172.17.67.201 >localhost.localdomain: ESP(spi=0xc818c848,seq=0x2), length 120 localhost.localdomain >172.17.67.201: ESP(spi=0xcbc9e516,seq=0x2), length 120 172.17.67.201 >localhost.localdomain: ESP(spi=0xc818c848,seq=0x3), length 120 localhost.localdomain >172.17.67.201: ESP(spi=0xcbc9e516,seq=0x3), length 120 172.17.67.201 >localhost.localdomain: ESP(spi=0xc818c848,seq=0x4), length 120 localhost.localdomain >172.17.67.201: ESP(spi=0xcbc9e516,seq=0x4), length 120 172.17.67.201 >localhost.localdomain: ESP(spi=0xc818c848,seq=0x5), length 120 172.17.67.201 >localhost.localdomain: ESP(spi=0xc818c848,seq=0x6), length 120 3. Kết luận Kiểm soát an toàn và cấu hình thiết bị mạng từ xa là cần thiết để bảo vệ hệ thống khỏi bị tấn công. Các thiết bị điện tử hiện đại sử dụng công nghệ FPGA cung cấp hiệu 23 LÊ THỊ THANH BÌNH suất cao và khả năng lập trình phần cứng. Lỗi xứ lý Microblaze nâng cao khả năng xử lý nhúng. Bằng việc thực hiện chức năng không tốn nhiều tài nguyên xứ lý trong phần mềm được chạy trên Microblaze và phần chức năng tốn nhiều thời gian xứ lý được thực hiện trên phần cứng. Hiệu suất hệ thống tổng thể đạt được cao có thể thực hiện trên một chíp đầy đủ các tính năng. Trong bài báo này, tôi trình bày một bộ IPSec trên FPGA Xilinx Virtex-6, bộ IPSec với chức năng quản lý, đàm phán và trao đổi khóa vào phần mềm Racoon chạy trên Microblaze. Phần cứng thực hiện chức năng mã hóa và xác thực trong IPSec trên việc xử lý dữ liệu với việc can thiệp của phần mềm là tối thiểu. Ưu điểm của bộ IPSec là tách biệt giữa phần dữ liệu với phần điều khiển, nơi mà phần cứng có thể kiểm soát toàn bộ dữ liệu và phần mềm chỉ điều khiển khi cần thiết. Thông qua việc thực hiện các core AES và HMAC-SHA256, tôi thấy rằng bộ IPSec đặt vào một con chíp FPGA duy nhất mà vẫn đạt được tốc độ cao 10Gbs và có thể áp dụng đến thiết bị mạng để cung cấp các kênh giao tiếp và điều khiển thiết bị đảm bảo an toàn. TàI LIỆU THAM KHẢo Dương Anh Đức (2005), [1] Mã hóa và ứng dụng, Trường Đại học quốc gia TP. Hồ Chí Minh. Nguyễn Đức Thọ (2012), G[2] iao thức liên mạng máy tính an toàn IPSEC và các giao thức trao đổi khóa ứng dụng trong bảo mật thông tin kinh tế xã hội, Học viện công nghệ bưu chính viễn thông. FREESWAN. Online:[3] FIPSP-180-1 (1995), Apr.[4] FIPS-197(2001):AdvancedEncryptionStandard(AES).[5] encryption/aes/ Road Lien (2003), [6] FPGA implementation of SHA-1 sercure hash standard. Man Young Rhee (2003), [7] Internet security. J. W. Lockwood, J. S. Turner, and D. E. Taylor (Feb. 2000), [8] Field Pro-grammable Port Extender (FPX) for Distributed Routing and Queuing. In ACM International Symposium on Field Pro-grammable Gate Arrays (FPGA’2000), Monterey, CA, USA. J.W. Lockwood, C. Zuver, C. Neely, J.Moscola, S. Dharma-purikar, and D. Lim. [9] An Extensible (2003), System-On-Programmable-Chip, Content-Aware Internet Firewall. In Field Programmable Logic and Applications (FPL’2003), Lisbon, Portugal. 24 BỘ BẢO MẬT IP (IPSEC) TỐC ĐỘ CAO 10GBGS TRÊN FPGA Title: THE HIGH-SPEED INTERNET PRoToCoL SECURITY (IPSEC) - 10GBGS oN THE FIELD PRoGRAMMABLE GATE ARRAY (FPGA) LE THI THANH BINH Quang Nam University Abstract: In this paper, we propose an Internet Protocol Security on a FPGA Xilinx Virtex-6. IPSec Protocol is an important protocol suite using in the Internet Protocol Layer. Normally, IPSec Protocol is used by software such as Windows or Linux. However their processor, encrypting sensitive data, authentication in the CPU take the time to handle; so it is very difficult to process the high-speed IPSec system. Thus, I will present a high-speed IPSec based on a combination of hardware and software. The Racoon Software with the function of management, negotiation and Internet Key Exchange (IKEv2) that implemented in the Microblaze soft processor core. The hardware has been performed in the FPGA logic block with the significant function of the data performance for the Advanced Encryption Standard (AES) and the Keyed-Hash Message authentication Code (HMAC). Then, IPSec and CPU become a co-processor protocol that helps the system to implement with a high-speed – 10Gbps. Keywords: IPSec, IP security, IPSec Protocol, network security.
File đính kèm:
- bo_bao_mat_ip_ipsec_toc_do_cao_10gbgs_tren_fpga.pdf