Earlier quoted context omitted.
At roughly the same clock speed I think the 32-bit ARM7 in the Gameboy would actually run laps around an 8-bit 8051.
the original Gameboy had a Z80/8080 hybrid.
Tomu, a tiny ARM microprocessor which fits in your USB port
71–80 of 91 posts
Re: Tomu, a tiny ARM microprocessor which fits in your USB port
#72Earlier quoted context omitted.
well.. I'd probably disable the flashing LEDs. But, that aside, I too thought "oh cool... a complete ARM system in my USB.. what could possibly go wrong here" But, the other side of this is: this is precisely what every closed-box USB device I plug into my USB potentially IS. This is just the overt "hi I'm an awesome tiny computer" state we're actually living in, all the time TL;DR how do we know we aren't exposed to…
Every keyboard has an MCU. They used to be 8051s, but now ARM (or PIC or AVR) is more likely.
In other words, we've been in this world for a very long time - a lot of peripherals used to have fully fledged CPUs in them already in the 70's in some cases, and some of them were user-programmable. The reduction in this in the early PC era was an exception, not the norm.
Re: Tomu, a tiny ARM microprocessor which fits in your USB port
#73Having bought a number of maker projects where the PCB is designed to plug into the USB port, like this one, I find that the mechanics generally don't work all that reliably. Not sure about the exact cause, maybe manufacturing tolerances on PCBs are not tight enough.
Re: Tomu, a tiny ARM microprocessor which fits in your USB port
#74Earlier quoted context omitted.
One key (pardon the pun) requirement of a 2FA key is that it can't be cloned - how would this be prevented? Can the microprocessor be locked to prevent reading its flash memory?
Genuine question: if you can't clone your 2FA, how do you make spares like a house key ? If there is way to get a spare, what's the way to deal with key loss or shared access ?
Re: Tomu, a tiny ARM microprocessor which fits in your USB port
#75Earlier quoted context omitted.
I feel old knowing my Logitech USB receiver is roughly as powerful as the Gameboy Advance I bought in college.
At roughly the same clock speed I think the 32-bit ARM7 in the Gameboy would actually run laps around an 8-bit 8051.
8051 uses several (typically 4 or 12, etc. [1]) clock cycles for one actual machine cycle. So an instruction that takes "2" cycles, can actually take 24 clock cycles.
Of course, some modern 8051 clones are more efficient. Some of them can execute one instruction per actual clock cycle.
Even then, one ARM instruction can often do work of 2-10 8051 instructions. 8051 is particularly bad at pointer arithmetic (except incrementing pointer by one) and, of course being an 8-bit CPU, 16/32 bit math.
[1]: ftp://ftp.ti.com/pub/data_acquisition/MSC_CD-ROM/8051_Tutorial/tuttimng.html
"Microcontrollers (and many other electrical systems) use crystals to syncrhronize operations. The 8051 uses the crystal for precisely that: to synchronize it’s operation. Effectively, the 8051 operates using what are called "machine cycles." A single machine cycle is the minimum amount of time in which a single 8051 instruction can be executed. although many instructions take multiple cycles.
A cycle is, in reality, 12 pulses of the crystal. That is to say, if an instruction takes one machine cycle to execute, it will take 12 pulses of the crystal to execute. Since we know the crystal is pulsing 11,059,000 times per second and that one machine cycle is 12 pulses, we can calculate how many instruction cycles the 8051 can execute per second:
11,059,000 / 12 = 921,583
This means that the 8051 can execute 921,583 single-cycle instructions per second. Since a large number of 8051 instructions are single-cycle instructions it is often considered that the 8051 can execute roughly 1 million instructions per second, although in reality it is less--and, depending on the instructions being used, an estimate of about 600,000 instructions per second is more realistic."
Re: Tomu, a tiny ARM microprocessor which fits in your USB port
#76Earlier quoted context omitted.
Essentially you have a to configure the account/device you are authenticating with to accept multiple keys permanently (so you can have spares) or temporarily (replacing a key by registering a new one then revoking the old). In the case of key loss on a properly secure service registering a new key could be problematical if you don't have any other key that is still appropriately registered - you might be permanently…
Ok, so you if you want 9 keys (3 persons in your family has access, have one local spare, and one off site), and 4 services, you need to do 36 registrations of keys ? Is there a standard to automate that ?
You may choose to have more than one key per person, to reduce the amount of re-registering needed if one key is lost, though remember that this is the second factor so you also already have passwords that vary by service (and if you give people multiple keys they will most likely carry them together to lose them all at the same time rather than individually anyway).
Re: Tomu, a tiny ARM microprocessor which fits in your USB port
#77Speaking of processors on a USB stick, is there any cheaper alternative to the USB Armory? : https://inversepath.com/usbarmory
Re: Tomu, a tiny ARM microprocessor which fits in your USB port
#78Speaking of processors on a USB stick, is there any cheaper alternative to the USB Armory? : https://inversepath.com/usbarmory
Re: Tomu, a tiny ARM microprocessor which fits in your USB port
#79Earlier quoted context omitted.
Genuine question: if you can't clone your 2FA, how do you make spares like a house key ? If there is way to get a spare, what's the way to deal with key loss or shared access ?
Other than registering multiple keys with a service (as others have explained), you can generate the private key off-device, import the key onto your device(s), then optionally delete the off-device key and/or archive it to external storage (e.g. disc stored in a safety deposit box at your bank).
Re: Tomu, a tiny ARM microprocessor which fits in your USB port
#80Is there a USB-C version?