Giải pháp phát hiện Trojan phần cứng tấn công mạng tạo số ngẫu nhiên thực
GIỚI THIỆU
Phương pháp sinh số ngẫu nhiên đóng vai trò quyết định trong mật mã hiện đại. Sự an toàn của máy mã nói riêng và hệ thống nhúng nói chung, phụ thuộc rất lớn vào chất lượng ngẫu nhiên của các số được tạo ra. Theo nguyên lý Kerckhoff thì một bộ tạo số ngẫu nhiên dùng trong mật mã phải đạt yêu cầu: cho dù biết mọi yếu tố về bộ tạo đó (thuật toán, mạch thiết kế,...) thì nó vẫn sinh ra các bit không thể dự đoán được [1]. Trong Hình 1, bộ tạo TRNG phổ biến sẽ gồm có khối nguồn bất định; mô-đun thực hiện số hóa (gọi là nguồn nhiễu số); mô-đun xử lý sau; mô-đun kiểm tra nhúng thực hiện kiểm tra lỗi nguồn (total test) và mô-đun kiểm tra trực tuyến (online tests) nhằm giám sát chất lượng các số ngẫu nhiên thô (raw random numbers). Các số ngẫu nhiên được sinh ra từ nguồn bất định, nguồn này chứa các tiến trình ngẫu nhiên dưới dạng các tín hiệu liên tục. Mô-đun số hóa cần chuyển các tín hiệu liên tục này thành dạng tín hiệu số, gọi chung là số ngẫu nhiên thô. Các số ngẫu nhiên này sẵn sàng phục vụ cho các kiểm tra nhúng bên trong. Thông thường, các số ngẫu nhiên thô liên quan đến các khiếm khuyết thống kê, như kiểm tra độ lệch so với tần suất lý tưởng của các số ngẫu nhiên, giá trị tương quan lớn của các bit ở đầu ra. Mô-đun xử lý sau được ứng dụng để các số ngẫu nhiên thô chưa lý tưởng cải thiện tốt các đặc tính thống kê ngẫu nhiên và an toàn cho bộ tạo. Ngay khi, nguồn bất định được số hóa, các tính chất ngẫu nhiên của tín hiệu số sẽ phải được kiểm tra nhằm mục đích thiết lập bộ tạo TRNG đạt chất lượng.
Hình 1. Sơ đồ khối TRNG thực
Các HT là các biến thể của mạch điện gây hại cố ý đối với hoạt động của thiết bị. Tuy nhiên, các biến thể không mong muốn này thường chưa được xác định từ phía nhà cung cấp phần cứng, chúng gây những rò rỉ phá hoại chức năng với các đặc điểm như: cố ý giả mạo, tránh bị phát hiện và hiếm khi kích hoạt [1, 8]. Mục đích của Trojan luôn nhất quán: thực hiện một hành vi bất thường để thỏa hiệp tính bí mật, tính toàn vẹn hoặc tính xác thực của thiết bị. Sự thỏa hiệp có thể xuất hiện dưới dạng làm giảm tuổi thọ của vi mạch hoặc gây ra lỗi “làm rối” (obfuscation) chức năng của hệ thống khi Trojan kích hoạt. Điều này cho phép kẻ tấn công nhận được quyền truy cập bất hợp pháp vào phần cứng (truy cập từ xa qua backdoor) hoặc sự rò rỉ thông tin (khóa bí mật truyền trên Bus hệ thống). Các HT bắt nguồn từ các Trojan mềm, được phát triển phi pháp trong các bộ công cụ CAD (Computer aided design) để hỗ trợ thiết kế các mạch điện chuyên dùng, trong suốt quá trình tổng hợp theo luồng thiết kế hoặc bị chèn cố ý gây ra xung đột giữa các thành phần tại các tiến trình khác nhau trong vòng đời của phần cứng thiết bị [8].
Với vai trò quan trọng của các bộ tạo TRNG trong thiết kế hệ thống bảo mật, nên cần khuyến nghị kiểm tra xuyên suốt quá trình sinh các số ngẫu nhiên ở đầu ra. Thông thường, các kiểm tra nhúng được dùng để cảnh báo khi đầu ra của bộ tạo không đáp ứng các ngưỡng thống kê. Một số kiểm tra hay dùng để đánh giá chất lượng đầu ra của bộ tạo TRNG là AIS-31 [2] và NIST [3].
CÁC ĐẶC TÍNH CỦA HT
Có 4 đặc trưng của HT trong thiết kế bộ tạo TRNG, gồm: tải tin, kiểu kích hoạt trojan, công suất tiêu thụ và vị trí chèn Trojan.
Tải tin
Khối tải tin (payload) sẽ thực hiện hành động gây hại do kích thích ác ý như: tấn công DoS; tấn công làm thay đổi chức năng; gây rò rỉ thông tin; hoặc làm giảm hiệu suất. HT tấn công DoS hoặc làm thay đổi chức năng dễ bị phát hiện khi nó được kích hoạt, bởi vì khi thực hiện các kiểm tra trực tuyến để giám sát chất lượng ngẫu nhiên ở đầu ra của bộ tạo TRNG, sẽ thấy rõ hoạt động tải tin của kiểu HT này. HT gây rò rỉ thông tin bí mật thông qua kênh kề. Do đó, trong thiết kế bộ tạo TRNG, thông tin rò rỉ này chính là các số ngẫu nhiên được dùng làm khóa mật mã hoặc làm giá trị nonce hay các véc-tơ khởi tạo IV (Initialization Vector) cho giao thức bảo mật. Trojan này rất khó bị phát hiện trong trường hợp tấn công cố ý gây rò rỉ thông tin ngay tại đầu ra của nó (khối giao tiếp trong Hình 1, do đó cần phải thu thập lượng lớn thông tin về ngữ cảnh sử dụng các số ngẫu nhiên mới có thể phát hiện ra sự can thiệp vào mạch TRNG. Sự suy giảm về hiệu suất của bộ tạo TRNG cũng cần được xem xét theo 2 khía cạnh: thứ nhất là suy giảm vật lý do hiệu ứng già hóa của linh kiện điện tử; thứ hai là hiệu suất sinh số ngẫu nhiên ở đầu ra thấp (các số ngẫu nhiên không vượt qua ngưỡng thống kê).
Kiểu kích hoạt Trojan
HT này sẽ không hoạt động liên tục, tức là nó hiếm bị kích hoạt. Hơn nữa, nó chỉ tấn công vào đầu ra của bộ tạo TRNG tại những thời điểm xác định, khi các thông tin quan trọng được tạo ra (khóa sinh ra). Do vậy, T4RNG cần được phân lớp chi tiết theo từng kiểu kích hoạt của HT. Bài báo sẽ xem xét cả lược đồ kích hoạt ở bên trong và bên ngoài bộ tạo TRNG. Về nguyên tắc, bộ tạo TRNG sẽ chứa một số phần tử mạch tương tự để làm nguồn bất định và phải giao tiếp với môi trường thực. Vì vậy, để có thể kích hoạt Trojan T4RNG từ phía ngoài thì phải chèn vào một số thành phần “lạ” trong thiết kế TRNG.
Công suất tiêu thụ
Đặc tính quan trọng khác của T4RNG là công suất tiêu thụ (Power consumption). Khi kích thích T4RNG ở phía ngoài sẽ đòi hỏi thêm các thành phần bổ sung vào mạch TRNG. Do đó, kích thước tổng thể của thiết kế TRNG khi có Trojan so với thiết kế nguyên bản khi IC chưa bị thay đổi, đóng vai trò quyết định để tránh bị phát hiện nên phải xem xét toàn bộ thiết kế của bộ tạo (Hình 1). Hơn nữa, công suất tiêu thụ của mạch Trojan T4RNG phải đủ nhỏ so với tổng công suất tiêu thụ của bộ tạo. Bộ tạo TRNGs khai thác Jitter của các tín hiệu xung nhịp lấy từ vòng dao động RO (Ring oscillators) [5], vòng tự định thời STR (Self-timing ring oscillators) [6] hoặc các mạch vòng khóa pha PLL (Phase lock loop) [8] làm nguồn bất định thì yêu cầu này không khó bởi chúng tiêu thụ công suất rất lớn khi hoạt động. Do đó, công suất tiêu thụ của phần mạch T4RNG trở nên rất nhỏ và hầu như không thể phân biệt trong toàn bộ tiến trình biến đổi của các vệt năng lượng.
Vị trí chèn HT
Thiết kế T4RNG thành công sẽ liên tục làm giảm chất lượng ở đầu ra của bộ tạo TRNG, song vẫn liên tục vượt qua các kiểm tra thống kê được nhúng vào thiết kế bộ tạo. Tác động của Trojan kéo theo nguồn bất định có thể suy giảm hoặc bị phát hiện trước các kiểm tra nhúng. Trojan T4RNG tấn công vào khối hậu xử lý
sẽ khó khăn hơn, bởi nó phải vượt qua được các kiểm tra nhúng. Hơn nữa, các thuật toán hậu xử lý cũng khử bỏ tác động của HT. Do đó, có 2 điểm thuận lợi mà Trojan T4RNG thực hiện tấn công tại đầu ra của bộ tạo: thứ nhất là nó tránh gây ra tín hiệu cảnh báo và thứ hai là dễ vượt qua kiểm tra trực tuyến.
THỰC NGHIỆM VÀ THẢO LUẬN
Thực thi Trojan T4RNG
Thiết kế Trojan T4RNG thỏa mãn các đặc tính kỹ thuật ở trên sẽ gồm có: 2 mạch PLL lệch pha nhau; 1 cổng XOR; và 1 cổng AND (Hình 2).
Hình 2. Thiết kế Trojan T4RNG tấn công bộ tạo TRNG
a.Mạch định tuyến không Trojan b.Mạch định tuyến có Trojan
Hình 3. Bộ tạo TNRG sau khi được định tuyến
Theo thiết kế Hình 2, Trojan T4RNG tấn công vào bộ tạo TRNG (được cấu tạo gồm 9 cổng logic INV) bằng cách chèn tín hiệu có tần số cưỡng bức tại cổng AND2S [8]. Ở đây, pha của tín hiệu VOUT của mạch PLL2 sau khi được tổng hợp trong chip FPGA Spartan 3AN-1000 sẽ cho phép tinh chỉnh bằng cách cấp sóng Sine vào chân 6 (VIN). Do đó, mạch này thực hiện giống khối kích hoạt T4RNG. Đồng thời, khi không kích hoạt Trojan, các đầu ra bù nhau của 2 tín hiệu VOUT được cộng XOR với nhau để tạo thành một mức logic “1” ổn định.
Trong trường hợp này, đầu ra “Random_out” của bộ tạo TRNG sẽ không thay đổi, bởi cổng AND2S chỉ thay đổi khi đầu ra của cổng XOR2S có mức logic “0”.
Trường hợp khi kích hoạt Trojan T4RNG, thì 2 mạch PLL1 và PLL2 sẽ tạo ra 2 tín hiệu VOUT cùng pha nhau, do đó cộng XOR 2 đầu ra này với nhau sẽ tạo thành mức logic “0”. Vì vậy, đầu ra của bộ tạo TRNG bị tấn công bởi T4RNG. Hình 3 thể hiện mạch TRNG sau khi được định tuyến đối với các trường hợp không và có HT, sau khi tổng hợp thiết kế cho thấy mạch Trojan ác ý chiếm một phần nhỏ diện tích thiết kế so với tổng thể thực thi bộ tạo TRNG.
Thực thi bộ tạo để thu tệp đầu ra và lưu lại với tên “ketqua.bin”. Điểm quan trọng T4RNG chỉ tác động vào một vài bit nên đầu ra của bộ tạo vẫn vượt qua các kiểm tra thống kê.
Nhóm tác giả cũng mô phỏng bộ tạo này trong môi trường Simulink MathLab R2019a (Hình 4). Các mạch vòng dao động PLL được mô phỏng bằng các khối tạo xung, còn bộ tạo TRNG được giả lập bằng khối nguồn ngẫu nhiên (Random Source) để thu thập các số ngẫu nhiên lưu thành tệp “dulieu.bin” phục vụ đánh giá kiểm tra thống kê qua công cụ NIST SP-22A.
Hình 5 thể hiện dòng bit không đổi được sinh ra bởi khối nguồn ngẫu nhiên trong Simulink. Sự tác động của T4RNG thể hiện rõ ở đường chéo phụ. Tuy nhiên, độ lệch này lại không bị phát hiện trước phép kiểm tra thống kê: đầu ra của bộ tạo sau khi bị tấn công vẫn vượt qua các kiểm tra trực tuyến.
Hình 4. Mô phỏng Trojan T4RNG
a.Kích hoạt b.Không kích hoạt
Hình 5. Dòng bit ngẫu nhiên mô phỏng trong Simulink
Bài báo thực thi thiết kế bộ tạo TRNG dựa vào các cổng đảo (INV) chạy trong chip FPGA Xilinx Spartan 3AN-1000. Bộ tạo TRNG đã được đề xuất trong công bố [8], nhằm minh chứng cho sự xuất hiện một trọng số rất nhỏ khi bị tấn công bởi T4RNG.
KẾT LUẬN
Các HT là nguy cơ hiện hữu đối với an toàn phần cứng và các mạch tích hợp tin cậy. Các biến thể giả mạo này gây hiểm họa an ninh đối với mọi hệ thống điện tử, làm cho nền tảng phần cứng không còn được coi là nguồn cội tin cậy. Các Trojan có thể duy trì trạng thái không kích hoạt và không bị phát hiện trong nhiều năm, chờ đợi tình huống chỉ định để tấn công, do đó chúng có thể phát ra những rò rỉ ác ý. Để chống lại nguy cơ của các Trojan, cần phải bảo đảm chính xác hóa các mô hình tấn công và các dấu hiệu kích hoạt. Các kỹ thuật phát hiện và ngăn chặn cũng cần được thực thi cùng với các mô hình này. Tuy nhiên, vẫn chưa có kỹ thuật bảo vệ nào đảm bảo an toàn 100%, các nghiên cứu tương lai trong lĩnh vực này giúp khẳng định các lược đồ bảo vệ trước các biến thể tấn công dùng HT.
TÀI LIỆU THAM KHẢO 1. Bohan Yang, "True Random Number Generators for FPGAS", 2018; 2. W. Killmann and W. Schindler, "AIS 31: Functionality Classes and Evaluation Methodology for True (Physical) Random Number Generators, Version 3.1". Tech. Rep., Sept. 2001. 3. NIST, Special Publication 800-22,"A Statistical Test Suite for Random and Pseudorandom Number Generators for Cryptographic Applications https://nvlpubs.nist.gov/nistpubs/legacy/sp/nistspecialpublication800-22r1a.pdf, 2010; 4. Bernard, F., Fischer, V., and Valtchanov, B. "Mathematical model of physical RNGs based on coherent sampling". Tatra Mountains Mathematical Publications, 1 (2010); 5. Cherkaoui, A., Fischer, V., Aubert, A., and Fesquet, L. "A self-timed ring based true random number generator". In Proceedings - International Symposium on Asynchronous Circuits and Systems (may 2013), IEEE, pp. 99–106; 6. Baudet, M., Lubicz, D., Micolod, J., and Tassiaux, A. "On the security of oscillator-based random number generators". Journal of Cryptology 24, 2 (Apr 2011); 7. David Johnston, "Random Number Generators - Principles and Practices: A Guide for Engineers and Programmers", 2018; 8. Swarup Bhunia, Mark Tehranipoor, "Hardware Secuirity: A Hands-on Learning Approach", Copyright © 2019 Elsevier Inc. All rights reserved, 2019. |
TS. Nguyễn Đức Công, Trần Thị Ngà (Học viện Kỹ thuật mật mã)