.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 Luận án tiến sĩ kỹ thuật điện tử bảo mật bitstream FPGA (Trang 67 - 72)

Các thuật tốn của việc trao đổi khóa an tồ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 tốn 6: Thuật tố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 S1 S7. M2 = HMAC(EncryptedSSKS, M1) S8. Send(EncryptedSSKS, M2) S9. Receive(EncryptedIP, M3)

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

54 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 tốn 8: Thuật tố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 S1

S7. M2 = HMAC(EncryptedSSKS, M1)

S8. Send(EncryptedSSKS, EncryptedIP, M2)

2.3.2.4. Thuật tốn 9: Thuật tố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 tồn và tính bảo mật của các tham số NSuM, độ dài khóa và các thuật tố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 tồn.

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ụ, SKS có 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

55 máy chủ cập nhật. Hoặc khóa phiên SSKS có thể được tính tốn từ số định danh F và số chỉ sử dụng một lần NSuM:

( , )

M

S K SuM

SSKE F N (2.1)

Trong đó khóa KM chỉ đượ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 tồn khóa bí mật SKS, SSKS vớ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 tố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 tồn thế giới trong thời gian tám tháng. Vì vậy, khi sử dụng thuật tố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 [93]. Altera mô tả làm thế nào cập nhật từ xa có thể đượ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 [94]. Tuy nhiên, các khía cạnh an tồn của bản cập nhật từ xa khơng được xem xét.

Saar Drimer [23] đã đề xuất một giao thức để ngăn ngừa các cuộc tấn công phát lại 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 tốn mã hóa là cố định khơng thay đổi linh hoạt được. Badrignans và đồng sự [22] đề xuất bổ sung logic cấu hình mã hóa cứng để ngăn

56 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 tồ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 hóa Xác thự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 [23] x x x [30] x x x [41] x x x [90][91] x [93][94] x x [95] x x Framework của luận án này 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 án là 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 tồ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 4 đã chứng minh sự đúng đắn của framework và giao thức mà luận án này đã đề xuất.

57

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. Ngồ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 tồn của hệ thống.

3.1 Hệ thống cấu hình lại đƣợc từng phần

Cấu hình lại được từng phần là khả năng thay đổi một cách linh hoạt các khối logic phần cứng bằng cách cấu hình lại các phân v ng tương ứng trên thiết bị bằng các tập tin bitstream từng phần. Cơng nghệ cấu hình lại được từng phần của Xilinx cho phép các nhà thiết kế thay đổi các chức năng của hệ thống khi đang chạy, loại bỏ sự cần thiết phải cấu hình lại tồn bộ hệ thống và tái thiết lập các liên kết, tăng cường đáng kể hiệu năng của hệ thống dựa trên FPGA. Việc sử dụng cấu hình lại được từng phần có thể cho phép các nhà thiết kế di chuyển các hệ thống đến các thiết bị nhỏ hơn, giảm năng lượng tiêu thụ và cải thiện khả năng nâng cấp hệ thống. Cấu hình lại được từng phần giúp sử dụng tài nguyên phần cứng hiệu quả hơn bằng cách chỉ thực hiện các chức năng cần thiết khi cần và giải phóng nó khơng cịn d ng đến nữa.

Với cơng nghệ cấu hình lại được từng phần, phần cứng của FPGA được thiết kế gần giống như thiết kế phần mềm. Có nghĩa là, nó có thể được thiết kế thành từng mơ-đun cấu hình lại được RM (Reconfigurable Module), và sau đó tổng hợp vào hệ thống. Như được trình bày trong Hình 3.1, hệ thống cấu hình lại được từng phần dựa trên FPGA bao gồm

58 phần logic tĩnh và ba phân v ng cấu hình lại được RP (Reconfigurable Partition). Ứng với các phân vùng RP#1, RP#2, RP#3, ta có thể xây dựng thành tập các mô-đun từng phần

RM1, RM1,RM3 tương ứng. Ví dụ, với tập mơ-đun RM1 ta có các mơ-đun chức năng IP Core1, IP Core2, IP Core3, và các mơ-đun chức năng này có thể được cấu hình vào RP#1

khi hệ thống vẫn đang hoạt động bình thường.

Một phần của tài liệu Luận án tiến sĩ kỹ thuật điện tử bảo mật bitstream FPGA (Trang 67 - 72)

Tải bản đầy đủ (PDF)

(120 trang)