What are lock bits in microcontrollers used for? Are they something specific to AVRs, or used more of a general concept in microcontrollers?
2 Answers
Lock bits are used in a variety of microcontrollers, and are generally used to enforce hardware-level security of the code inside them (no readback of the flash is common, also sometimes referred to as 'code protect').
They're not 100% secure, but are generally good enough to keep 'honest people' out of your code. Enterprising hackers often find ways around the lock bits (glitching, fuzzing, and sometimes even making holes into specific parts of the IC to expose signal lines and transistors).
Take a look at sites like Flylogic Engineering to get a taste the level of sophistication out there when it comes to microcontroller security.
-
2\$\begingroup\$ Warning: It's easy to spend more time than you planned to Flylogic's blog. Fascinating site. \$\endgroup\$ Aug 19, 2011 at 18:43
-
1\$\begingroup\$ Christopher Tarnovsky is a genius, no doubt, even when he's not getting in trouble from satellite TV providers. :) \$\endgroup\$ Aug 19, 2011 at 20:35
-
\$\begingroup\$ Oh my god. That blog is amazing. And frightening. I cant stop reading. I want to join them...... \$\endgroup\$ Jan 25, 2015 at 0:00
"Lock bits" are used for protecting program and data memory (they are used with both the AT89 and AVR). They aren't unique to Atmel; Maxim uses them as well, in their secure 8051 products. Other manufacturers use similar protection techniques, but give them a different name.