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.

pdf 10 trang kimcuc 6100
Bạn đang xem tài liệu "Bộ bảo mật IP (Ipsec) tốc độ cao 10GBGS trên FPGA", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

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

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:

  • pdfbo_bao_mat_ip_ipsec_toc_do_cao_10gbgs_tren_fpga.pdf