0
0
Lập trình
Thaycacac
Thaycacac thaycacac

Tại Sao eFuses Quan Trọng Trong Bảo Mật Firmware?

Đăng vào 2 ngày trước

• 7 phút đọc

1. eFuses và Bộ Nhớ OTP Là Gì?

Bộ nhớ lập trình một lần (OTP) là loại lưu trữ không bay hơi có thể được ghi một lần duy nhất (hoặc trong một số biến thể: ghi theo hướng đơn điệu, ví dụ: 0→1) sau khi sản xuất và sau đó được khóa vĩnh viễn.

eFuse là một cách triển khai phổ biến, sử dụng các đường dẫn kim loại hoặc silicon yếu do cố ý mà bị thay đổi vĩnh viễn bởi một sự kiện lập trình (di chuyển điện tử hoặc tăng nhiệt độ), thay đổi trạng thái điện cho bit đó. Các công nghệ OTP khác bao gồm antifuse (tắt→bật khi được lập trình) và các biến thể PROM cổng nổi.

Các điểm khác biệt quan trọng:

  • eFuse (fuse điện tử): thường lưu trữ giá trị logic mặc định (thường là “1”) và sự kiện lập trình sẽ thổi/thay đổi đường dẫn để tạo ra trạng thái ngược lại. Việc lập trình là không thể đảo ngược.
  • Antifuse: trạng thái mặc định là mở / 0, lập trình tạo ra một liên kết dẫn điện sản xuất ra 1.
  • Không nhầm lẫn với eFuses điện năng: các thiết bị khác được sử dụng như công tắc giới hạn dòng điện điện tử.

2. Tại Sao eFuses Lại Quan Trọng (Lý Do Thực Tiễn)

  1. Cơ sở tin cậy không thể thay đổi: Lưu trữ khóa công khai (ROTPK), cờ bật/tắt khởi động an toàn, hoặc chứng chỉ thiết bị không thể thay đổi.
  2. Chống quay ngược và trạng thái vòng đời: Ghi lại ngưỡng phiên bản firmware hoặc trạng thái vòng đời của thiết bị.
  3. Danh tính thiết bị duy nhất: Ghi địa chỉ MAC nhà máy, ID duy nhất, hoặc số serial mà không bao giờ được thay đổi.
  4. Hiệu chuẩn/trimming vĩnh viễn cho analog/performance: Lưu trữ các hằng số hiệu chuẩn nhà máy và các giá trị trimming.
  5. Khu vực nhỏ và giá rẻ cho các bit thiết yếu: Chiếm ít silicon và tiêu tốn ít điện năng hơn so với flash hoặc EEPROM cho một số lượng bit nhỏ.
  6. Quy trình sản xuất và cấp phát đơn giản: Bước lập trình một lần đơn giản hóa mô hình kiểm tra, thử nghiệm và bảo mật.

3. Cách eFuses Được Sử Dụng Trong Sản Phẩm Thực Tế

  • Cờ khởi động an toàn và khóa: Nhiều nhà cung cấp chip sử dụng eFuse để kích hoạt khởi động an toàn và lưu trữ khóa công khai hoặc bản tóm tắt khóa.
  • Mô-đun kết nối nhúng: Lập trình địa chỉ MAC và vô hiệu hóa chế độ phục hồi thông qua eFuses ngăn chặn các cuộc tấn công thay thế flash.
  • Vi điều khiển (gia đình ESP32): API quản lý eFuse của Espressif xác định, ghi, và đọc eFuses cho MAC, khóa mã hóa và vô hiệu hóa tính năng (ví dụ: JTAG).

4. Thương Thuyết Kỹ Thuật

Điểm mạnh:

  • Tính vĩnh cửu = khả năng chống giả mạo và chống quay ngược.
  • Diện tích nhỏ và tiêu thụ điện năng thấp cho số lượng bit nhỏ.
  • Mô hình lập trình đơn giản (một lần).

Điểm yếu:

  • Không thể ghi lại: Lập trình sai sẽ dẫn đến hậu quả nghiêm trọng.
  • Dung lượng hạn chế: Không phù hợp cho dữ liệu lớn.
  • Độ phức tạp trong lập trình/rủi ro năng suất: Cần các thông số điện áp/dòng chính xác.
  • Tấn công kênh bên và tấn công vật lý: eFuses trên chip vẫn dễ bị tấn công xâm nhập; các phần tử bảo mật hoặc TPM cung cấp sự bảo vệ mạnh mẽ hơn.

5. So Sánh eFuses với Các Tùy Chọn Lưu Trữ Khác — Bảng So Sánh

Thuộc Tính / Công Nghệ eFuses (OTP) Antifuse (OTP) Flash / EEPROM Phần Tử Bảo Mật / TPM
Tính không thay đổi / chống quay ngược 95% 95% 10% 90%
Độ linh hoạt trong lập trình 10% 10% 95% 40%
Khu vực / chi phí cho vài bit 90% 85% 30% 50%
Điện năng (chế độ chờ) 90% 95% 50% 70%
Khả năng chống lại cuộc tấn công thay thế firmware 90% 90% 10% 95%
Dễ dàng trong lập trình sản xuất 70% 60% 85% 40%
Bảo vệ cao cấp / chứng nhận 40% 40% 30% 95%

Ghi chú:

  • eFuses và antifuses về cơ bản tương tự nhau về độ bền.
  • Flash/EEPROM là tốt nhất cho tính khả biến và dung lượng.
  • Các phần tử bảo mật cung cấp sự bảo vệ vật lý mạnh mẽ hơn và các thuật toán được chứng nhận.

6. Khi Nào Nên Sử Dụng eFuses

Sử dụng eFuses khi:

  • Bạn cần một điểm neo vĩnh viễn cho chuỗi khởi động (ROTPK, kích hoạt khởi động an toàn, đánh dấu chống quay ngược).
  • Danh tính duy nhất được lập trình nhà máy không bao giờ được thay đổi.
  • Các hằng số hiệu chuẩn/trimming phải không thể thay đổi.
  • Diện tích/điện năng tối thiểu là cần thiết.
  • Bạn có thể xử lý các ràng buộc hoạt động (lập trình sản xuất, điểm kiểm tra, chiến lược phục hồi).

Tránh sử dụng eFuses khi:

  • Có sự thay đổi cấu hình trong vòng đời thiết bị.
  • Bạn cần bảo vệ mã hóa đã được chứng nhận vượt quá những gì mà eFuses trên chip có thể cung cấp.

7. Thực Hành Tốt Nhất Trong Sản Xuất & Cấp Phát

  1. Thiết kế cho việc khóa theo giai đoạn: Tách biệt các vùng fuse hoặc các bit theo tính năng; sử dụng cờ phát triển trong quá trình lặp lại.
  2. Bóng và xác minh: Lập trình các bit bóng tạm thời và xác minh nhiều lần.
  3. Tự động hóa với thiết bị lập trình đã được hiệu chỉnh: Kiểm soát hồ sơ xung và xác minh các giá trị đọc.
  4. Cung cấp chế độ kiểm tra trong các lần chạy đầu tiên: Tránh các cờ không thể đảo ngược cho đến khi các quy trình firmware ổn định.
  5. Lập kế hoạch cho các khóa bị mất / RMA: Tính đến các bit không thể đảo ngược trong chiến lược thay thế.
  6. Tài liệu bản đồ eFuse & dự trữ bits: Để lại một số bit đơn điệu dự phòng cho các chính sách trong tương lai.

8. Các Cân Nhắc Bảo Mật

  • eFuses bảo vệ chống lại việc thay thế firmware nhưng không miễn nhiễm với các cuộc tấn công xâm nhập.
  • Các cuộc tấn công kênh bên hoặc tiêm lỗi có thể cố gắng lật các bit; bao gồm xác minh và phát hiện giả mạo.
  • Tránh lưu trữ khóa bí mật thô có thể truy cập từ các bus; nên ưu tiên các bản tóm tắt khóa hoặc khóa được niêm phong bên trong các khu vực bảo mật.

9. Tiêu Chuẩn Ngành & Ghi Chú Hệ Sinh Thái

  • Tài liệu của nhà cung cấp: Espressif, Silicon Labs, NXP và TI cung cấp API eFuse, bản đồ và hướng dẫn lập trình.
  • Tiêu chuẩn kiến trúc bảo mật: PSA của ARM khuyến nghị các điểm neo phần cứng như eFuses cho các gốc tin cậy.
  • Lựa chọn công nghệ: Synopsys, SemiEngineering và các nguồn IP bán dẫn khác thảo luận về các yếu tố thương mại của eFuse, antifuse, và OTP cổng nổi.

10. Danh Sách Kiểm Tra Thực Tế Trước Khi Cam Kết Vào eFuses

  • Lập bản đồ những bit nào phải không thể thay đổi so với có thể thay đổi.
  • Thực hiện kế hoạch khóa từ phát triển → sản xuất.
  • Đảm bảo phần cứng lập trình sản xuất đã được chứng nhận.
  • Dự trù các bit dự phòng cho các chính sách tương lai.
  • Đánh giá xem bảo vệ cao cấp (FIPS/CC) có cần thiết hay không.
  • Kiểm tra quy trình phục hồi và RMA.
  • Xác nhận độ bền chống lại các lỗi tiêm/nháy.

11. Ví Dụ Thực Tế: Quy Trình Khởi Động An Toàn + Chống Quay Ngược

  1. Phát triển với khởi động an toàn tắt và sử dụng flash có thể thay đổi để thử nghiệm hình ảnh.
  2. Trong sản xuất, lập trình eFuses: ghi lại băm ROTPK, bật khởi động an toàn, thiết lập các bit phiên bản chống quay ngược.
  3. ROM khởi động kiểm tra eFuse ROTPK trước khi xác thực chữ ký bootloader; bootloader kiểm tra chữ ký firmware và các giá trị chống quay ngược.
  4. Bởi vì eFuses là không thể thay đổi, kẻ tấn công không thể hạ cấp firmware mà không vi phạm các bit chống quay ngược.

12. Hướng Dẫn Kết Thúc

  • Đối xử với eFuses như các điểm neo chính sách, không phải là cấu hình có thể thay đổi.
  • Giữ bản đồ eFuse ở mức tối thiểu: khóa, chống quay ngược, ID thiết bị và một vài công tắc chính sách.
  • Sử dụng eFuses để đơn giản hóa sự tin cậy, làm cho các cuộc tấn công ghi đè firmware trở nên khó khăn hơn.
  • Đối với các ứng dụng có yêu cầu cao, kết hợp eFuses với các phần tử bảo mật và tuân theo quy trình cấp phát/chứng nhận chính thức.

Tài Liệu Tham Khảo Được Chọn

  • Espressif: Quản lý eFuse / API efuse (gia đình ESP32)
  • Silicon Labs: AN1442 Khởi động An toàn với Chống Quay Ngược (ví dụ eFuse)
  • Synopsys: Bài viết về OTP NVM (so sánh eFuse/antifuse/cổng nổi)
  • SemiEngineering: Tổng quan về bộ nhớ Lập trình Một lần và lợi ích của antifuse
Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào