The Tillitis TKey Is a Forgetful, Highly-Secure RISC-V Computer-on-a-Stick for Security Tasks

Designed without application storage, the TKey is loaded with a security-checked application each time it's connected to a host machine.

Swedish security firm Tillitis is looking to launch a "new kind of security key:" a USB Type-C dongle driven by a field-programmable gate array (FPGA) running a compact 32-bit RISC-V processor core.

"The TKey is a small computer in a USB-C device form factor," the company writes of its creation, "that can run small applications which are loaded onto it. The purpose of TKey is to be a secure environment for applications that provide a security function."

The TKey is a security dongle without any local storage, loading its application afresh each time it's used. (📷: Tillitis)

So far, and the TKey sounds a lot like other trusted execution environment projects. What makes the device stand out — aside from its use of an FPGA, the Lattice iCE40UP5, running a 32-bit soft-core processor based on the free and open RISC-V instruction set architecture (ISA) — is that it doesn't actually store data itself.

"There is no way of storing a device application (or any other data) on the TKey. A device app has to be loaded onto the TKey every time you plug it in," Tillitis explains. " It measures the loaded device application before starting it. A hash digest measurement (using BLAKE2s) combined with a Unique Device Secret (UDS) makes up a base secret we call a Compound Device Identifier (CDI) which can then used by the TKey device app.

"If the TKey device app is altered in any way the CDI is also changed. If the keys derived from the CDI are the same as the last time the given device app was loaded onto the same TKey the device app’s integrity is guaranteed."

The compact hardware dongle provides the aforementioned 32-bit RISC-V core, running at a sedate 18MHz, for user applications, along with a hardware execution monitor, hardware-assisted address randomization and RAM scrambling capabilities, a true random number generator (TRNG), and 128kB of application-accessible RAM — plus 2kB for the firmware and 6kB of ROM storage.

While the FPGA is locked-down in the standard version, the TKey Unlocked can be reprogrammed using a Raspberry Pi Pico. (📷: Tillitis)

What it doesn't provide, however, is access to the FPGA directly. "In the end-user version the FPGA configuration is locked down," the company explains. "This means you cannot change the FPGA bitstream or read out the bitstream (or the Unique Device Secret, UDS) from the configuration memory, even if you break the case and insert it into a programmer board." For those who want to be able to fiddle with the device at a lower level, Tillitis provides the TKey Unlocked — a less-secure but more-hackable variant.

The company has released all software, firmware, Verilog source code, and hardware design files for the project on GitHub under the GNU General Public License v2.0 Only and CERN Open Hardware Licence Version 2 — Strongly Reciprocal licenses respectively; more information is available on the Tillitis website. Assembled boards are available on the Tillitis Shop at $72, with a Raspberry Pi Pico-powered programming tool available for $41.

ghalfacree

Freelance journalist, technical author, hacker, tinkerer, erstwhile sysadmin. For hire: freelance@halfacree.co.uk.

Latest Articles