Download Flash Memory `Bumping` Attacks

Transcript
for some devices, the intermediate verification result is available as a part of the
standard protocol or can be easily requested. It becomes more complicated when
the block consists of multiple words of data, for example, if the verification is
performed after receiving every packet of 16 bytes. Still, as the verification is
done in hardware, memory contents must be read before the values are compared and this is done via a data bus of limited width. This way there will be
some inevitable delay between each word of data read from the memory. Hence,
with a fast enough fault injection one can influence the value of each word of the
data. This will be an example of a bumping attack (Fig. 2b). More interesting
results should be expected if the data latching time is slightly changed or if the
value of data is influenced on its way to the latches. This is possible because the
bits of data cannot reach the registers exactly at the same time. If this process
can be influenced with fault injection attacks it may allow certain bits of data to
be kept to a known state, thus making it possible to brute force the remaining
bits. There are two possible ways of applying selective bumping attacks – on the
rising edge of the fault injection or on the falling (Fig. 2b). However, both events
should happen close to the time when the data from memory is latched into the
data bus drivers.
Fig. 2. Timing diagram of a verify-only operation: (a)data blocks, (b)data words level
Term ‘bumping’ originally comes from a certain type of physical attack on
door locks [8]. The idea is to force the key bits into a desired state which will allow
access. In the context of the hardware security of semiconductors, ‘bumping’ shall
mean here bypassing the verification of a certain block of data by forcing the
data bus into a known state. Alternatively, ‘selective bumping’ shall mean that
certain bits of data are forced into known states allowing the remaining bits to
be searched through all possible combinations. Some parallels with lock bumping
can be observed. For example, Flash memory bumping attacks allow bypassing
the verification for certain words of data without knowing their real value. The
more powerful selective bumping attack allows masking of certain bits of data
within each word thus substantially reducing the attack time.