Tài liệu Bộ bảo mật ip (IPSEC) tốc độ cao 10GBGS trên FPGA - Lê Thị Thanh Bình: 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 s...
10 trang |
Chia sẻ: quangot475 | Lượt xem: 984 | Lượt tải: 0
Bạn đang xem nội dung tài liệu Bộ bảo mật ip (IPSEC) tốc độ cao 10GBGS trên FPGA - Lê Thị Thanh Bình, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
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.
Các file đính kèm theo tài liệu này:
- 7789_0337_2134858.pdf