The ESP32 for those who aren't familiar is a system on chip sold in the hundreds of millions and is the wireless SoC leader. It's used all over the embedded IoT maker world.
-
-
Prikaži ovu nit
-
The chip is actually bloody cool. Ultra low power, with touch sensors, Bluetooth, wireless and CAN!! It has 4mb flash storage and is super easy to integrate and this makes it so popular.
Prikaži ovu nit -
So the chip has crypto HW accerator and secure boot and this was the basis of his research, which took 3 months. Physical access was the method, think supply chain attacks. Now all the cool kids do voltage fault injection or glitching like
@colinoflynn and this was usedPrikaži ovu nit -
As a side note, I've had a Dr
@LargeCardinal explain glitching and it's still a dark artform performed by wizards and witches. Just magic so let's leave it there. The chip has 3 power domains. These are separate and used in glitchingPrikaži ovu nit -
Opening up the chip and removing the capacitors (needed to glitch). Then the PCB was modifiedpic.twitter.com/wWZHqsFH9M
Prikaži ovu nit -
He built his own glitching framework that was automated meaning he could sleep and glitch.pic.twitter.com/BgNf32ZDFp
Prikaži ovu nit -
Tue second approached targets the crypto engineers. This was more of a traditional code review. What he found was that the AES_TEXT_m_reg registers stores more than they should. This allowed extraction. The second vuln was the result of an insecure for looppic.twitter.com/fVxpKtle4J
Prikaži ovu nit -
Sadly both espressiv and arm didn't respond to his vuln disclosure contact. This prompted him to go deeper, targeting secure boot. Secure boot is vital in a hardware root of trust world. The secure boot key (sbk) is burned into the e-fuses blk2. This stops readout or modding
Prikaži ovu nit -
Based upon his reverse engineering, this is the boot process. There are two verifications here. Boot ROM stage 0 and ECDSA verification by the stage 2 bootloaderpic.twitter.com/QHjrMkLasJ
Prikaži ovu nit -
The next logical step is bypassing the secure boot. this gives you code exec. This isn't easy as you need to force the ESP32 to boot an unsigned bootloader to boot an app. Dump the bootroom and use a FT2232H board and use gdb
Prikaži ovu nit -
This is bloody amazing to me, and sounds trivial but this is not easypic.twitter.com/Xq1suGscsB
Prikaži ovu nit -
The vuln is sexy too. Set the a10 register to 0 via the burned JTAG fuse and bish bash bosh.pic.twitter.com/p89QmwSf0M
Prikaži ovu nit
Kraj razgovora
Novi razgovor -
Čini se da učitavanje traje već neko vrijeme.
Twitter je možda preopterećen ili ima kratkotrajnih poteškoća u radu. Pokušajte ponovno ili potražite dodatne informacije u odjeljku Status Twittera.