notes-computer-systems-hardwareSecurity

* buy a bunch of chips, randomly select some of them, destructively tear apart those to double-check the circuit they implement, then if they're good use other ones from that batch ** refinement: fingerprint each chip base on characteristics as power consumption, temperature, and electromagnetic emission; this can gives you confidence that you may be avoiding the scenario where the chips you happen to test are not tampered with but the one you actually use is ** note that it can be hard to detect changes to circuitry, even with a microscope [https://ece.umass.edu/news/paper-stealthy-trojans-attracting-international-attention

Note that detecting changes via behavior may be very difficult if the behavior only triggers in certain cases, or if the component being subverted is a random number generator [2]

(and there's also toolchain security, like preventing compiler subversion. One weapon here is writing your own self-hosting compiler and then compiling it -- hopefully the attack in 'reflections on trusting trust' wouldn't recognize it as a compiler -- better, compile it on paper and then type in the machine code yourself)

---