[rtl] Faults that reach only the register file can go unnoticed

Đang mở
#2,576 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 2 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức phù hợp với người mới
35/100
Loại issue
Lỗi
Độ rõ ràng
Cần làm rõ
Mức độ hoạt động
Sôi nổi
Lĩnh vực
security

Hướng nghiên cứu

Start by reading security.rst and the fault-injection findings described in the issue, then trace the register file ECC and lockstep coverage in the OpenTitan ibex_top configuration. The issue asks whether register-file-only faults are in scope; the expected outcome is a decision on that coverage and, if they are out of scope, a one-line clarification in security.rst.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

A fault that reaches only the register file, not the lockstep, can still go unnoticed. #2566 added the register file's read addresses and write port to the lockstep compare, through u_signals_prim_buf. A fault that the lockstep does not receive is left to the register file ECC. That ECC misses a wrong value with the same check bits as the correct one, for example its inverse. A fault in the register file's own address decoding could do the same, but I did not test that.

I ran a SymbiYosys fault-injection check on #2566, using ibex_top in the opentitan config with CHERIoT mode off and on. It flipped one bit of the port A read address, the write address or the write enable for one cycle. A flip on the core's output reaches both the register file and the lockstep. Every such flip was followed by a lockstep mismatch and the major alert, unless it came too late for the check to see the response. For flips that reached only the register file, the check found cases with no major alert within three clock cycles of the core using the wrong value.

The check ran about 10 clock cycles deep, without interrupts or debug requests. Address flips hit a read or a write that an instruction made. Write-enable flips could also hit a cycle without a write. I did not inject faults on the write data, the port B address, address bit 4 in CHERIoT mode, or during dummy instructions.

security.rst counts the register file as covered by its ECC and the lockstep compare. If faults that reach only the register file are out of scope, should I send a one-line follow-up that says so?

Ngôn ngữ chính
SystemVerilog
Star
2.2k
Fork
836
Merge trung bình
5 ngày 8 giờ
Pull request đã merge (30 ngày)
22

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của lowRISC/ibex

Tất cả issue của lowRISC/ibex

Issue tương tự

Thêm issue về Security

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.