[Cryptech Tech] dev-bridge board
Peter Stuge
peter at stuge.se
Wed Dec 9 22:24:01 UTC 2015
Randy Bush wrote:
> for security boundary reasons,
Unfortunately, nothing supports that argument.
> the alpha board, and any follow-on, will not have uncastrated usb.
I think "uncastrated USB" as you call it (haha) has *fewer* security
and reliability implications than a homemade parser for an unreliable
byte stream.
> we already had this discussion; let's not repeat it.
The decision is based on fear and uncertanity, not on facts. I'll keep
saying that as long as someone else claims that it helps security. :)
But I understand that you will stay with your decision.
I've offered to help with the only difficult part; USB protocol design.
I estimate that it would take a few hours to think through with Rob and
Paul. Maybe we can have a go at that if we meet sometime soon.
Now - one actually does not have to exclude the other.
What I mean is that a USB protocol does not neccessarily have to
be implemented in the STM32 - it could be implemented in another
controller which replaces the (expensive and stupid) FTDI UART.
Replacing the FTDI UART with a small USB-capable processor would
allow the best of both worlds - a UART is still the interface to
the STM32F429, but a meaningful USB protocol is the interface to
the host software.
I had forgotten that the USB interface only needs to be full speed
so I had ruled this option out.
There are tons of candidate processors to choose from. I have many
years of experience with the NXP LPC1342/43 Cortex-M3; among other
things I've used it in a workshop on how to create USB devices and
easily write host software. That material is online at http://cbs.stuge.se/
The required components given 3.3V are CPU (LQFP48), two ceramic supply
caps, a crystal, two caps for the crystal, two series resistors for USB
D+ and D-, one 1.5k 1% pull-up and one digital transistor or FET to
control USB presence from the device.
The hardware might even be simpler than for the FT232, the software
allows a good USB host protocol, and with this approach someone will
still have the pleasure of writing a serializer/deserializer, but
with the potential added benefit that they would be running quite
close together and in very similar environments - maybe allowing even
more code reuse.
//Peter
More information about the Tech
mailing list