Giải pháp chống can thiệp vật lý trái phép thiết bị bảo mật
CÁC PHƯƠNG PHÁP TẤN CÔNG VẬT LÝ
Có thể chia các phương pháp tấn công vật lý thành hai nhóm chính, đó là tấn công xâm lấn và tấn công không xâm lấn.
Phương pháp tấn công xâm lấn
Là phương pháp tấn công phần cứng sử dụng các công cụ tác động trực tiếp vào thiết bị mật mã. Sau giai đoạn mở vỏ thiết bị, kẻ tấn công có thể quan sát được các khối chức năng, bus dữ liệu, điều khiển trên bo mạch. Do kiểu tấn công này bắt buộc phải tác động trực tiếp vào thiết bị nên thường để lại những dấu vết trên vỏ máy, trên linh kiện, đường mạch in,...
Tấn công vật lý lên vỏ thiết bị, linh kiện: Các thiết bị điện tử nói chung thường được đặt trong các vỏ nhựa, composite, một số loại được đựa trong vỏ thép bảo vệ. Hình 1 minh họa việc mở vỏ một thiết bị eToken bằng dao chuyên dụng.
Hình 1. Mở vỏ bọc của thiết bị USB Token bằng dao X-Acto
Đối với các linh kiện có kiểu đóng gói phức tạp (BGA, QFP, TSSOP,...), kẻ tấn công thường sử dụng một số thiết bị hỗ trợ tách vỏ tự động như: hệ thống mở vỏ plastic tự động PS102W, hệ thống tách vỏ laser PL101, hệ thống tách vỏ ES312 của hãng Nippon Scientific.
Tấn công lên nhân bán dẫn: Sau khi linh kiện cần tấn công đã bị mở vỏ và lộ hoàn toàn nhân bán dẫn, mục tiêu tiếp theo của kẻ tấn công là lấy thông tin trong bộ nhớ, thuật toán mật mã, khóa mật, hoặc thiết kế của module mật mã cứng hóa.
Một số phương pháp mà kẻ tấn công có thể sử dụng như sau:
- Kỹ thuật đảo ngược thiết kế: Tập trung vào phân tích để nắm được cấu trúc của linh kiện và chức năng của nó. Quá trình này rất phức tạp, sử dụng kỹ thuật tách từng lớp trong nhân bán dẫn, chụp ảnh từng lớp bán dẫn (Hình 2). Cuối cùng là quá trình tổng hợp lại toàn bộ các hình ảnh có được để dựng lại một tệp netlist dạng chuẩn, tệp này có thể sử dụng để mô phỏng chức năng của linh kiện.
Hình 2. Kỹ thuật đảo ngược thiết kế
- Kỹ thuật đọc lại bộ nhớ bằng chụp ảnh quang học: Kỹ thuật này chỉ áp dụng với bộ nhớ Mask ROM. Hình 3 là ảnh về bộ nhớ Mask ROM của vi điều khiển Motorola MC68HC705P6A được sản xuất với công nghệ 1.2 có thể đọc được với độ phóng đại khoảng 500 lần.
Hình 3. Ảnh quang học của Mask ROM (trước và sau khi ăn mòn hóa chất)
- Kỹ thuật thăm dò bằng trạm vi dò: Kỹ thuật này sử dụng một thiết bị quan trọng là trạm vi dò, dùng để quan sát, đọc tín hiệu tại các vị trí bên trong chip như: bus dữ liệu, bus điều khiển, bộ nhớ trong. Ngoài ra, thiết bị còn có khả năng tạo ra các tín hiệu để kiểm tra phản ứng của chip.
- Kỹ thuật thay đổi chip: Để thực hiện mục đích này dùng kỹ thuật quét và kiểm tra vị trí bit bảo mật, mạch bảo vệ để phá hủy nó (Hình 4). Để vô hiệu hóa mạch bảo vệ, cần sử dụng hai công cụ là trạm cắt laser và trạm phát chùm ion tập trung (Focus Ion Beam Workstation - FIB).
Hình 4. Cắt dây nối phá hủy mạch bảo vệ
Phương pháp tấn công không xâm lấn
Đây là phương pháp tấn công rất nguy hiểm gần như không để lại dấu vết trong các cuộc tấn công. Quá trình tấn công không yêu cầu tác động trực tiếp lên thiết bị. Các cuộc tấn công thường dựa trên các phát xạ các dạng tín hiệu vật lý khi thiết bị hoạt động như: nhiệt độ, thời gian thực hiện, tiêu thụ nguồn, bức xạ điện từ trường, ánh sáng.
Phương pháp tấn công này có thể chia làm hai loại chính: tấn công thụ động và chủ động. Tấn công thụ động hay còn gọi là tấn công kênh kề, với kiểu tấn công này gần như không có sự tương tác giữa kẻ tấn công và thiết bị, thông qua quan sát tín hiệu, bức xạ phát ra từ thiết bị mật mã, tổng hợp và phân tích các dạng dữ liệu thu thập được để tìm ra thông tin mật đang được xử lý. Các kiểu tấn công phổ biến được biết đến là tấn công phân tích nguồn, phân tích thời gian, chụp ảnh nhiệt, phân tích bức xạ điện từ. Kiểu tấn công không xâm lấn khác với mức độ nguy hiểm cao hơn là tấn công chủ động, tức là chủ động gây ra những điều kiện bất thường cho thiết bị mật mã, từ đó quan sát, phân tích các dữ liệu thu được. Kiểu tấn công phổ biến dạng này là tấn công gây lỗi và tấn công hộp đen. Dưới đây là một số phương pháp tấn công không xâm lấn:
- Tấn công phân tích năng lượng: Tấn công nguồn dựa trên nguyên lý khi các bộ vi xử lý và các mạch điện tử nói chung thực hiện các hàm mật mã, các transistor sẽ đóng hoặc mở làm cho dòng tiêu thụ tổng cộng cung cấp cho mạch điện thay đổi nhất thời. Sử dụng một điện trở mắc nối tiếp vào chân nguồn của linh kiện có thể đo được các biến thiên này trên Osiloscope. Giả thiết kẻ tấn công có hiểu biết nào đó về các hàm mật mã này, họ có thể xây dựng mối tương quan giữa những thay đổi về dòng điện với dữ liệu đang được xử lý và khóa mã được sử dụng. Tấn công phân tích năng lượng được chia thành hai loại là: Phân tích năng lượng đơn giản SPA và Phân tích năng lượng vi sai DPA. Hình 5 là giản đồ tiêu thụ năng lượng của ASIC thực hiện thuật toán DES. Có thể dễ dàng nhận thấy 16 vùng của thuật toán.
Hình 5. Năng lượng tiêu thụ của chip ASIC thực hiện DES
- Tấn công phân tích thời gian: Tấn công phân tích thời gian là dựa vào quan sát thời gian thực hiện các phép toán mật mã để suy ra khóa mã. Mô hình kiểu tấn công này được thể hiện trong Hình 6. Khi phần mềm thực hiện các phép toán mật mã, như phép nhân module chẳng hạn, thì vi xử lý thực hiện nhiều lệnh nhân và chia. Do các lệnh này chiếm các chu kỳ máy khác nhau nên bằng cách thống kê thời gian thực hiện thuật toán mật mã, kẻ tấn công có thể thu thập và phân tích dữ liệu để phá khóa. Phương pháp tấn công này đã thử nghiệm thành công trên một smartcard, chức năng thực hiện thuật toán chữ ký số RSA. Để thực hiện cuộc tấn công, cần thu thập đuợc một tập các thông báo cùng với thời gian xử lý tương ứng (thời gian trễ từ lúc có yêu cầu đến lúc có thông báo phản hồi). Các thiết bị mật mã hiện tại thường ẩn chứa nhiều điểm yếu cho các cuộc tấn công phân tích thời gian. Đó là do thời gian thực hiện một thông báo phản hồi phụ thuộc vào dữ liệu đầu vào, khóa mã và các phép toán thực hiện. Các phép toán thực hiện cần một số lượng chu kỳ lệnh nhất định và có thể đo được.
Hình 6. Mô hình tấn công phân tích thời gian
- Đọc dữ liệu tồn dư: Các hệ thống bảo mật thường lưu trữ khóa bí mật trên SRAM, khi bật nguồn dữ liệu này sẽ bị xóa đi. Nhưng thực tế đã có công trình nghiên cứu chứng minh rằng với nhiệt độ dưới 20oC dữ liệu trong SRAM hoàn toàn bị đóng băng. Vì vậy, những thiết bị hoạt động dưới nhiệt độ này hoàn toàn có khả năng bị đọc lại khóa từ SRAM. Một số nhà nghiên cứu cũng đã làm các thí nghiệm để kiểm tra độ phụ thuộc của thời gian tồn dư dữ liệu trên SRAM với nhiệt độ và kết quả đã chứng minh ngay cả với nhiệt độ cao SRAM vẫn còn tồn dư dữ liệu. Kết quả là những thông tin bí mật, hoàn toàn có nguy cơ bị rò rỉ.
MỘT SỐ GIẢI PHÁP PHÒNG CHỐNG TẤN CÔNG PHẦN CỨNG
Phòng chống xâm nhập cơ học đối với vỏ thiết bị
Ngăn chặn xâm nhập là sử dụng các vật liệu đặc biệt để ngăn cản hay làm khó khăn cho việc xâm nhập vào thiết bị.
- Phòng chống bằng sơn phủ chip đặc biệt: Kỹ thuật này được sử dụng nhằm ngăn chặn cuộc tấn công ở mức độ chip riêng biệt (ví dụ như vi thăm dò pico). Bề mặt của chip được bao phủ bằng một loại chất phủ đặc biệt. Khi tấn công ý định xóa bỏ lớp phủ để xâm nhập vào bên trong chip thì đồng thời chất silicon cũng bị phá hủy. Không chỉ để che phủ chip, chất này còn có khả năng gây nhầm lẫn cho kẻ tấn công. Chẳng hạn thấy dường như phần tử trong chip là transistor, nhưng thực ra đó chỉ là đường nối giữa cổng và nguồn điện.
- Phòng chống bằng xóa nhãn, in lại nhãn, đóng gói lại: Việc xóa bỏ nhãn, dấu là phương pháp bảo vệ đơn giản khá phổ biến. Giải pháp này làm khó khăn thêm cho quá trình tấn công.
Thiết kế phần cứng đảm bảo an toàn
- Thiết kế hệ thống càng đơn giản (ít linh kiện, độ tích hợp cao) càng đáng tin cậy. Do hệ thống càng phức tạp, càng dễ để lộ các điểm cho kẻ tấn công lợi dụng để truy cập.
- Thiết kế các cơ chế tự kiểm tra khi bật nguồn để kiểm tra điều kiện làm việc, môi trường, thuật toán mật, tính toàn vẹn của phần mềm, firmware,… Các kiểm tra này nhằm đảm bảo thiết bị hoạt động chính xác, chống các tấn công (power glitch, clock glitch, gây lỗi,...). Khi thiết bị đang ở trạng thái lỗi, cần dừng tất cả các hoạt động mã hóa, giải mã, dừng xuất dữ liệu đã qua xử lý mật ở đầu ra.
- Hạn chế thiết kế các điểm, giao diện truy cập đối với dữ liệu trong module mật mã. Có thể thực hiện các cơ chế phá hủy giao diện truy cập nếu cần thiết.
- Bố trí các linh kiện (có lưu trữ thông tin mật) gần sát nhau, trong cùng một khu vực để có thể dễ dàng tích hợp các giải pháp phòng chống tấn công xâm nhập.
- Kiểm tra mức phát xạ, các khu vực có phát xạ lớn cần thực hiện bọc kim, sử dụng các vật liệu che chắn giảm phát xạ điện từ trường ra môi trường. Các tiêu chí này nhằm đảm bảo cho thiết bị mật mã hoạt động ổn định và giảm nguy cơ bị tấn công thu bức xạ điện từ.
- Thiết kế vỏ bảo vệ cho module, thiết bị bằng vật liệu bền, keo Epoxy bảo vệ module mật trước các tấn công xâm nhập. Bọc vỏ thiết bị bằng kim loại bền vừa có khả năng chống các tấn công xâm nhập đơn giản, vừa giảm phát xạ điện từ ra môi trường.
- Lựa chọn linh kiện có mức độ tiêu thụ nguồn thấp, giảm khả năng bị tấn công phân tích nguồn; linh kiện có mức tỏa nhiệt thấp, giảm khả năng bị chụp ảnh bằng camera hồng ngoại.
- Lựa chọn bộ nhớ lưu trữ chương trình, thuật toán, khóa cho phù hợp. Bộ nhớ dựa trên công nghệ SRAM có độ an toàn khá cao, rất thích hợp cho lưu trữ khóa. Chỉ có duy nhất một kiểu tấn công thành công là tấn công đọc dữ liệu tồn dư ở nhiệt độ thấp. Để thực hiện thành công phương pháp tấn công này đòi hỏi kẻ tấn công phải có kỹ năng và trang bị rất tốt.
KẾT LUẬN
Bài báo đã trình bày về các phương pháp tấn công vật lý và một số giải pháp phòng chống tấn công phần cứng thiết bị bảo mật. Bất kỳ một công nghệ sản xuất chip nào cũng đều có thể bị tấn công phần cứng, kể cả các chip có độ an toàn cao như smartcard. Vì vậy tất cả dữ liệu khóa cần lưu ở dạng mã hóa. Các khóa mật mã trong thiết kế phần cứng thiết bị cần được bảo vệ chống đọc ngược. Các thiết kế phần cứng sau khi hoàn thiện nên phủ lớp Epoxy trên toàn bộ IC vi xử lý, cần nghiên cứu, phủ sơn chống bức xạ nên vỏ thiết bị. Trong thiết kế, toàn bộ khóa mật và thực thi thuật toàn mật mã trong một chip duy nhất, không dùng bộ nhớ RAM ngoài trên thiết bị. Đó là các yếu tố quan trọng cần lưu ý khi nghiên cứu, thiết kế các sản phẩm phần cứng mật mã.
TÀI LIỆU THAM KHẢO [1]. Hardware Security: Design, Threats, and Safeguards. Mukhopadhyay, Debdeep, Chakraborty, Rajat Subhra. CRC Press. 2017. [2]. Hardware security in the IoT - Embedded Computing Design. embedded-computing.com. 2017. [3]. A Primer on Hardware Security: Models, Methods, and Metrics". Rostami, M. Koushanfar, F. Karri, R. 2014. [4]. Regaining Trust in VLSI Design: Design-for-Trust Techniques. Rajendran, J. Sinanoglu, O. Karri, R. 2014. [5]. Towards Hardware-Intrinsic Security: Foundations and Practice. Sadeghi, Ahmad-Reza, Naccache, David. 2017. |
ThS. Nguyễn Tuấn Ngọc, TS. Nguyễn Phong Vũ (Cục Cơ yếu, Bộ Tổng tham mưu)