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…
Tillitis Key – Mullvad spin-off inspired by measured boot and DICE
101–110 of 123 posts
Re: Tillitis Key – Mullvad spin-off inspired by measured boot and DICE
#102Earlier quoted context omitted.
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.…
IIUC, popular security key devices like the YubiKey securely store a private key, but only allow it to be used for specific authentication applications (e.g. OTP or U2F). Would the Tillitis Key be able to securely store a private key, then with appropriate authentication from the host, use that key for encryption and decryption?
Re: Tillitis Key – Mullvad spin-off inspired by measured boot and DICE
#103Earlier 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
Re: Tillitis Key – Mullvad spin-off inspired by measured boot and DICE
#104Am 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.…
I’m probably not understanding something, so I’d love an explanation (preferably one that non-cryptographers understand)
Re: Tillitis Key – Mullvad spin-off inspired by measured boot and DICE
#105Quick question about such devices: can I use stuff like Yubikey or similar to luksOpen a crypt device during boot or operation? Thanks in advance.
The key is embedded as a luks header into the partition.
The information about the key and the device is passed to initrd through /etc/crypttab for unlocking during boot.
I wrote a couple of posts describing how this can be sort-of-handrolled with nitrokey and gpg key for x509 cert:
https://vtimofeenko.com/posts/unlocking-luks2-with-x509-nitr...
Re: Tillitis Key – Mullvad spin-off inspired by measured boot and DICE
#106Re: Tillitis Key – Mullvad spin-off inspired by measured boot and DICE
#107Earlier quoted context omitted.
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.…
> A user- or host-supplied secret can also be mixed into the key derivation function To clarify, this secret does not affect the program's hash, right? (e.g. to prove liveness, the parameter is a nonce to be signed with a deterministic private key)
CDI = Hash(UDS, Hash(application) + USS)
If the application would use the result (called CDI - Compound Device Identity in DICE parlance) to derive a pair of keys, the keys would thus be based on the hardware (the specific device you have), the integrity of the application and what you know.
Re: Tillitis Key – Mullvad spin-off inspired by measured boot and DICE
#108Earlier quoted context omitted.
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.…
One question, with the two-stage approach, isn’t that a security risk? App 1 gets measured and can’t change, but it needs to identify app 2 in a way that still allows it to be updatable, invalidating the whole security chain. I’m probably not understanding something, so I’d love an explanation (preferably one that non-cryptographers understand)
It doesn't invalidate it if it works as the application developer intended. The essential idea is that the first mutable boot stage contains a trust policy which somehow verifies the second stage. Let's say that's a valid signature over the hash value of the second mutable stage. The trusted public key in contained in the first stage.
What we've done there is first used measured boot, and then verified boot.
Measured boot is basically load-hash-measure-execute, where "measure" means "store the hash value of whatever I'm about to execute somewhere safe where the soon executed thing won't be able to undo my storing of its hash".
Verified boot on the other hand is about verifying the next stage and only execute it if it verifies as valid by the trust policy.
> I’m probably not understanding something, so I’d love an explanation (preferably one that non-cryptographers understand)
Honestly I'm beginning to realize it's not all that simple to explain.
Re: Tillitis Key – Mullvad spin-off inspired by measured boot and DICE
#109From 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.
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 samples we handed out today at OSFC store the FPGA configuration bitstream on a SPI flash memory though.
> A DICE chain that is not rooted in physical, immutable hardware isn't very useful.
When we start selling them we'll likely sell both security keys with pre-provisioned bitstreams in NVCM as well as unprovisioned security keys so you can provision your own.
Re: Tillitis Key – Mullvad spin-off inspired by measured boot and DICE
#110Cool! Always nice to see extra competition in this space. One thing I've wanted for a while is a way to properly backup a webauthn token. An approach I discussed a couple of weeks ago [1] was: 1: Generate on-hardware webauthn master key on device A. 2: Generate on-hardware key-pair on device B 3: Export B’s public key, import to A 4: On Device A: Encrypt master key with B’s public key 5: Export encrypted master key t…
Yes, that'd be possible. I don't know how webauthn works, but if it relies on ECC you could probably do ECDH between all security keys you wanted to carry your master key, and then use the combined ECDH values as the master key.