The hardware does not fully clear security-sensitive values, such as keys and intermediate values in cryptographic operations, when debug mode is entered.
Security sensitive values, keys, intermediate steps of cryptographic operations, etc. are stored in temporary registers in the hardware. If these values are not cleared when debug mode is entered they may be accessed by a debugger allowing sensitive information to be accessible by untrusted parties.
Impact: Read Memory
Impact: Bypass Protection Mechanism
In the above scenario, registers that store keys and intermediate values of cryptographic operations are not cleared when system enters debug mode. An untrusted actor running a debugger may read the contents of these registers and gain access to secret keys and other sensitive cryptographic information.
Whenever the chip enters debug mode, all registers containing security-sensitive data are be cleared rendering them unreadable.
module aes1_wrapper #( ...
verilog
assign core_key1 = { **
verilog
verilogmodule aes1_wrapper #( ...
verilog
debug_mode_i ? 'b0 :** {
verilog
... endmodule