Earlier quoted context omitted.
It would have to hash to the same value as app A
The device is not checking app's hash tho, it has no way to verify that the usb frame containing that hash is really from app A
Tillitis Key – Mullvad spin-off inspired by measured boot and DICE
111–120 of 123 posts
Re: Tillitis Key – Mullvad spin-off inspired by measured boot and DICE
#112Am 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.…
Re: Tillitis Key – Mullvad spin-off inspired by measured boot and DICE
#113Without that, none of the other stuff would be trustable.
Re: Tillitis Key – Mullvad spin-off inspired by measured boot and DICE
#114The 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.
- 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
#115Re: Tillitis Key – Mullvad spin-off inspired by measured boot and DICE
#116Are 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.
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
#117From 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…
[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
#118Good 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…
Re: Tillitis Key – Mullvad spin-off inspired by measured boot and DICE
#119Are 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.
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
#120From 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…
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...