Let's talk about some of the security features of the new @Raspberry_Pi RP2350, because they are 🔥🧵
1.) Glitch Detectors
The RP2350 has 4 embedded glitch detectors, with configurable sensitivity. These will respond to voltage & EM fault-injection attempts, and reset the chip.
In our testing we found that they are quite effective at capturing most glitches.
2.) The RCP - Redundancy Coprocessor
The RCP protects the bootrom against fault-injection (and other) attacks by generating randomized stack canaries (in hardware!), providing boolean value validation based on bit-patterns, etc.
3.) Secure Boot
RP2350 has secure-boot - firmware can be signed using ECC, and the device comes with 4 key-slots. You can still use the USB bootloader together with secure-boot, making it super easy to use.
4.) TrustZone-M
The RP2350 is a Cortex-M33 - featuring TrustZone-M to split the device into "Secure" and "Non-secure". Peripherals, OTP, etc. can be set to be only available in secure world, allowing nice privilege separation.
5.) Debug protection
The debug interface of the chip can be permanently disabled - or locked by a 128-bit debug key.
6.) OTP protections
The chip has a large (8kB) OTP, which can even hold a small bootloader. It comes with protections such as page lock (and additional sw locks). I.e. an early-stage bootloader can have access to secrets, while later code (even in "Secure" mode) can't acces it!
We (@hextreeio) even worked with Raspberry Pi on the RP2350 Security Playground board - it allows you to play & test with all of these features, going as far as telling you exactly how to glitch it!
Find us at @defcon in the @EmbeddedVillage to play with it!
We are also running the RP2350 Hacking Challenge: If you manage to hack the RP2350 you can win $10,000!
So I was trying to sniff the BitLocker TPM key on an old laptop of mine - it has this great debug port that exposes most of the TPM (Low Pin Count Bus) signals, but it’s missing the clock signal.
So I could either hunt for the clock signal on the backside - or build a "clockless" LPC analyzer! And after a bit of coding I built a @saleae LA analyzer that doesn't need a clock signal - and was able to decode the whole TPM communication!
Then I wrote a couple of simple scripts to extract the VMK (Volume Master Key) from my recorded traffic!
This is a (not-so-great😅) die shot of the upper side of an ATECC608A secure element. As you can see, the upper layer looks like it's all metal - but if we zoom in, we get the above pattern
This pattern is there to prevent invasive attacks such as microprobing, and also makes it necessary to delayer the chip to start even seeing any of the actual logic (though you can just look at it from the backside using IR).