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