1.3.1. Giới thiệu
Hệ thống nhúng là một hệ thống xử lý được nhúng vào trong một môi trường hay một hệ thống lớn hơn. Đó là các hệ thống tích hợp cả phần cứng và phần mềm phục vụ các bài
33 toán chuyên dụng trong nhiều lĩnh vực công nghiệp, tự động hoá điều khiển, quan trắc và truyền tin. Đặc điểm của các hệ thống nhúng là hoạt động ổn định và có tính năng tự động hoá cao. Các hệ thống nhúng có những tính chất chung sau [82]:
- Đáng tin cậy (dependable): Nhiều hệ thống nhúng sử dụng trong các môi trường đòi hỏi phải có độ an toàn cao nên chúng phải thật đáng tin cậy. Ví dụ, các hệ thống nhúng ứng dụng trong lò phản ứng hạt nhân là các hệ thống nhúng đáng tin cậy. Tính đáng tin cậy cũng quan trọng đối với các hệ thống khác như ô tô, tàu hỏa, máy bay. Và chúng bao gồm những khía cạnh sau:
1) Độ tin cậy: xác suất mà một hệ thống sẽ không gặp sự cố.
2) Khả năng bảo trì: xác suất mà một hệ thống đang bị sự cố có thể sửa được trong một khoảng thời gian nhất định.
3) Độ sẵn có: xác suất mà hệ thống ở tình trạng sẵn sàng phục vụ. Cả độ tin cậy và khả năng bảo trì đều phải cao để có độ sẵn có cao.
4) An toàn: một hệ thống bị sự cố sẽ không gây thiệt hại.
5) Bảo mật: dữ liệu mật không bị lộ và liên lạc có chứng thực được đảm bảo.
- Hiệu suất (efficient): Hiệu suất của các hệ thống nhúng được đánh giá theo các đặc điểm sau:
1) Năng lượng: Nhiều hệ thống nhúng là các hệ thống di động d ng năng lượng pin. Nhưng với các yêu cầu tính toán lại tăng với tốc độ cao, đặc biệt đối với các ứng dụng multimedia. Do đó, năng lượng phải được sử dụng một cách có hiệu quả 2) Kích thước mã: Toàn bộ mã chương trình chạy trong một hệ nhúng phải được lưu
trong hệ thống. Thông thường, một hệ thống nhúng không có đĩa cứng để lưu chương trình. Do đó kích thước mã nên càng nhỏ càng tốt. Điều này đặc biệt đúng cho SoC. Nếu bộ nhớ lệnh cần được tích hợp vào chip, nó nên được d ng một cách có hiệu quả.
3) Hiệu quả khi chạy: Chỉ nên d ng lượng tài nguyên tối thiểu để thực hiện chức năng được yêu cầu. Cần thỏa mãn ràng buộc về thời gian với lượng tối thiểu tài nguyên phần cứng và năng lượng. Để giảm mức tiêu thụ năng lượng, tần số đồng hồ và điện áp nên nhỏ đến mức có thể. Ngoài ra, hệ thống chỉ nên có những thành phần phần cứng thiết yếu. Có thể bỏ các thành phần không cải thiện thời gian chạy. 4) Trọng lượng: Tất cả các hệ thống di động đều yêu cầu phải nhẹ. Nhẹ cũng thường
là một điều quan trọng khi cân nhắc khi thực hiện một hệ thống nào đó.
5) Giá: Đối với các hệ thống nhúng thông dụng, đặc biệt là đồ điện gia dụng, sức cạnh tranh trên thị trường là một vấn đề cực kì quan trọng, do đó cần sử dụng hiệu quả các thành phần phần cứng cũng như chi phí phát triển phần mềm.
Như vậy, hệ thống nhúng thường được thiết kế để thực hiện một chức năng chuyên biệt nào đó. Khác với các máy tính đa chức năng, chẳng hạn như máy tính cá nhân, một hệ thống nhúng chỉ thực hiện một hoặc một vài chức năng nhất định, thường đi kèm với
34 những yêu cầu cụ thể. Vì hệ thống chỉ được xây dựng cho một số nhiệm vụ nhất định nên các nhà thiết kế có thể tối ưu hóa nó nhằm giảm thiểu kích thước và chi phí sản xuất.
1.3.2. Các lĩnh vực ứng dụng của hệ thống nhúng
Hệ thống nhúng rất đa dạng, phong phú về chủng loại. Đó có thể là những thiết bị cầm tay nhỏ gọn như đồng hồ kĩ thuật số, máy nghe nhạc MP3, hoặc là những sản phẩm lớn như đèn giao thông, bộ kiểm soát trong nhà máy, hoặc hệ thống kiểm soát các nhà máy năng lượng hạt nhân. Dưới đây là các lĩnh vực quan trọng sử dụng đến các hệ thống nhúng.
Điện tử ô tô; Điện tử hàng không; Đường sắt;Viễn thông;Y tế; Bảo mật; Quân sự; Điện gia dụng; Nhà thông minh; Robot.
1.3.3. Các thách thức và bảo mật trong hệ thống nhúng
Các hệ thống nhúng bao gồm một số lượng lớn các phần mềm. Như đã biết, mục tiêu của thiết kế một hệ thống nhúng là tính hiệu quả cao, do đó thiết kế phần mềm không thể được thực hiện độc lập với phần cứng. Vì vậy, phần mềm và phần cứng phải được xem xét trong các bước thiết kế. Việc triển khai phần cứng là rất tốn kém và đòi hỏi thiết kế trong thời gian dài. Hơn nữa, thiết kế phần cứng không thực sự linh hoạt để thay đổi khi cần thiết. Vì vậy, cần phải tìm một thỏa hiệp tốt nhất giữa tính hiệu quả và tính linh hoạt. Điều này là khó khăn, vì phương pháp tiếp cận tích hợp như vậy đòi hỏi người thiết kế cần có kiến thức về phần cứng lẫn phần mềm, Hình 1.12. Và khi thiết kế hệ thống bảo mật thì cần hiểu biết sâu sắc về bảo mật nữa.
35 Các hệ thống nhúng tạo thành nền tảng cho cái gọi là thời kì hậu PC, trong đó việc xử lý thông tin ngày càng chuyển dịch ra xa các hệ thống toàn PC tiến về các hệ thống nhúng. Số lượng ứng dụng ngày càng tăng dẫn đến nhu cầu các công nghệ thiết kế hỗ trợ các hệ thống nhúng. Các công nghệ và công cụ hiện tại vẫn có những hạn chế quan trọng. Ví dụ, vẫn cần các ngôn ngữ đặc tả tốt hơn, các công cụ sinh mã từ ngôn ngữ đặc tả, các bộ kiểm chứng các điều kiện thời gian, hệ điều hành thời gian thực, các kĩ thuật thiết kế tiết kiệm năng lượng, và các kĩ thuật thiết kế dành cho các hệ thống có độ tin cậy cao.
Ngoài ra, các hệ thống nhúng phải đáp ứng nhiều yêu cầu phi chức năng như nhỏ gọn, ràng buộc thời gian thực, hiệu suất của nguồn và các yêu cầu về độ tin cậy. Rất nhiều mục tiêu phải được xem xét trong quá trình thiết kế. vì vậy, đáp ứng được các yêu cầu phi chức năng cũng đã là khó khăn.
Việc thực hiện bảo mật trên các hệ thống nhúng cũng gặp những khó khăn nhất định.
Bởi vì hệ thống nhúng là một hệ thống rất hạn chế về tài nguyên nên khi chúng ta thêm vào các chức năng bảo mật, hiệu năng của hệ thống có thể bị giảm, tài nguyên của hệ thống có thể bị chia sẻ và chi phí của hệ thống có thể tăng lên. Đôi lúc nó lại làm giảm độ tin cậy của hệ thống. Đã có rất nhiều các tiếp cận khác nhau về bảo mật các hệ thống nhúng. Trong [83] các tác giả trình bày và đánh giá cách thực hiện các thuật toán bảo mật trong các hệ thống nhúng dựa trên vi xử lý lõi mềm MicroBlaze. Tương tự, nhóm tác giả trong [84] trình bày một kiến trúc an toàn để quản lý bảo mật trong hệ thống nhúng dựa trên FPGA. Liên quan đến phần mềm, các nhóm tác giả trong [85], [86] đề xuất giải pháp bảo vệ an toàn khởi động hệ điều hành nhúng Linux trên FPGA. Để bảo vệ nền tảng phần cứng cấu hình lại được trong hệ thống nhúng, các tác giả trong [42], đã đề xuất một kiến trúc và một giao thức an toàn để cập nhật phần cứng của hệ thống.
1.4. Kết luận chƣơng
Xem xét công nghệ và ứng dụng của SRAM-based FPGA ở mục 1.2.2 và các lĩnh vực ứng dụng của hệ thống nhúng ở mục 1.3.2 cho thấy một sự tương đồng rất lớn. Thực tế cho thấy, các FPGA với các bộ vi xử lý nhúng và khả năng tái lập trình lại được sẽ cho phép xây dựng các hệ thống có hiệu suất cao. Chúng trở thành nền tảng phần cứng quan trọng, đáp ứng các mục tiêu về độ tin cậy và hiệu xuất mà một hệ thống nhúng yêu cầu.
Hơn nữa, SRAM-based FPGA có thể cung cấp một sự cân bằng giữa hiệu năng, tính linh hoạt và thời gian phát triển sản phẩm. Hệ thống nhúng thực hiện các chức năng chuyên biệt được tối ưu hóa, giảm được chi phí tài nguyên và thời gian phát triển, dẫn đến giảm được giá thành. Vì vậy, các hệ thống nhúng dựa trên SRAM-based FPGA tạo thành nền tảng công nghệ quan trọng cho thời kì hậu PC. Từ đó việc xử lý thông tin ngày càng chuyển dịch ra xa các hệ thống toàn PC và tiến về các hệ thống nhúng.
36 Tuy nhiên, cùng với việc tăng lên của các hệ thống nhúng dựa trên FPGA, nhu cầu về bảo mật cũng tăng lên. Trong đó, bảo mật thiết kế phần cứng đặc biệt quan trọng, bởi vì nó là nền tảng mà các ứng dụng thực thi trên đó, và nó cũng là tài sản trí tuệ của các nhà thiết kế phát triển. Bảo mật với việc thực thi các thuật toán mã hóa đã chuẩn hóa như đã trình bày trong phần 1.1 đang được áp dụng rộng rãi. Độ an toàn của thuật toán, khả năng thực hiện trong phần cứng hoặc phần mềm, linh hoạt trong kết hợp đáp ứng các mục tiêu bảo mật thiết kế đặt ra: tính bảo mật, tính xác thực và tính khả dụng của dữ liệu.
Qua phần lý thuyết tổng quan về bảo mật, FPGA và hệ thống nhúng, chúng ta nhận thức được rằng: trong thời đại công nghiệp số hiện nay, thực hiện bảo mật là hết sức quan trọng để bảo vệ hệ thống và bảo vệ tài sản trí tuệ của người chủ sở hữu.
37
CHƢƠNG 2
FRAMEWORK VÀ GIAO THỨC CẬP NHẬT AN TOÀN TỪ XA
Giới thiệu: Với sự phát triển mạnh mẽ hiện nay trong tính toán cấu hình lại thời gian chạy
(run-time reconfigurable computing), các nền tảng nhúng cấu hình lại thời gian chạy đang trở nên ngày càng khả thi. Người dùng có thể tải về một bản cập nhật (bitstream từng phần) và cấu hình lại một phần của hệ thống qua Internet mà không ảnh hưởng đến các phần còn lại như việc tải về và cài đặt phần mềm vậy. Tuy nhiên, việc tải về và cập nhật bitstream chứa đựng nhiều rủi ro do các tấn công giả mạo và phát lại. Chương này trình bày framework và giao thức mà luận án này đã đề xuất để đảm bảo tính an toàn và tính linh hoạt khi cập nhật bitstream từ xa 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. Framework của luận án xem xét giải quyết các vấn đề khác nhau về bảo mật bao gồm việc trao đổi, quản lý, mã hóa, xác thực và nén bitstream. Kết quả thực nghiệm và đánh giá được thực hiện trên board Xilinx ML605 Virtex-6 XC6VLX240T và Digilent Atlys FPGA Spartan-6 XC6SLX45 được trình bày trong Chương 4.