Live data from Hacker News

Tillitis Key – Mullvad spin-off inspired by measured boot and DICE

tillitis.se

111–120 of 123 posts

Re: Tillitis Key – Mullvad spin-off inspired by measured boot and DICE

#112
post #35
post #4

Am I right in thinking that this is basically like a yubikey except with openness as key differentiator? Or is it’s function something else ?

The Tillitis Key is a new kind of USB security key inspired by measured boot and DICE. Tillitis Key’s design encourages developers to experiment with new security key applications and models in a way that makes adoption easier and less risky for end-users. It offers both security and flexibility by being end-user programmable while also preventing applications loaded onto the device from knowing each other’s secrets.…

Thanks for the detailed response!

Re: Tillitis Key – Mullvad spin-off inspired by measured boot and DICE

#113
The most important part of this project is in the very last sentence: it's all implemented on an FPGA (one which doesn't have any backdoorable-for-surveillance hard cores).

Without that, none of the other stuff would be trustable.

Re: Tillitis Key – Mullvad spin-off inspired by measured boot and DICE

#114

The most important part of this project is in the very last sentence: it's all implemented on an FPGA (one which doesn't have any backdoorable-for-surveillance hard cores). Without that, none of the other stuff would be trustable.

Note that we specifically chose the Lattice ice40 UltraPlus 5K because:

- It is supported by an open-source FPGA toolchain

- Has an in-package non-volatile configuration memory (NVCM) that is lockable. This is where we'll eventually keep the FPGA configuration bitstream, including the unique per device secret.

After some reverse-engineering work we're also able to program and lock NVCM with open tooling, as opposed to having to use Lattice's proprietary one.

Re: Tillitis Key – Mullvad spin-off inspired by measured boot and DICE

#116
post #74

Are you aware of Trussed, an initiative by SoloKeys and Nitrokey? https://solokeys.com/blogs/news/trussed-announcement / https://trussed.dev/ From what I understand, this is an API to write applications against a common interface, which can run on different hardware devices. An abstraction layer for security key apps. Similar to Java Card, but in a more modern way. Is this something that would or could be compatible…

A bit off-topic: Can anyone recommend a platform that is production ready today, if I want to (develop and) deploy a custom Smartcard / HSM application in small scale? JavaCard seems to fit the bill, but I've not yet found an approachable tutorial.

JavaCard is the answer for smartcards. You can find example card software all over github, and you're looking for the JavaCard SDK from Oracle and GlobalPlatformPro to program them: https://github.com/martinpaljak/GlobalPlatformPro. There's even an ant task around somewhere that allows you to use ant tooling. Blank cards with "developer"/default keys can be picked up pretty much anywhere.

Buy blank cards, write your applet, test in an emulator if you want, push to card, test for real with your software that talks to the card, profit. Be aware that if your goal is to write custom cryptography implementations in Java on the Javacard, these will be prohibitively slow. No need to take my word for it, Niels Duif did exactly this: https://research.tue.nl/en/studentTheses/smart-card-implemen...

> Java Card proves to be a worthless platform for high-speed cryptography. Despite the > speedups, generating a signature takes more than 28 minutes for a private key of 254 > bits.

How is crypto done then? JavaCard provides APIs that do it, but these call implementations that either use coprocessors, or contain optimised implementations in the mask ROM. You can't program a mask ROM without doing a production run of smartcards in the hundreds of thousands. Small scale, this isn't possible.

HSM vendors will often sell SDKs for custom code, which you can add to certain models. The barrier to entry simply being that you need to buy an HSM, which isn't cheap. It can be done, however, and on the plus side in my experience of Thales HSMs this means actual C code, meaning performant implementation is possible.

Re: Tillitis Key – Mullvad spin-off inspired by measured boot and DICE

#117
post #109

From the photo, that looks like a stock iCE40 FPGA, which does not support hardware attestation of the loaded bitstream. How does the user verify that the FPGA loaded the expected bitstream instead of something with a backdoor? A DICE chain that is not rooted in physical, immutable hardware isn't very useful.

> From the photo, that looks like a stock iCE40 FPGA, which does not support hardware attestation of the loaded bitstream. Which FPGA models support _attestation_ of the loaded bitstream? Do any? > How does the user verify that the FPGA loaded the expected bitstream instead of something with a backdoor? It's a Lattice ice40up5k, which contains a programmable and lockable NVCM memory in-package. The engineering sample…

An interesting approach to vendor-independent attestation was outlined in [1]. Basically the bitstream is fed into a physical unclonable function (PUF) which is used to derive a key to decrypt the rest of the bitstream. For attestation, one could simply store the secret part of an asymmetric key in the encrypted bitstream (for challenge-response).

[1]: An Autonomous, Self-Authenticating, and Self-Contained Secure Boot Process for Field-Programmable Gate Arrays, https://www.mdpi.com/2410-387X/2/3/15

Re: Tillitis Key – Mullvad spin-off inspired by measured boot and DICE

#118
post #7

Good VPN company (one of the best) and good idea (sounds like USB Armory). But the best it can do is assure that their VMs are not logging anything and keep other promises. Will they also be able to share details of their hosting setup in a way you can independently verify (because they can always have more middleware transparent traffic logging VMs)? doubt it, same goes to whomever they use for hosting. My point is,…

Let’s not frame this as trust them vs don’t, it’s trust them vs trust your ISP. On one hand, you have a company that seems to be doing as much as possible to commit to privacy, and on the other, a company that straight up tells you they’re monitoring you and sending the data all over the place. Does that scale really tilt differently if you point out there’s a non-zero chance the first company is secretly just as bad…

Not just your ISP but the ISPs ISP, local police, government, etc... one thing people seem to forget in such situations is your ISP router's security, is it better or worse than Mullvad's security? A compromised router can and has (see VPNFilter) rerourted traffic through attacker compromised infra for mitm and most people have to accept whatever crappy gateway is given to them. If you are on arbitrary wifi networks, the chances of joining a compromised network get higher with the more networks you join but having one constant potential point of failure that you can reasonably take measures to account for is better.

Re: Tillitis Key – Mullvad spin-off inspired by measured boot and DICE

#119
post #74

Are you aware of Trussed, an initiative by SoloKeys and Nitrokey? https://solokeys.com/blogs/news/trussed-announcement / https://trussed.dev/ From what I understand, this is an API to write applications against a common interface, which can run on different hardware devices. An abstraction layer for security key apps. Similar to Java Card, but in a more modern way. Is this something that would or could be compatible…

A bit off-topic: Can anyone recommend a platform that is production ready today, if I want to (develop and) deploy a custom Smartcard / HSM application in small scale? JavaCard seems to fit the bill, but I've not yet found an approachable tutorial.

https://github.com/OpenSC/OpenSC

Note that "production ready" does not equate to "follow a YouTube video and write 17 lines of TypeScript." You need to know Java, you need to know crypto, and you need a few bucks to throw at the appropriate hardware. That said, the entire US DoD is built on JavaCard so it is as production grade as you can get.

Re: Tillitis Key – Mullvad spin-off inspired by measured boot and DICE

#120
post #109

From the photo, that looks like a stock iCE40 FPGA, which does not support hardware attestation of the loaded bitstream. How does the user verify that the FPGA loaded the expected bitstream instead of something with a backdoor? A DICE chain that is not rooted in physical, immutable hardware isn't very useful.

> From the photo, that looks like a stock iCE40 FPGA, which does not support hardware attestation of the loaded bitstream. Which FPGA models support _attestation_ of the loaded bitstream? Do any? > How does the user verify that the FPGA loaded the expected bitstream instead of something with a backdoor? It's a Lattice ice40up5k, which contains a programmable and lockable NVCM memory in-package. The engineering sample…

> Which FPGA models support _attestation_ of the loaded bitstream? Do any?

I haven't seen this feature yet, but I desperately want it on every FPGA I use. NVCM eliminates most of the benefits of using an FPGA...

Post reply on HN