Về một ứng dụng của RO-PUF trong bảo vệ phần cứng FPGA

10:00 | 13/05/2024 | MẬT MÃ DÂN SỰ
Cùng với sự phát triển của khoa học kỹ thuật có ngày càng nhiều những cuộc tấn công vào phần cứng và gây ra nhiều hậu quả nghiêm trọng. Nhiều giải pháp để bảo vệ phần cứng được đưa ra, trong đó, hàm không thể sao chép vật lý PUF (Physically Unclonable Functions) đang nổi lên như là một trong số những giải pháp bảo mật phần cứng rất triển vọng mạnh mẽ. RO-PUF (Ring Oscillator Physically Unclonable Function) là một kỹ thuật thiết kế PUF nội tại điển hình trong xác thực hay định danh chính xác thiết bị. Bài báo sẽ trình bày một mô hình ứng dụng RO-PUF và chứng minh tính năng xác thực của PUF trong bảo vệ phần cứng FPGA.

CHỨC NĂNG KHÔNG THỂ SAO CHÉP VẬT LÝ

Chức năng không thể sao chép vật lý (PUF) đang được quan tâm như một giải pháp hữu dụng trong vấn đề an toàn và bảo vệ phần cứng. Những ưu điểm của PUF có thể kể đến như tài nguyên chiếm dụng nhỏ, dễ dàng trong triển khai trên phần cứng, chi phí thấp,... PUF hình thành một đặc trưng duy nhất của đối tượng vật lý. Nguyên lý làm việc chung của các mô hình PUF nội tại là dựa trên các thuộc tính biến thể nội tại vốn có của từng thiết bị phần cứng.

RO-PUF là một trong những mô hình PUF được sử dụng rộng rãi bởi tính nhất quán của những biến thể do thay đổi mang tính toàn cục và điều kiện hoạt động, cũng như những lợi thế khai thác khi thực thi công nghệ FPGA. RO-PUF đóng vai trò trích xuất tính ngẫu nhiên trong quá trình sản xuất cấu trúc logic của chip FPGA biểu diễn bằng chuỗi nhị phân, kết hợp phương pháp xử lý ổn định chuỗi bit để đưa ra giá trị ID cuối cùng có thể đảm bảo tính duy nhất cho từng thiết bị. Thiết kế được triển khai và kiểm thử trên phần cứng FPGA cho thấy được tính ứng dụng của mô hình sử dụng RO-PUF trong bảo vệ phần cứng FPGA.

NỀN TẢNG THIẾT KẾ VÀ MÔ HÌNH BẢO VỆ PHẦN CỨNG FPGA SỬ DỤNG RO-PUF

Thiết kế của RO-PUF

Một trong những thiết kế RO-PUF dựa trên PUF đầu tiên được đề xuất bởi Suh [2], công bố năm 2007. Mạch RO-PUF bao gồm n RO được bố trí giống hệt nhau riêng lẻ, các tần số đầu ra f1 -fn được lựa chọn tổ hợp bởi các cặp fi với fj (i khác j) bằng cách sử dụng một cặp bộ ghép kênh với các bit điều khiển như các thử thách PUF. Do các thay đổi nội tại của quá trình và các điều kiện hoạt động khác nhau, fi và fj thường khác nhau giữa các vòng trong 1 con chip và giữa cùng 1 vòng trong các chip khác nhau. Giá trị phản hồi rij theo quy ước được xác định đơn giản là:

Để đảm bảo duy trì cho các RO có cấu trúc giống nhau và đối xứng, mỗi RO cơ bản được cấu thành từ 2n cổng NOT (trong mô hình sử dụng 16 cổng NOT cho mỗi RO) và 1 cổng NAND được định vị thủ công bởi trình biên dịch FPGA trước khi tổng hợp thiết kế trên phần cứng. Các cổng NOT đóng vai trò phần tử trễ tạo sai khác tần số phản hồi với tần số tham chiếu, cổng NAND đóng vai trò kích hoạt/tắt sự dao động của mỗi vòng RO. Thiết kế sử dụng các bộ đếm hoạt động song song, điều này giúp giảm thời gian xử lý và đảm bảo tính đối xứng của thiết kế. Phản hồi của RO là các giá trị được chốt bởi các bộ đếm tại thời điểm xác định và giá trị phản hồi này tỷ lệ với tần số thực tế của các RO.

Mô hình xác thực phần cứng

Xác thực phần cứng dựa trên bài toán định danh thiết bị, do đó bao gồm hai giai đoạn: cung cấp mã định danh và đăng ký định danh.

Đối với các thuộc tính được chỉ định, giai đoạn đầu tiên bao gồm việc cung cấp cho các thiết bị cần được nhận dạng một danh tính duy nhất vĩnh viễn. Nhóm nghiên cứu gọi đây là giai đoạn cung cấp mã định danh.

Đối với các đặc điểm nhận dạng vốn có, giai đoạn đầu tiên là giai đoạn thu thập các thông tin nhận dạng vốn có của thiết bị cần được nhận dạng. Nhóm nghiên cứu gọi đây là giai đoạn đăng ký định danh. Từ bài toán trên, cơ chế xác thực dựa trên PUF được mô tả như sau:

Tạo cơ sở dữ liệu xác thực: thiết kế được tích hợp PUF được thực thi trên phần cứng FPGA trong các điều kiện hoạt động khác nhau (challenges) để tạo ra cơ sở dữ liệu xác thực (responses). Các cặp dữ liệu CR (challenge - response) được lưu lại làm cơ sở dữ liệu tham chiếu.

Xác thực thiết bị: thiết kế được tích hợp PUF thực thi trên phần cứng FPGA đưa vào hoạt động 1 trong các điều kiện ở cơ sở dữ liệu, từ đó tạo thành dữ liệu phản hồi so sánh với dữ liệu tương ứng với điều kiện hoạt động trong cơ sở dữ liệu xác thực để có kết quả xác thực.

Từ cơ chế xác thực dựa trên PUF, nhóm tác giả đề xuất mô hình gồm 2 bước như sau:

Bước 1: Tạo cơ sở dữ liệu (Hình 1)

Bước 2: Xác thực thiết bị (Hình 2)

Hình 2: Xây dựng cơ sở dữ liệu dựa trên PUF

Hình 3: Xác thực thiết bị dựa trên PUF

Cấu trúc thiết kế được tích hợp PUF theo cả hai bước đảm bảo không thay đổi nhiều về tài nguyên, khác biệt ở chức năng của thiết kế trong từng bước. Bước 1, giá trị ID tạo ra được lưu lại trên cơ sở dữ liệu làm giá trị tham chiếu. Bước 2, giá trị ID tái tạo được so sánh với dữ liệu tham chiếu lấy từ cơ sở dữ liệu đã lưu để tạo kết quả xác thực.

Chức năng các khối:

- Khối RO-PUF: module RO-PUF tạo tín hiệu đầu ra là dữ liệu phản hồi từ các vòng dao động RO.

- Khối xử lý dữ liệu: xử lý mẫu dữ liệu đầu ra thành giá trị ID ổn định. Tức là các bit phản hồi thu được từ các vòng dao động của RO-PUF được đưa vào xử lý để tạo thành chuỗi ID ổn định.

- Khối điều khiển logic: So sánh chuỗi ID với dữ liệu từ cơ sở dữ liệu

- Thiết kế cần bảo vệ: khối thiết kế với các chức năng khác - Cơ sở dữ liệu: dữ liệu đã được đăng ký sẽ lưu vào bộ nhớ NVM (Non-Volatile Memory) của thiết bị hoặc lưu trực tiếp trong mã nguồn thiết kế FPGA.

Dữ liệu đầu ra từ khối PUF là dữ liệu phản hồi dựa trên các yếu tố ngẫu nhiên trong quá trình sản xuất phần cứng. Dữ liệu đó được đưa đến khối xử lý dữ liệu, trả lại kết quả đầu ra là chuỗi ID ổn định.

Đối với quá trình tạo dữ liệu lưu trữ: chuỗi ID được đưa đến cơ sở dữ liệu để lưu trữ trên bộ nhớ NVM sẵn có trên thiết bị hoặc lưu trực tiếp trong mã nguồn thiết kế FPGA.

Đối với quá trình xác thực thiết bị: chuỗi ID được đưa đến khối điều khiển logic, cùng với dữ liệu từ cơ sở dữ liệu để điều khiển hoạt động của thiết kế cần bảo vệ.

TRIỂN KHAI MÔ HÌNH TRÊN FPGA

Kết quả thử nghiệm trên kit DE4 của Intel

Module RO-PUF được thiết kế và tổng hợp triển khai trên kit DE4 sử dụng chip Stratix IV của Altera. Mô hình sau khi triển khai trên kit DE4 như Hình 4.

Hình 4: Mô hình thiết kế tổng hợp trên DE4

Chức năng của các khối:

Khối led_o: Đại diện cho thiết kế chính cần được bảo vệ trong mô hình chống sao chép FPGA.

Khối RO_PUF_final: Khối thực hiện đầy đủ chức năng module RO-PUF bao gồm tạo ID thiết bị và Giao tiếp với khối lưu trữ dữ liệu trên kit DE4.

Tiến hành thử nghiệm trên Kit DE4 với lựa chọn lần lượt số RO như sau:

Bảng 1. Tài nguyên chiếm dụng với 32 vòng RO

Kết quả dữ liệu nhận được khi quan sát qua Signal Tap trên Quartus II (Hình 5).

Dữ liệu ID nhận được khi sử dụng với 32 RO là hơn 80 bit. Do đó, nếu như tỉ lệ sai khác ID tái tạo là 1 bit thì sẽ là <1.25%.

Thử nghiệm trong thời gian dài, với cùng 1 kit DE4, sai khác tối đa số bit của ID tái tạo và ID tham chiếu là khoảng 2 bit. Do đó, tỉ lệ sai khác khoảng <2.5%. 

Với Kit DE4 khác thì tỉ lệ sai khác >50%.

Kết quả thử nghiệm trên Card mã hóa PCIe

Card PCIe sử dụng chip xc7z030 của Xilinx. Module RO-PUF dựa trên độ trễ ngẫu nhiên từ dao động phản hồi so với dao động tần số trên vòng dao động RO, dữ liệu thu được được xử lý để tạo thành 1 ID có tính duy nhất (tính duy nhất là một thuộc tính cơ bản của PUF). ID này có thể được ứng dụng trong nhận dạng xác thực thiết bị.

Hình 5. Mô hình thiết kế khi tích hợp RO PUF và thử nghiệm trên card mã hóa PCIe

Dựa vào tính chất này, nhóm nghiên cứu đề xuất tích hợp module RO-PUF với thiết kế FPGA của card PCIe theo Hình 6.

Hình 6. Mô hình thiết kế khi tích hợp RO PUF và thử nghiệm trên card mã hóa PCIe

Thực nghiệm trên phần cứng card mã hóa PCIe thực hiện giả định như đang triển khai thực tế. Khối RO-PUF sẽ được đưa vào thiết kế tổng thể cùng với các thiết kế chức năng khác của card PCIe. RO-PUF thực hiện chức năng xác thực phần cứng trước khi cho phép thực hiện các chức năng khác của card PCIe.

Thiết kế RO-PUF được chia làm hai loại module tích hợp:

- Module tạo cơ sở dữ liệu là chuỗi ID được lưu trên phần cứng thiết bị, có thể lưu trên bộ nhớ NVM, hoặc lưu trực tiếp trong mã nguồn thiết kế FPGA.

- Module tái tạo chuỗi ID so sánh với ID đã lưu trên phần cứng FPGA và trả ra kết quả xác thực thiết bị.

Kết quả cho thấy, thiết kế RO-PUF cho phép tái tạo lại chuỗi ID ổn định đảm bảo xác thực đúng là Card cho phép hoặc không cho phép hoạt động (do bị tấn công giả mạo thiết bị,...).

KẾT LUẬN

Nhóm tác giả đã thực hiện nghiên cứu ứng dụng RO-PUF trong bảo vệ phần cứng FPGA. Với thiết kế bao gồm 32 RO, mỗi RO có 16 cổng NOT, 1 cổng NAND cùng với các khối điều khiển được thiết kế theo mô hình đề xuất trong bài, nhóm tác giả đã triển khai thử nghiệm trên kit DE4, kết quả cho thấy thiết kế hoạt động hoàn toàn ổn định, đúng theo yêu cầu và có những ưu điểm thể hiện rõ như: lượng tài nguyên chiếm dụng thấp, dễ triển khai và thực hiện, dễ áp dụng để bảo vệ khi tích hợp với các thiết kế khác.

TÀI LIỆU THAM KHẢO

[1]. Delvaux; Jeroen, Security analysis of PUF-based key generation and entity authentication, Ph. D. dissertation, 2017.

[2]. G. E. Suh and S. Devadas, "Physical Unclonable Functions for Device Authentication and Secret Key Generation," 44th ACM/IEEE Design Automation Conference, 2007.

[3]. R. Maes, Physically Unclonable Functions, Springer - Verlag Berlin Heidelberg, 2013.

[4]. R. Maes, Physically unclonable functions: Constructions, properties and applications, Katholieke Universiteit Leuven, Belgium, 2012.

[5]. Tran Van Toan, Trinh Quang Kien and Hoang Van Phuc, "Enhanced ID authentication scheme using FPGA-based ring oscillator PUF," 13th International Symposium on Embedded Multicore/Many-core Systems-on Chip (MCSoC), 2019.

[6]. Tran Van Toan, Trinh Quang Kien and Hoang Van Phuc, " Stabilizing Techniques for Secure On-chip Key Generation Based on RO PUF," VNU Journal of Science: Comp. Science & Com), 2022.

TS. Lê Văn Hải, KS. Vũ Văn Việt, KS Nguyễn Viết Dương (Viện Khoa học - Công nghệ mật mã)

Tin cùng chuyên mục

Tin mới