Live data from Hacker News

Tomu, a tiny ARM microprocessor which fits in your USB port

tomu.im

71–80 of 91 posts

Re: Tomu, a tiny ARM microprocessor which fits in your USB port

#71

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.

The post I am responding to is talking about the Advance model, not the original.

Re: Tomu, a tiny ARM microprocessor which fits in your USB port

#72
post #6

Earlier 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.

I loved pointing out to people that my Amiga 500 and Amiga 2000 both had a 6502 compatible CPU as the keyboard controller (it had an onboard PROM and tiny amount of RAM, so there wasn't much you could do with it, but it was awesome at the time to upgrade from a 6502 compatible machine to one that had a similarly powerful CPU in the keyboard. But of course the C64 floppy drive (the 1541) had an actual 6502 in it, and enough memory and ability for you to download programs over the serial port...

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

#73

Having 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.

This looks like it's supported by a 3D printed enclosure. Otherwise I agree - you need >2.0mm thick PCB to prevent falling out and these are not offered by the usual cheap low-volume PCB manufacturers.

Re: Tomu, a tiny ARM microprocessor which fits in your USB port

#74

Earlier 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 ?

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

#75

Earlier 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.

50 MHz 8051 can usually be beat by 1 MHz ARM CPU.

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

#76

Earlier 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 don't need one key per service, so that is as little as 5 keys (3 for active users plus the on-site and off-site spares).

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

#79
post #74

Earlier 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).

So you can make duplicates as long as you generate the key offsite first ? Does it work with any hardare ?

Re: Tomu, a tiny ARM microprocessor which fits in your USB port

#80
post #49

Is there a USB-C version?

It defeats part of the purpose of being an "always in your computer" device, but you could always get a USBA female to USBC male adapter (similar to this https://images-eu.ssl-images-amazon.com/images/I/41gXYyobsRL...)
Post reply on HN