.4 Giao thức trao đổi khóa không qua trung tâm xác thực

Một phần của tài liệu Bảo mật bitstream FPGA799 (Trang 70 - 78)

Các thu t toán c a viậ ủ ệc trao đổi khóa an toàn gi a SysInt và IPVend, Hình 2.4a, hoữ ặc giữa SysInt và User, Hình 2.4b, được mô t ả như dưới đây. Trong đó, khóa phiên SSKSđược t o ra b i SysInt. SysInt s d ng ạ ở ử ụ PKV mã hóa khóa phiên này và g i cho IPVend. để ử

2.3.2.1. Thuật toán 6: Thuật toán bên phía nhà tích hợp hệ thống

S1. Generate(NSuM, SSKS) S2. M0= HMAC(“ReqIP”, SID, VID, NSuM) S3. Send(“ReqIP”, SID, VID, NSuM, M0) S4. Receive(“ReqSSKS”, PKV, M1) S5. M1‟ = HMAC(“ReqSSKS”, PKV, M0) S6. If M1‟ ≠ M1 then goto 1 S S7. M2 = HMAC(EncryptedSSKS, M1) S8. Send(EncryptedSSKS, M2) S9. Receive(EncryptedIP, M3)

58

2.3.2.2. Thuật toán 7: Thuật toán bên phía nhà cung cấp IP

V1. Receive(“ReqIP”, SID, VID, NSuM, M0) V2. M0‟ = HMAC(“ReqIP”, SID, VID, NSuM) V3. If M0‟ ≠ M0 then goto V1 V4. M1= HMAC(“ReqSSKS”, PKV, M0) V5. Send(“ReqSSKS”, PKV, M1) V6. Receive(EncryptedSSKS, M2) V7. M2‟ = HMAC(EncryptedSSKS, M1) V8. If M2‟ ≠ M2 then goto V1 V9. M3 = HMAC(EncryptedIP, M2) V10. Send(EncryptedIP, M3)

2.3.2.3. Thuật toán 8: Thuật toán bên phía nhà cung cấp dịch vụ

S1. Generate(NSuM, SSKS) S2. M0= HMAC(“GetUpdate”, SID, UID, NSuM) S3. Send(“GetUpdate”, SID, UID, NSuM, M0) S4. Receive(“ReqSSKS”, PKU, M1) S5. M1‟ = HMAC(“ReqSSKS”, PKU, M0) S6. If M1‟ ≠ M1 then goto 1 S S7. M2 = HMAC(EncryptedSSKS, M1) S8. Send(EncryptedSSKS, EncryptedIP, M2)

2.3.2.4. Thuật toán 9: Thuật toán bên phía người dùng

U1. Receive(“GetUpdate”, SID, UID, NSuM, M0) U2. M0‟ = HMAC(“GetUpdate”, UID, UID, NSuM) U3. If M0‟ ≠ M0 then goto U1

U4. M1= HMAC(“ReqSSKS”, PKU, M0) U5. Send(“ReqSSKS”, PKU, M1)

U6. Receive(EncryptedSSKS, M2)

U7. M2‟ = HMAC(EncryptedSSKS, EncryptedIP, M1) U8. If M2‟ ≠ M2 then goto U1

U9. Receive (EncryptedIP)

2.3.3. Phân tích b o m t ả ậ

Độ an toàn và tính bảo mật của các tham số NSuM, độ dài khóa và các thuật toán mã hóa tương tự như đã phân tích ở phần trên 2.2.3. Phần này phân tích tiếp một số bổ sung trong giao thức trao đổi khóa an toàn.

59

Khóa của các thiết bị cụ thể có thể được tạo ra và quản lý theo nhiều cách khác nhau. Ví dụ, SKScó thể được tạo ra và xác thực bởi TAut, và được lưu trữ trong cơ sở dữ liệu của máy chủ cập nhật. Hoặc khóa phiên SSKScó thể được tính toán từ số định danh F và số chỉ sử dụng một lần NSuM: ( , ) M S K SuM SSK E F N (2.1)

Trong đó khóa KMchỉ được biết đến bởi máy chủ cập nhật. Hoặc theo một cách khác, số định danh F có thể được sử dụng như một khóa công khai thay thế để các máy chủ cập nhật trao đổi an toàn khóa bí mật SKS, SSKSvới các thiết bị đầu cuối.

Thuật toán bất đối xứng RSA được sử dụng để bảo vệ khóa đối xứng. Như đã trình

bày trong Chương 1, việc tìm khóa riêng từ khóa công khai đã biết là rất khó khăn. Nếu số nguyên tố được cho đủ lớn thì năng lực của các máy tính hiện nay không thể lấy được khóa riêng. Hơn nữa, khóa riêng không được trao đổi qua Internet, do đó nguy cơ bị rò rỉ khóa này là ít có thể xảy. Có nghĩa là việc bảo vệ khóa đối xứng khi trao đổi qua mạng Internet bằng thuật toán khóa công khai sẽ là cách thực hiện rất an toàn.

Việc đo lường mức độ bảo mật của RSA đã trình bày trong [12], Kefa Rabah cho thấy rằng phân tích số 129 số (426 bit) vào năm 1994 cần 5.000 năm MIPS (một MIPS có nghĩa -

là triệu lệnh trong một giây, và một năm MIPS là một năm làm việc của máy tính với năng lực thực hiện một triệu lệnh trong một giây). Tương đương với việc sử dụng thời gian nhàn rỗi trên 1.600 máy tính trên toàn thế giới trong thời gian tám tháng. Vì vậy, khi sử dụng thuật toán mã hóa RSA để mã hóa khóa đối xứng, sự hỗ trợ chiều dài khóa từ 512 bit đến 1024 bit là cần thiết. Bên cạnh đó, để bảo vệ các giao dịch giá trị rất cao – khóa ít nhất là 1024 bit hoặc lớn hơn nên được sử dụng.

2.4 Đánh giá và so sánh với các nghiên c u liên quan ứ

Việc c u hình l i t xa b ng cách s d ng b x ấ ạ ừ ằ ử ụ ộ ử lý nhúng đã được đề xu t b i KY ấ ở

Park và Hyuk Kim t Xilinx trong [ ]. Altera mô t làm th nào c p nh t t xa có th ừ 93 ả ế ậ ậ ừ ể được th c hi n cho các FPGA Stratix s d ng m t b x lý lõi mự ệ ử ụ ộ ộ ử ềm trong logic người dùng và m t giao di n logic c ng b ng cách s d ng m t b nh ộ ệ ứ ằ ử ụ ộ ộ ớ không bay hơi, với kh ả năng phục h i l i mồ ạ ột bitstream được lưu trữ trong vùng nh ớ không bay hơi [ ]. Tuy 94

nhiên, các khía c nh an toàn c a b n c p nh t t ạ ủ ả ậ ậ ừ xa không được xem xét.

Saar Drimer [ ] 31 đã đề xuất một giao thức để ngăn ngừa các cuộc tấn công phát ạil

bitstream đã mã hóa và xác thực. Ở trong giao thức của mình Drimer đã đề nghị sử dụng ,

một nonce cho phía máy chủ cập nhật và nonce trong vùng nhớ không bay hơi của FPGA. Tuy nhiên, trong giao thức của Drimer chưa xem xét đến yếu tố cấu hình lại được từng

phần, trao đổi khóa như thế nào và thuật toán mã hóa là cố định không thay đổi linh hoạt được. Badrignans và đồng sự [ ] 78 đề xuất bổ sung logic cấu hình mã hóa cứng để ngăn

60

chặn phát lại bitstream cũ. Họ sử dụng một nonce trong quá trình xác thực, và một cơ chế cảnh báo cho nhà phát triển về sự thất bại trong cập nhật của nó.

Tuy nhiên, các nghiên cứu trên đây vẫn chưa xem xét một cách đầy đủ các khía cạnh của một giải pháp tổng thể cho bài toán bảo mật bitstream trong các hệ thống nhúng cấu hình lại được từng phần dựa trên FPGA khi cập nhật từ xa qua mạng công cộng với nhiều rủi ro trên đường truyền dẫn. Đó là lý do mà t ác gi ả đã đề xuất framework và xây dựng giao thức cập nhật an toàn như đã trình bày ở trên. Kết quả cụ thể được chỉ ra trong Bảng

2.4 sau.

Bảng 2.4 So sánh các thực hiện trên bitstream và hệ thống

Các nghiên cứu Mã hóa thựcXác Nén Giao thức cập nhật từ xa Trao đổi khóa Cấu hình từng phần Hệ thống nhúng [31] x x x [19] x x x [30] x x x [90][91] x [93][94] x x [95] x x Framework của luận án x x x x x x x 2.5 K t luế ận chƣơng

Qua chương này, luận án đã thực hiện hai công việc chính, đó là:

- Đề xuất và xây dựng một framework cho việc bảo mật bitstream của các hệ thống

nhúng cấu hình lại được từng phần dựa trên FPGA khi cập nhật từ xa qua mạng

Internet. Framework của luận là án một framework đầy đủ, hoàn chỉnh và linh hoạt dành cho các nhà thiết kế hệ thống cũng như người dùng khi thực hiện các giải pháp bảo mật cho hệ thống của mình, xem Bảng 2.4.

- Một phần quan trọng trong framework là giao thức truyền thông an toàn và các cơ chế đảm bảo an toàn cập nhật bitstream. Luận ánđã đề xuất và xây dựng một bộ giao thức với các tình huống cập nhật bitstream, trao đổi khóa khác nhau. Giao thức của luận án

này với các tham số đáp ứng cho việc cập nhật an toàn hệ thống nhúng cấu hình lại được từng phần mà một số nghiên cứu trước đây chưa đề cập đến, xem Bảng 2.3.

Hệ thống mẫu thử nghiệm và kết quả thực nghiệm trong Chương đã chứng minh sự 4

61 CHƢƠNG 3

NÂNG CAO HIỆU NĂNG VÀ TÍNH LINH HOẠT TRONG

B O M T BITSTREAM C A H Ả Ậ Ủ Ệ THỐNG C U HÌNH LẤ ẠI

ĐƢỢC TỪNG PH N D A TRÊN FPGA Ầ Ự

Giới thiệu: Như đã biết, việc bổ sung tính năng bảo mật vào hệ thống là một sự thỏa hiệp

để thỏa mãn các tiêu chí thiết kế bao gồm: tài nguyên, hiệu năng và giá thành của hệ thống. Trên cơ sở Framework đã trình bày ở Chương 2, chương này tác gi ả xem xét đến việc sử dụng tối ưu tài nguyên của hệ thống bằng cách đề xuất giải pháp xây dựng các bộ giải mã và xác thực trong khu vực cấu hình lại được từng phần. Các mã hóa này có thể được giải phóng khỏi khu vực cấu hình lại khi nó không được sử dụng đến và thay thế vào đó bằng một ứng dụng hữu ích khác. Ngoài ra, để giảm dung lượng bộ nhớ khi lưu trữ

bitstream, tác gi ả sử dụng giải pháp nén bitstream. Và để cải thiện hiệu năng của hệ thống, tác gi ả sử dụng bus tốc độ cao AXI với các bộ FIFO được hỗ trợ trong các FPGA hiện đại. Các kết quả thực nghiệm và các phân tích cho thấy rằng các giải pháp đã đề xuất sẽ giảm đáng kể chi phí tài nguyên, tăng tính linh hoạt khi thực hiện mà vẫn đảm bảo tính bảo mật, tính an toàn của hệ thống.

3.1 Tối ƣu hóa tài nguyên ph n cầ ứng

Tài nguyên phần cứng của hệ thống nhúng cấu hình lại được từng phần dựa trên FPGA có nhiều ràng buộc và hạn chế. Từ những đặc tính và ưu nhược điểm của hệ thống cấu hình lại được từng phần đã nêu trên cùng với việc xem xét thực hiện bảo mật hệ thống cho các ứng dụng cập nhật được từ xa, để tối ưu hóa tài nguyên của hệ thống, luận án này đề xuất hai giải pháp: Giải phóng các bộ mã hóa khỏi logic phần cứng khi không sử dụng đến và nén bitstream cấu hình để giảm dung lượng bộ nhớ lưu trữ.

3.1.1. Tối ƣu hóa tài nguyên logic

Mục tiêu của luận án này là thực hiện thiết kế hệ thống mà phần tĩnh và các mô đun -

cấu hình lại sau bước thiết kế ban đầu thì có thể phát triển một cách độc lập. Tức là, sau đó

các mô-đun cấu hình lại có thể được phát triển mà không cần có sự tồn tại của hệ thống tĩnh. Hơn nữa, các mô đun này được đóng gói và có thể được chuyển giao giữa các nhà -

thiết kế khác nhau mà không có thêm bất kỳ bước tổng hợp hay đặt và định tuyến bổ sung. Điều này có thể thực hiện được do thành phần tĩnh và các nguồn tài nguyên định tuyến của

62

FPGA được sử dụng cho truyền thông ở mức cao sẽ thực hiện cố định trong vùng tài nguyên của phần tĩnh.

Trong thiết kế bảo mật, luận án này xây dựng các bộ mã hóa, xác thực và nén

bitstream trong phần cứng và cả trong phần mềm. Đối với phần cứng, luận án này xây

dựng các bộ mã hóa và xác thực trong phần logic cấu hình lại được. Điều này là hữu ích vì chỉ mỗi khi có yêu cầu cập nhật hệ thống thì các khối chức năng mã hóa và xác thực được cấu hình vào FPGA để là nhiệm vụ của mình. Kết thúc phiên cập nhật, các khối chức năng này được giải phóng và nhường phần tài nguyên cho các ứng dụng khác. Sự kết hợp phần cứng cấu hình lại được và phần mềm nhúng làm cho hệ thống của luận án này thực sự linh hoạt và mềm dẻo. Sơ đồ của hệ thống như được thể hiện trong Hình 3.1.

Hình 3.1Sơ đồ khối của hệ thống nhúng cấu hình lại được dựa trên FPGA với lõi AES/SHA được thực hiện trong phân vùng cấu hình lại được.

3.1.1.1. Thực hiện phần tĩnh

Để thực hiện phần tĩnh ới các ràng buộc về giao diện liên kết được phép đi qua vùng v

biên để kết nối với các phân vùng cấu hình lại được, nhà thiết kế phải lập kế hoạch hệ thống. Điều này được hỗ trợ bởi giao diện đồ họa người dùng GUI trong các công cụ thiết kế. Đối với các phân vùng cấu hình lại được lựa chọn, luận án này đảm bảo rằng phần logic tĩnh và các định tuyến sẽ không sử dụng bất kỳ phần tài nguyên trong các phân vùng này.

63

Như thể hiện trong Hình 3.1, hệ thống tĩnh bao gồm một bộ xử lý nhúng, một bộ điều khiển cấu hình lại, các giao tiếp truyền thông như UART, SystemACE, Ethernet, và giao diện kết nối macro bus.

Bộ điều khiển cấu hình lại được xây dựng thông qua lõi ICAP [ ] 96 và được điều khiển và giám sát thông qua giao diện người dùng.

3.1.1.2. Thực hiện các phân vùng cấu hình lại được

Như được trình bày trong Hình 3.1, các phân vùng PR#1, PR#2,..PR#N là các phân

vùng cấu hình lại được. Trong giải pháp của luận án này, một trong các phân vùng cấu hình lại được sẽ được thiết kế để có thể tải các lõi SHA/AES từ bên ngoài. Các lõi này sẽ thực hiện nhiệm vụ xác thực/giải mã các mô đun từng phần trước - khi cấu hình hoặc cập nhật lại. Sau mỗi lần thực hiện xong chức năng của mình, các lõi SHA/AES có thể được giải phóng nhường chỗ cho các ứng dụng khác.

3.1.1.3. Phân tích và đánh giá kết quả

Sự linh động và tiết kiệm tài nguyên cho hệ thống có thể được giải thích như sau:

- Bởi vì sau các bước thiết kế ban đầu, các mô đun từng phần có thể phát triển một -

cách độc lập. Điều đó có nghĩa các bộ mã hóa AES và xác thực SHA có thể được

phát triển, nâng cấp và tái sử dụng một cách linh động mỗi khi có yêu cầu mà không cần phải thiết kế lại toàn bộ hệ thống.

- Việc giải phóng các bộ mã hóa và xác thực khỏi vùng logic phần cứng khi không sử dụng sẽ là cho hệ thống sử dụng tối ưu tài nguyên và giảm được năng lượng m

tiêu thụ hơn so với việc thiết kế các bộ mã hóa và xác thực này cố định trong phần cứng của FPGA. Như số liệu trong Bảng 3.1, ta thấy tài nguyên sử dụng cho AES- 256 và SHA-512 chiếm một phần đáng kể trong FPGA Spartan 6 của Xilinx. Việc -

giải phóng các phần tài nguyên này thực sự cần thiết và hữu ích.

Bảng 3.1 S d ng ph n c ng c a AES-256 và SHA-ử ụ ầ ứ ủ 512

Lõi IP Tài nguyên s dử ụng

Registers LUTs Slice AES-256 3.096 (5,67%) 3.751 (13,74 %) 1.293 (18,95 %)

64

3.1.2. Tối ƣu vùng nhớ lƣu trữ

Từ số liệu cho trong Bảng 2.1 ở Chương 2. Ta thấy kích thước itstream tăng dần theo b

các thế hệ FPGA. Kích thước này tiếp tục tăng nhanh trong các FPGA hiện đại và như vậy sẽ cần nhiều bộ nhớ hơn để lưu trữ các bitstream này.

Một trong những thách thức của việc sử dụng FPGA lớn là sự cần thiết phải lưu trữ dữ

liệu cấu hình một cách đáng tin cậy đặc biệt là đối với các FPGA sử dụng trong môi ,

trường bức xạ khắc nghiệt. Bộ nhớ không bay hơi được sử dụng để lưu trữ các bitstream khởi tạo phải “cứng” với bức xạ (RAD-HARD). Vì bộ nhớ RAD-HARD thường có mật độ thấp hơn nhiều so với bộ nhớ thông thường, nên cùng với một dung lượng lưu trữ sẽ cần nhiều chip RAD-HARD hơn, dẫn đến tăng không gian của board. Hơn nữa, bộ nhớ RAD-

HARD đắt hơn nhiều so với những bộ nhớ thông thường kết quả chi phí hệ thống rất tốn , kém chỉ để lưu trữ bitstream. Bởi vì các chi phí này, các nhà thiết kế hệ thống luôn ưu tiên tìm giải pháp để giảm kích thước của bitstream càng nhiều càng tốt.

Nén bitstream là một công việc quan trọng trong thiết kế hệ thống cấu hình lại vì nó làm giảm kích thước bitstream để giảm yêu cầu về bộ nhớ lưu trữ. Nó cũng cải thiện băng thông truyền tải trên mạng và do đó giảm được thời gian cập nhật hệ thống. Đặc biệt là trong các hệ thống cấu hình lại được từng phần.

Tỉ số nén thường được sử dụng để tính toán hiệu quả của các kỹ thuật nén và được định nghĩa như sau:

CR CP

OP (3.1)

Trong đó CR(Compression Ratio) là tỉ số nén, CP(Compressed Program) kích thước chương trình đã nén, OP (Original Program) kích thước chương trình gốc ban đầu. Như vậy, thuật toán nén tốt sẽ có tỉ số nén càng nhỏ.

Đã có một số nghiên cứu điều tra tính hiệu quả của nén bitstream FPGA. Andreas Dandalis và K Prasanna [ ] 95 đề xuất thuật toán nén bitstream dựa trên hệ thống nhúng. Họ đã đề xuất một kỹ thuật nén để giảm thiểu bộ nhớ yêu cầu để chứa thông tin cấu hình của FPGA và có hiệu năng giải nén cao. Kỹ thuật này dựa trên kỹ thuật nén từ điển và được bắt nguồn từ thuật toán nén LZW. Hạn chế của thuật toán là cần một phần cứng giải nén đắt

Một phần của tài liệu Bảo mật bitstream FPGA799 (Trang 70 - 78)