CHƯƠNG 2 TÌNH HÌNH NGHIÊN CỨU TRONG VÀ NGOÀI NƯỚC
2.4 Một số đề tài nghiên cứu ngoài nước tham khảo cho luận văn
2.4.1 Thực hiện bộ giao thức IPsec cho mạng multigigabit trên FPGA 9
Đề tài: Mateusz Korona, Krzysztof Showron, Mateusz Trzepinski, Mariusz Rawski (2017), “Thực hiện bộ giao thức IPsec cho mạng multigigabit trên FPGA”, Poland
2.4.1.1 Tóm tắt đề tài
IPsec là một bộ các giao thức bổ sung tính bảo mật cho giao tiếp ở cấp IP. Tuy nhiên, sức mạnh tính toán cao được yêu cầu bởi các thuật toán IPsec giới hạn hiệu năng kết nối mạng. Bài viết trình bày việc triển khai phần cứng cổng IPsec trong FPGA. Hiệu quả của giải pháp được đề xuất cho phép sử dụng IPsec trong các mạng có tốc độ dữ liệu tầm vài Gbit/s.
2.4.1.2 Giới thiệu
Cùng với sự phát triển không ngừng của internet, những trang web toàn cầu càng dễ bị tổn thương bởi nhiều cuộc tấn công mạng. Dữ liệu được truyền qua nhiều bộ định tuyến (router), và kết quả là dễ bị chặn (packet sniffing). Các phương thức tấn công chủ động, bao gồm giả mạo gói dữ liệu, cũng được sử dụng. Toàn cầu hóa về mặt kinh tế đã tăng nhu cầu về các cơ chế truyền thông an toàn cho các công ty quốc tế và bảo vệ lợi nhuận được tạo ra bởi kinh doanh điện tử, điều này đã thúc đẩy tạo ra các cơ chế an toàn thích hợp.
Mặc dù các giải pháp nhúng được áp dụng trong các lớp cao hơn của mô hình OSI (như SSL hoặc SSH), công việc trên IPsec, bộ giao thức cung cấp bảo mật trong lớp thứ ba của OSI RM, đã được bắt đầu. Ưu điểm chính của nó là “tính minh bạch” cho các lớp cao hơn. Nó hoạt động với các giao thức mạng khác nhau và cho phép dễ dàng chuyển đổi giữa các thuật toán mã hóa (trong trường hợp vi phạm chuẩn an toàn). Với IPsec, có thể tạo ra VPN (Mạng riêng ảo – Virtual Private Networks) phù hợp với nhu cầu kinh doanh điện tử nói trên.
Tồn tại một loạt các giải pháp IPsec có sẵn. Việc triển khai phần mềm nguồn mở chỉ phù hợp cho sử dụng cá nhân (ví dụ: Linux OpenWRT distribution [19], được thiết kế cho các bộ định tuyến gia đình, cung cấp thông lượng hàng chục Mbit/s). Các giải pháp hiệu quả hơn đòi hỏi tài nguyên phần cứng nhiều hơn (hơn chục lõi bộ xử lý) để
đạt được thông lượng tối đa là 1Gbit/s (dự án strongSwan [21]). Triển khai thương mại thường sử dụng hỗ trợ phần cứng (ví dụ: thư viện Intel IPsec được thiết kế cho bộ vi xử lý Intel Architecture với bộ lệnh mở rộng [22]). Những giải pháp này cung cấp thông lượng cao hơn (theo thứ tự của một số Gbit/s, [23] [24]), nhưng rất tốn kém. Có các triển khai thương mại của IPsec bằng cách sử dụng FPGA [25] hoặc GPU [26] nhưng chúng không cung cấp tất cả các tính năng IPsec (ví dụ: xử lý tiêu đề lưu lượng IP hoặc bất kì chức năng cơ sở dữ liệu IPsec nào).
10 2.4.1.3 Cấu trúc IP
IPsec và đặc biệt là subprotocol ESP (Encapsulating Security Payload) cung cấp tính bảo mật, tính toàn vẹn và tính xác thực của dữ liệu được truyền đi. Chế độ hoạt động đường hầm (Tunnel operation mode) cho phép tạo mạng VPN.
Hình 2.1 Gói IP bảo mật với giao thức ESP qua 2 chế độ tunnel - transport Trong chế độ đường hầm – tunnel mode (hình 2.1) [20] gói dữ liệu ban đầu được đệm, do đó mật mã khối có thể được áp dụng (chiều dài của thông điệp phải gấp nhiều lần chiều dài khối mã hóa). Bộ đệm cũng chứa thông tin phát sinh từ cấu trúc của ESP (ESP trailer). Sau khi hoạt động đệm, gói được mã hóa. Sau đó, ESP header được đính kèm. Nó chứa chỉ số tham số bảo mật – một giá trị xác định kênh SA an toàn (Security Association) thông qua đó gói được truyền đi.
Nhờ SPI, gateway đích có thể xác định các thuật toán và khóa mã hóa thích hợp để giải mã gói tin. Cuối cùng, ICV (Integrity Check Value) được nối thêm (ESP auth, ví dụ: mã xác thực thông điệp khóa băm có khóa – HMAC). Tính toán lại giá trị này cho phép xác minh tính toàn vẹn và tính xác thực của gói tin. Cuối cùng, “header IP” bên ngoài được đính kèm.
Hình 2.2 trình bày kiến trúc của hệ thống Ipsec [20]. Cơ sở dữ liệu chính sách bảo mật là việc thực hiện chính sách bảo mật. SPD stores selectors (ví dụ: địa chỉ IP, số cổng, ….) là cơ sở để quyết định, nếu và cách thức mỗi gói cụ thể cần được bảo vệ. SA (Security Association) lưu trữ thông tin cần thiết để bảo mật gói (ví dụ: khóa mã hóa).
Mô đun Internet Key Exchange (IKE) có thể tự động thiết lập các kênh an toàn mới (Security Association) và mô-đun được đánh dấu là IPsec chịu trách nhiệm cho tất cả các hoạt động mã hóa và đóng gói gói tin.
Hình 2.2 Kiến trúc của hệ thống IPsec
11 2.4.1.4 Thiết kế Prototype
Một nguyên mẫu của cổng IPsec được thiết kế, tối đa hóa lợi ích của xử lý gói phần cứng, bằng cách thực hiện tất cả các giai đoạn FPGA, trái ngược với các giải pháp khác chỉ sử dụng phần cứng làm máy gia tốc cho các chức năng quan trọng. Thiết kế được phân chia thành mặt phẳng dữ liệu và mặt phẳng điều khiển phần mềm (bao gồm IKE module)
- Thực hiện prototype: Hình 2.3 trình bày sơ đồ bảo mật gói của thiết kế (AST là viết tắt của giao diện AXI4-Stream). Sau khi tiếp nhận, các gói IP được chuyển đến bộ điều khiển chính sách bảo mật đơn giản. Các bản ghi thích hợp được tìm thấy trong cơ sở dữ liệu SPD, dựa trên hàm băm của Pearson được tính từ bộ IP header selection.
Mô-đun này xác định xem dữ liệu có cần được bảo mật hay không (bypas path). Quá trình bảo mật dữ liệu được thực hiện bởi mô-đun IPsec_outbound. Các bước xử lý tiếp theo là: tra cứu cơ sở dữ liệu SAD, đóng gói ESP và mã hóa DES. Bước cuối cùng là tính toán băm HMAC-SHA1. Gói được lưu trữ FIFO, cho đến khi việc tính toán cuối cùng kết thúc.
- Phân tích hiệu suất prototype: Prototype của cổng IPsec đã được thử nghiệm trên board Terasic DE2-70 với Altera’s Cyclone II FPGA. Tần số cực đại của thiết kế là 86.72 MHz với việc sử dụng 20% logic. Dựa trên công thức:
𝑅𝑏[𝑀𝑏𝑖𝑡 𝑠 ] =
8 ∗ 𝑁 [ 𝑏𝑦𝑡𝑒 𝑝𝑎𝑐𝑘𝑒𝑡] 𝑀 [𝑐𝑦𝑐𝑙𝑒𝑠
𝑝𝑎𝑐𝑘𝑒𝑡]
∗ 𝐹[𝑀𝐻𝑧]
Với N – kích thước của packet, M – số lượng chu kì cần thiết để xử lý packet, F – tần số xung clock tối đa của thiết kế, Thông lượng của IPsec gateway cho chiều dài của packet được tính toán bên dưới [20]:
Bảng 2.1- Hiệu suất của Prototype cổng IPsec Kích thước
packet [byte] Chu kỳ / gói Rb [Mbit/s]
64 520 85.39
240 794 209.70
1500 2682 437.44
Hình 2.3 Sơ đồ khối của prototype
12 Tính chính xác của hoạt động prototype đã được xác minh với mô phỏng chức năng và bao gồm các kiểm tra packet và sniffer (Ostinato và wireshark tương ứng). Phân tích hiệu suất thử nghiệm mẫu được cho phép xác định ba yếu tố chính quan trọng để
tăng thông lượng.
“Nút cổ chai” (bottleneck) của prototype là mô-đun chịu trách nhiệm tính toán băm HMAC. Thuật toán HMAC yêu cầu tính toán SHA-1 được tính hai lần – đối với gói IP 240 byte, phải mất 86% thời gian xử lý (685 chu kì trong tổng số 794 chu kì).
Một vấn đề khác là thiết kế bộ xử lý bảo mật – chức năng IPsec được chia giữa bộ điều khiển chính sách bảo mật và mô-đun phức tạp thực hiện tất cả các hoạt động khác. Trong giai đoạn tính toán băm HMAC, đây là giai đoạn dài nhất trong toàn bộ quá trình, các tài nguyên chịu trách nhiệm đóng gói IP và ESP hoặc mã hóa dữ liệu vẫn chưa được sử dụng.
Mặt khác, sử dụng logic FPGA thấp hơn (20%) theo tiêu chuẩn ngày nay Cyclone II FPGA cho phép áp dụng các phương pháp tối ưu hóa phần cứng, chẳng hạn như đường ống (pipelining) và tính song song (paralellization) trong quá trình xử lý.
2.4.1.5 Cổng IPsec
Phân tích prototype đã trở thành cơ sở để phát triển kiến trúc cổng IPsec phần cứng mới. Các phương pháp tối ưu hóa phần cứng tiên tiến đã được áp dụng để thực hiện, dẫn đến tăng tốc độ xử lý và sử dụng logic tốt hơn (Hình 2.4) [20]
Các chức năng IPsec được chia thành nhiều phần của thiết kế. Mỗi phần có thể
chứa nhiều mô-đun thực hiện một giai đoạn xử lý cụ thể, làm việc song song. Các phần được phân tách bằng hàng đợi FIFO và các công tắc vòng tròn, phân phối các gói giữa các mô-đun trong phần cụ thể. Kết quả là, nhiều gói có thể được xử lý cùng một lúc.
Việc sử dụng các công tắc cho phép kiểm soát payload của các phần xử lý trong phần đã cho. Tăng số lượng mô-đun tính toán HMAC tốn nhiều thời gian nhất dẫn đến tăng thông lượng. Lợi thế của kiến trúc được trình bày cũng là ứng dụng được đơn giản hóa của nhiều thuật toán mã hóa khác nhau (ví dụ: một số thuật toán mã hóa ở các chế độ khác nhau trong phần mã hóa).
Hình 2.4 Kiến trúc của cổng IPsec
13 2.4.1.6 Tối ưu hóa mô-đun HMAC-SHA1
Để cải thiện hiệu suất của cổng IPsec, tối ưu hóa các mô-đun riêng lẻ cũng được thực hiện. Sự chú ý đặc biệt dành cho mô-đun HMAC-SHA1, bởi vì hiệu quả của nó là sự cắt giảm tốc độ xử lý quan trọng trong prototype. Hình 5 trình bày thuật toán HMAC [27]
Hàm băm SHA-1 được tính từ gói IP với giá trị i_key_value. Chuỗi các bit được chia thành khối 512 bit, được xử lý riêng lẻ. Trong giai đoạn thứ hai, giá trị o_key_pad được thêm trước vào hàm băm và được tính toán trước đó, sau đó toàn bộ quy trình được lặp lại. Cuối cùng, tính toán băm HMAC 160 bit thu được, sẵn sàng để được gắn vào gói bảo mật. Các khối i_key_pad và o_key_pad là kết quả của thao tác XOR được thực hiện trên khóa và hai hằng số được xác định trong RFC 2014 [27].
Khóa tương tự được sử dụng cho tất cả các gói IP được bảo vệ bởi một kênh SA.
Do đó, có thể tính toán băm SHA-1 của các khối i_key_pad và o_key_pad và mô-đun SHA-1 chỉ được khởi tạo đúng cách. Tối ưu hóa này giúp rút ngắn thời gian tính HMAC tới 160 chu kỳ xung clock.
Một nhiệm vụ quan trọng khác là giảm thời gian cần thiết để xử lý khối 512 bit trong thuật toán SHA-1 [28]. Rất tiếc, việc bỏ vòng lặp của thuật toán phần cứng (ví dụ:
tính toán 2 trong số 80 vòng trong một chu kỳ clock) dẫn đến việc tăng số lượng critical path và giảm tần số tối đa của thuật toán.
Giải pháp của vấn đề này đã được đề xuất trong bài báo [29]. Thuật toán SHA-1 đã được sửa đổi bằng cách thêm các biến mới. Việc thực hiện thuật toán được cải thiện đã giảm thời gian xử lý khối 512 bit xuống 40 chu kì clock (ban đầu là 80 chu kì) mà không làm giảm tần số cực đại của thiết kế.
2.4.1.7 Những tối ưu hóa về mặt kiến trúc
Chiều rộng của bus nội bộ (internal bus) tăng từ 64 lên 128 bit (kích thước của khối AES) để cải thiện hiệu năng. Hai đường đường ống pipeline (64 bit width) được đặt trong các mô-đun mã hóa DES-ECB.
Việc sử dụng nhiều lõi xử lý song song đã tạo ra một vấn đề trong việc cung cấp quyền truy cập vào cơ sở dữ liệu của SA. Để giải quyết điều này, hệ thống trọng tài (arbiter system) được thiết kế. Hơn nữa, việc truy cập vào cơ sở dữ liệu đã được chuyển sang một miền clock riêng biệt, bởi vì bộ nhớ DDR thường có thể được gắn với tần số cao hơn nhiều so với các bộ phận thiết kế khác.
Hình 2.5 Sơ đồ thuật toán HMAC-SHA1
14 2.4.1.8 Phân tích hiệu năng
Thiết kế đã được thử nghiệm với bo mạch Terasic DE5-Net mới được trang bị với Stratter V FPGA của Altera. Tổng hợp cổng IPsec trong các cấu hình khác nhau được thực hiện. Bảng 2.2 trình bày các kết quả tổng hợp cho các cấu hình DES. Trong cột cấu hình, số lượng bộ điều khiển bảo mật, bộ điều khiển, mô-đun mã hóa và mô- đun HMAC trong mỗi phần được liệt kê tương ứng.
Bảng 2.2 Kết quả của việc thực hiện thiết kế với thiết lập DES
Thiết lập Fmax [MHz] Logic tiêu hao
4/4/4/4 102.79 16%
4/4/4/8 104.04 20%
8/8/8/16 100.65 38%
Phương pháp ước lượng thông lượng giống như trong prototype được sử dụng để
tính toán thông lượng của mỗi cấu hình. Cần lưu ý rằng, lợi ích của kiến trúc mới được hiển thị khi luồng dữ liệu đang được xử lí. Bảng 2.3, 2.4, 2.5 [20] và thông lượng (Mbit/s) cho các luồng dữ liệu được trình bày.
Bảng 2.3 Thông lượng cho Packet 64 Bytes
Thiết lập Số lượng gói trong stream
16 32 64 128
4/4/4/4 1137.91 1253.06 1319.84 1355.97 4/4/4/8 1691.06 2029.28 2254.75 2387.38 8/8/8/16 1940.06 2780.86 3550.16 4120.05 Bảng 2.4 Thông lượng cho Packet 240 Bytes
Thiết lập Số lượng gói trong stream
16 32 64 128
4/4/4/4 2363.55 2526.17 2616.16 2663.61 4/4/4/8 3699.20 4342.54 4756.11 4979.33 8/8/8/16 4218.24 5784.79 7103.89 8018.07 Bảng 2.5 Thông lượng cho Packet 1500 Bytes
Thiết lập Số lượng gói trong stream
16 32 64 128
4/4/4/4 3239.63 3403.22 3478.30 3526.33
4/4/4/8 6139.47 7168.50 7732.62 8081.76
8/8/8/16 6185.03 7975.65 9291.33 10227.44
15 Các thử nghiệm tương tự đã được tiến hành cho cổng IPsec sử dụng mật mã khối AES trong chế độ CBC, cao hơn DES. Bởi vì phần tốn nhiều thời gian nhất trong cấu hình này là quá trình mã hóa, số lượng các mô-đun mã hóa trong các phần được tăng lên. Bảng 2.6 trình bày các kết quả tổng hợp cho các cấu hình AES [20], trong khi thông lượng thiết kế cho các luồng dữ liệu được thể hiện trong các bảng 2.7, 2.8, 2.9 [20].
Bảng 2.6 Kết quả cho việc thực hiện với thiết lập AES
Thiết lập Fmax
[MHz] Logic tiêu hao
4/4/6/4 94.07 27%
8/8/12/8 97.98 34%
Bảng 2.7 Thông lượng cho Packet 64 Bytes
Thiết lập Count of packets in stream
16 32 64 128
4/4/6/4 830.411 973.01 1064.39 1116.84 8/8/12/8 1254.14 1658.37 1976.98 2187.06 Bảng 2.8 Thông lượng cho Packet 240 Bytes
Thiết lập Count of packets in stream
16 32 64 128
4/4/6/4 1711.98 1990.24 2166.29 2266.53 8/8/12/8 2537.90 3355.57 4056.53 4424.76 Bảng 2.9 Thông lượng cho Packet 1500 Bytes
Thiết lập Count of packets in stream
16 32 64 128
4/4/6/4 2598.65 2755.95 3032.10 3076.89 8/8/12/8 3362.10 4580.40 4961.40 5518.80 2.4.1.9 Kết luận
Đề tài này trình bày việc triển khai phần cứng cổng IPsec trong FPGA. Nhờ sử dụng các phương pháp thiết kế tiên tiến và tối ưu hóa cho việc thực hiện nên đã đạt được tốc độ xử lý cao. Điều này cho phép áp dụng giải pháp được đề xuất trong các mạng có tốc độ dữ liệu tầm Gbit/s. Kết quả trình bày chứng minh rằng việc thực hiện đề xuất có thể cạnh tranh với các giải pháp thương mại, đặc biệt là các giải pháp được thực hiện trong FPGA [25]. Điều quan trọng là nhấn mạnh, mức sử dụng logic hiện tại của Stratix V FPGA cho phép mở rộng các cấu hình cổng IPsec hiện có và cải thiện thông lượng.
Theo quan điểm thực tế của Google cùng với CWI Amsterdam gần đây đã công bố thông tin về việc tạo ra các va chạm băm SHA-1, nhóm IPsec hiện đang làm việc để
triển khai phần cứng cùng các thuật toán băm an toàn hơn như SHA-256 để chứng minh,
16 một thuật toán mã hóa dễ dàng như thế nào có thể được thay thế bằng cách sử dụng kiến trúc cổng được mô tả.