Mod note: I'm going to move this into a thread of its own - I think this is a topic in its own right.
I agree with Michele's comments here, and feel that the current situation is a simplistic solution brought about by a knee-jerk reaction to what is ultimately a legitimate concern over security.
Anti-tampering should be just that: It should prevent
unauthorised re-configuration of the device or retrieval of programmed contents, but should allow legitimate users relatively unhindered access. I say "relatively" because it is perfectly reasonable that some additional task is required to demonstrate authority.
Having said that, for those who really want the ultimate level of device security and genuinely feel they need to completely lock out JTAG, then that should also be possible. Considering the FPGA position we discussed, I don't see why a three-tier scheme can't work using two AT bits, such as this:
- Code: Select all
AT1 AT0 Accessibility
0 0 No anti-tamper. Plain bitstream configuration. BScan I/O cells accessible.
0 1 Anti-tamper active. Encrypted bitstream configuration. BScan I/O cells accessible.
1 X Anti-tamper active. Encrypted bitstream configuration. BScan I/O cells not accessible.
I can't think right now whether the test access should also require the use of an AES encryption key
I guess security
needs to be part of the protected device: Adding a "secure gateway" or similar to the chain won't really address the issue for many users (even though it would probably be adequate, even preferable, for my applications), as the JTAG port could be picked-off downstream, although using BGA devices and buried tracking could mitigate that risk to some extent.