Thiết kế thiết bị định tuyến với bộ mã hóa xác thực trên FPGA hỗ trợ tăng tốc giao thức bảo mật IPSEC VPN

pdf 5 trang Gia Huy 21/05/2022 1330
Bạn đang xem tài liệu "Thiết kế thiết bị định tuyến với bộ mã hóa xác thực trên FPGA hỗ trợ tăng tốc giao thức bảo mật IPSEC VPN", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfthiet_ke_thiet_bi_dinh_tuyen_voi_bo_ma_hoa_xac_thuc_tren_fpg.pdf

Nội dung text: Thiết kế thiết bị định tuyến với bộ mã hóa xác thực trên FPGA hỗ trợ tăng tốc giao thức bảo mật IPSEC VPN

  1. Hội nghị Quốc gia lần thứ 23 về Điện tử, Truyền thông và Công nghệ Thông tin (REV-ECIT2020) Thiết kế thiết bị định tuyến với bộ mã hóa xác thực trên FPGA hỗ trợ tăng tốc giao thức bảo mật IPSEC VPN Nguyễn Phan Hải Phú, Phạm Minh Hiếu, Nguyễn Hồng Hòa, Đoàn Ngọc Cẩm, Bùi Quốc Bảo, Hoàng Trang Khoa Điện-Điện Tử, Trường Đại học Bách Khoa TP. HCM Đại học Quốc gia Thành phố Hồ Chí Minh Email: hoangtrang@hcmut.edu.vn Abstract— Trong bài báo này, chúng tôi đề xuất mô sẽ thực thi xử lý từng giai đoạn. Điều này gây ra hiện hình hệ thống tăng tốc giao thức IPsec VPN trên board tượng “nút cổ chai” khi CPU vừa phải thực hiện xử lý thiết bị định tuyến router sử dụng FPGA Artix 7 của thông tin lớp mạng vừa phải tiến hành mã hóa và giải hãng Xilinx, trong đó thực hiện mã hóa theo giải thuật mã gói tin nhận được từ lớp mạng [5]. AES-GCM. Hệ thống này sẽ bao gồm lõi IP cho giai đoạn Trong thiết kế IPsec VPN, việc thực thi xử lý gói mã hóa, xác thực sử dụng giải thuật AES-GCM 128 bit được xây dựng trên FPGA và Linux device driver để tích theo giao thức IPsec có thể làm tăng lên sự tiêu thụ tài hợp hệ thống tăng tốc mã hóa này vào các thiết bị chạy nguyên của CPU một cách đáng kể và sự tiêu thụ tài hệ điều hành Linux. Thiết bị định tuyến được thiết kế và nguyên CPU này phụ thuộc vào lưu lượng IPsec [2], chế tạo để thử nghiệm các giải thuật đề nghị và đo đạc [5]. Do đó giải pháp dựa trên phần cứng tăng tốc mã các kết quả. hóa sẽ đóng vai trò quan trọng trong việc đạt đến hiệu năng cao ở trong hệ thống lớn cũng như là một cách Keywords- Tăng tốc IPsec, AES – GCM 128 bit, giao tiếp cận hữu ích trong việc làm giảm mức sử dụng tiếp PCIe, Linux device driver. CPU ở hệ thống nhỏ và chậm. Để khắc phục các vấn đề trên, trong bài báo này, I. GIỚI THIỆU chúng tôi đề xuất mô hình thiết kế, chế tạo một hệ Trong thời đại kỉ nguyên số hiện nay, việc bảo mật thống thiết bị định tuyến router hoàn chỉnh, trong đó thông tin là một việc vô cùng quan trọng. Thông khối board chính với CPU thực thi các giai đoạn như thường, người ta thường tận dụng cơ sở hạ tầng mạng tra bảng SA, đóng gói hay gỡ gói, và chống phát lại vốn có để có thể truyền và nhận dữ liệu, hay còn gọi là trong một quy trình IPsec VPN; còn giai đoạn mã hóa mạng riêng ảo VPN. Đây là một mạng ảo được xây hay giải mã gói tin sẽ được phần cứng FPGA đảm dựng trên mạng vật lý hiện có và là một công nghệ nhiệm. Kiến trúc thực thi này còn được gọi là kiến trúc đang rất phổ biến trong hạ tầng mạng công cộng, đặc Look-aside. Chúng tôi sẽ trình bày thiết kế thiết bị biệt trong thiết kế thiết bị định tuyến router. Hiện nay, tăng tốc mã hóa xác thực sử dụng thuật toán AES – có nhiều kỹ thuật, công nghệ để triển khai mạng riêng GCM 128 bit hỗ trợ IPsec VPN trên card FPGA (theo ảo (VPN) mà nổi bật trong đó phải kể đến IPsec kiến trúc Look-aside) có giao tiếp PCIe với CPU VPN [1],[2]. IPsec là một bộ giao thức bổ sung bảo chính. Phần II miêu tả việc xây dựng mô hình thiết kế mật đối với thông tin trao đổi ở lớp mạng (network) phần mềm và FPGA của hệ thống. Các kết quả mô trong mô hình mạng TCP/IP [3],[4]. Bộ giao thức này phỏng và đánh giá hiệu năng mã hóa của thiết bị tăng ngày càng trở nên quan trọng hơn vì nó là cơ chế bảo tốc khi truyền gửi gói tin qua PCIe trên board Router mật bắt buộc trong IPv6. Khi IPsec được kích hoạt được trình bày trong phần III. Phần IV, chúng tôi sẽ trên một mạng, các nút mạng ở mỗi đầu IPsec phải đưa ra kết luận. thực hiện xử lý bổ sung để cung cấp chức năng mã hóa II. XÂY DỰNG MÔ HÌNH HỆ THỐNG và bảo vệ toàn vẹn trên gói tin IPsec. Đối với một nút mạng điển hình, việc thực thi giao thức IPsec được Sơ đồ khối tổng quát của hệ thống được chia làm mặc định sử dụng phần mềm để mã hóa và ít nhiều đã hai phần chính: Board Router với Chip xử lý SoC gây ra tình trạng giảm thông lượng mạng đi qua nút do Marvel Cortex A9 (ARMv7) chủ yếu các khối hệ làm quá tải CPU của thiết bị đó. Cụ thể hơn, một quy thống phần mềm liên quan đến việc giao tiếp với trình IPsec VPN, bao gồm các giai đoạn tra bảng SA, board FPGA. Các IP chính trong board FPGA Artix 7 đóng gói và gỡ gói, mã hóa và chống phát lại, sẽ liên quan đến việc mã hóa và di chuyển dữ liệu được được thực hiện hoàn toàn bằng phần mềm, tức là CPU mô tả trong hình 1. Về mặt vật lý, hai board giao tiếp ISBN: 978-604-80-5076-4 152
  2. Hội nghị Quốc gia lần thứ 23 về Điện tử, Truyền thông và Công nghệ Thông tin (REV-ECIT2020) với nhau bằng giao tiếp PCIe qua khe M.2. Phiên bản PCIe mà hai board hỗ trợ là PCIe 2.0, trong đó, PCIe trên board Router có 1 làn và 3 làn còn lại dùng cho mô-đun Wifi và SFP, còn trên board FPGA tùy theo cấu hình có thể chọn cấu hình 1 làn hoặc 4 làn. Hình 2 thể hiện các khối chính thực thi quy trình IPsec VPN trên board Router. Trong board Router, có các khối chức năng sử dụng hệ thống mã hóa trong nhân Linux, các khối này sẽ gọi những hệ thống con khác trong kernel mà trong quá trình hoạt động có sử dụng đến chức năng mã hóa. Phần “OS Specific” và phần “Device Specific” là hai khối phần mềm nằm trong driver chính có chức năng thực hiện chức năng mã hóa và giao tiếp với các khối phần mềm khác. Thiết bị tăng tốc bảo mật được thiết kế trên FPGA Artix 7 của hãng Xilinx bao gồm khối giao tiếp giữa Hình 2. Các khối chức năng thực hiện quiy trình IPsec VPN thiết bị và board Router, khối bộ nhớ lưu trữ thông tin trên board Router trước và sau khi xử lý, khối thực hiện xử lý mã hóa Về phần giao tiếp giữa phần cứng và phần mềm, thông tin. Cụ thể hơn, card FPGA được xây dựng trước hết, chúng tôi có định nghĩa các trường lưu trữ thành các khối: một gói tin sau khi được bóc tách từ lớp mạng để sẵn - Khối PCIe đảm nhận vai trò như khối chức năng giao sàng cho quá trình mã hóa và giải mã. Bên cạnh đó, tiếp PCIe trên card FPGA. chúng tôi có thiết kế vùng nhớ của Block RAM - Khối AXI interconnect là khối lõi IP giúp kết nối các Memory trên FPGA gồm hai phần RAM Inbound và khối IP chức năng còn lại trong hệ thống sử dụng giao RAM Outbound, trong đó mỗi vùng nhớ sẽ bao gồm thức AXI. các trường lưu trữ như trong bảng 1. - Khối RAM Inbound, RAM Outbound là các khối IP RAM và RAM controller. - Khối GPIO trạng thái mã hóa và khối GPIO điều khiển ngắt được dùng để hiển thị trạng thái và được sử dụng để khối phần mềm trực tiếp điều khiển khối mã hóa. - Khối ILA dùng để phát hiện lỗi và sửa lỗi trong quá trình phát triển. - Khối Logic điều khiển ngắt giúp khối phần mềm có khả năng tạo tín hiệu ngắt, chủ yếu sử dụng trong quá trình phát triển. Bảng 1. Trường lưu trữ các thông tin trong RAM Inbound và RAM Outbound Ngoài ra để đảm bảo tính đồng bộ cho hệ thống hoạt Hình 1. Sơ đồ khối mã hóa/giải mã trên FPGA động tốt với hiệu năng ổn định thì chúng tôi sẽ thiết kế thêm bộ điều khiển tín hiệu ngắt/hoạt động của khối mã hóa trên FPGA và khối Driver PCIe. Hình 3 mô tả tiến trình hoạt động của bộ điều khiển. ISBN: 978-604-80-5076-4 153
  3. Hội nghị Quốc gia lần thứ 23 về Điện tử, Truyền thông và Công nghệ Thông tin (REV-ECIT2020) Để tiến hành khảo sát hiệu năng mã hóa xác thực của thiết bị tăng tốc bảo mật IPsec VPN trên board Router trong hình 5, chúng tôi sẽ thực hiện bài kiểm tra bằng cách sử dụng module test để mô phỏng một quá trình yêu cầu xử lý mã hóa theo giao thức IPsec. Các gói yêu cầu mã hóa (test case) có nội dung với các trường lưu trữ như bảng 1 ở phần II sẽ được truyền xuống card FPGA và được xử lý mã hóa xác thực. Kết quả của việc mã hóa và tạo tag xác thực sẽ được đọc lên bởi JTAG (thực hiện bằng phần mềm Vivado) và được so sánh với kết quả mã hóa trong test case mẫu Hình 3. Tiến trình hoạt động của bộ điều khiển để xác minh tính đúng đắn về mặt chức năng. Hình 6 thể hiện mô hình thực hiện bài kiểm tra. Hình 4 mô tả lưu đồ thực thi của giải thuật GCM- AES 128 bit. Khối này được xây dựng gồm hai phần chính: Phần mã hóa sẽ được thực hiện qua giải thuật AES (Advanced Encryption Standard) và phần xác thực sẽ được tính toán qua giải thuật GCM (Galois Counter Mode). Hình 6. Mô hình mô phỏng quá trình yêu cầu xử lý mã hóa theo giao thức IPsec Kết quả đọc từ RAM Inbound trong bảng 2 cho thấy quá trình ghi dữ liệu xuống RAM bằng DMA hoàn toàn chính xác, đảm bảo tính toàn vẹn. Nhìn vào bảng 2, ta so sánh kết quả trong RAM Outbound ở bên cột Kết quả mã hóa bằng phần mềm và Kết quả mã bằng phần cứng cho thất hệ thống thực hiện mã hóa dữ liệu theo giải thuật GCM – AES đúng theo chức năng mà hệ thống yêu cầu. Hình 4. Lưu đồ thực thi của giải thuật GCM-AES 128bit III. KẾT QUẢ Thiết kế hệ thống router của chúng tôi trong phần II được chế tạo như trong hình 5 dưới đây để thực nghiệm, và đo đạc các kết quả. Phần III này trình bày một số kết quả chính yếu. Bảng 2. Kết quả quá trình yêu cầu xử lý mã hóa theo giao Hình 5. Thiết bị Router của chúng tôi được chế tạo để thử thức IPsec đọc từ RAM INBOUND nghiệm ISBN: 978-604-80-5076-4 154
  4. Hội nghị Quốc gia lần thứ 23 về Điện tử, Truyền thông và Công nghệ Thông tin (REV-ECIT2020) Để đánh giá được tốc độ mã hóa dữ liệu của khối GCM – AES trên FPGA Artix 7, ta ghi các dữ liệu cần mã hóa với độ dài khác nhau bằng JTAG xuống vùng RAM và tiến hành thực hiện mã hóa hoặc giải mã. Sau đó, ta đọc kết quả sau khi mã hóa/giải mã lên bằng JTAG. Tiến hành đo số chu kỳ để xử lý mã hóa (bằng Vivado) và từ đó tính được tốc độ mã hóa. Khối mã hóa xác thực hoạt động với tần số clock 100 Mhz và gói tin có độ dài tối đa 1500 bytes. Tốc độ mã hóa được tính bằng Mbps (Mega bit per second). Tốc độ mã hóa của khối được thể hiện qua bảng 3 và biểu đồ trong hình 7. Bảng 4. Kết quả kiểm tra tốc độ đọc ghi theo gói XDMA IP ở chế độ bus master Bảng 3. Tốc độ mã hóa AES GCM 128 bit Kết quả bài kiểm tra này đã thể hiện tốc độ mã hóa dữ liệu khối GCM-AES IP core sẽ tăng dần khi dung lượng dữ liệu tăng và tốc độ tăng này không đáng kể. Hình 8. Tốc độ truyền nhận theo gói XDMA IP PCIe 2.0 x1 trên Router IV. KẾT LUẬN Trong bài báo này, chúng tôi đã xây dựng, thiết kế và hiện thực thuật toán mã hóa xác thực AES – GCM thành công trên FPGA. Khối FPGA này có thể giao tiếp truyền dữ liệu với board Router qua giao tiếp Hình 7. Tốc độ mã hóa AES GCM 128 bit PCIe. Bài báo đã cho thấy được tốc độ tối đa của thiết bị tăng tốc bảo mật IPsec trên board Router khi truyền Tiếp theo, chúng tôi sẽ kiểm tra tốc độ đọc ghi theo gửi 1 gói IP trung bình là 800 Mbps. Xét về yếu tố mã gói XDMA IP ở chế độ bus master. Bài kiểm tra sẽ hóa, ta thấy rằng tốc độ mã hóa trên FPGA cho tốc độ được thực hiện với kích thước mỗi lần đọc ghi khác rất cao và đạt mục tiêu đề ra. Tuy nhiên, khi tích hợp nhau và được gửi liên tục trong thời gian 1 giây. Dựa thiết bị vào toàn hệ thống thì tốc độ mã hóa VPN sẽ bị vào số chu kỳ có dữ liệu trên kênh truyền và số chu kỳ giảm do các yêu tố chi phí xử lý của driver. Để cải đo được, ta tính được tốc độ mã hóa như sau. thiện tốc độ IPsec VPN, chúng tôi đề xuất thực hiện nhiều lõi mã hóa xác thực AES - GCM trên FPGA và sử dụng bộ đệm vòng để tối ưu hóa và giảm thiểu tác động do chi phí xử lý của driver gây ra. Bởi vì theo Kết quả của bài kiểm tra này, được thể hiện trong mô hình driver hiện tại, mỗi tiến trình truyền nhận dữ bảng 4 và hình 8, có thể được coi là tốc độ truyền dữ liệu với FPGA sẽ xử lý với 1 lõi nên khi tăng số lõi liệu tối đa thực mà toàn bộ hệ thống có thể đạt được. GCM-AES lên, ta sẽ có nhiều tiến trình truyền nhận Bài kiểm tra đã thể hiện được rằng thiết bị FPGA khi tương ứng với số lõi GCM-AES được tăng thêm. Do gắn trên Router có tốc độ đọc ghi một gói có dung đó, ta sẽ tận dụng được những khoảng thời gian trống lượng 1024 Bytes - độ dài trung bình của 1 gói IP là khi chờ ngắt và thực hiện gửi được nhiều dữ liệu hơn 800 Mbps. Tốc độ với dung lượng gói như thế này xuống card FPGA (vì thời gian xử lý mã hóa trên card được xem như là tốc độ truyền dữ liệu tối đa mà toàn rất nhanh so với thời gian xử lý truyền nhận ở trên hệ thống có thể đạt được. driver). Ngoài ra, chúng ta có thể mở rộng hệ thống và xử lý thêm nhiều chức năng, nhiệm vụ khác của giao thức ESP, ví dụ như quá trình tra bảng SA lookup. ISBN: 978-604-80-5076-4 155
  5. Hội nghị Quốc gia lần thứ 23 về Điện tử, Truyền thông và Công nghệ Thông tin (REV-ECIT2020) LỜI CẢM ƠN on Communications, 2007. Nghiên cứu này được tài trợ bởi Bộ Khoa học và [2] O. Morrison, "IPsec: Protocol Challenges and Performance Công nghệ trong khuôn khổ đề tài mã số KC.01.24/16- Analysis and Enhancements," 2014. 20. Chúng tôi xin cảm ơn Trường Đại học Bách Khoa, [3] IETF, "RFC 3566: The AES-XCBC-MAC-96 Algorithm and Its Use with IPsec". ĐHQG-HCM đã hỗ trợ thời gian, phương tiện và cơ sở [4] IETF, " RFC 4106: The Use of Galois/Counter Mode (GCM) in vật chất cho nghiên cứu này. IPsec Encapsulating Security Payload (ESP)". [5] Sameer Seth, M. Ajaykumar Venkatesulu, "Overview of TCP/IP Stack," in TCP/IP ARCHITECTURE, DESIGN ,AND TÀI LIỆU THAM KHẢO IMPLEMENTATION IN LINUX, A JOHN WILEY & SONS, INC., PUBLICATION, 2008. [1] M. G. ,. a. S. A. M. Craig A. Shue, "IPsec: Performance Analysis and Enhancement," in IEEE International Conference [6] "Linux kernel documentation," in Kernel Crypto API . ISBN: 978-604-80-5076-4 156