2 ms·
Because secure tamper resistend storage is expensive. I would even go as far and say from a security POV the best security key is the key which has 0 storage.
by dathinab 3y ago
Because secure tamper resistend storage is expensive.
I would even go as far and say from a security POV the best security key is the key which has 0 storage. Because in my experience any protocol which injects and stores a secure token into a security key/enclave/whatever instead of deriving it from shared secrets etc. has serious flaws. Sometimes it's fundamentally security flaws (like TOTP). Sometimes it's complexity flaws. Similar you don't really EVER want to share a secure key for HSK/2FA across multiple devices. It means if one device leaks it it's corrupted for all of them. Instead you want a separate key (oversimplified) on _each_ device. Login provider/server side wise the overhead for this is negligible in the bigger picture.
- shawnz 3y agoWhy not just store the master key in the tamper resistant storage and then have some regular old consumer grade storage to store all the derived keys?
- westmeal 3y agoWhat do you mean by fundamental security flaws with totp?
- dathinab 3y agoit's prone to MITM attacks when setting up (in a way you are very unlikely to detect if done well) it's prone to MITM attacks when being used (in a way you are very unlikely to detect if done well) it's MITM attack vectors are not just usable with "on the wire" MITM but can be archived with social engineering making them IMHO pretty bad it's also prone to certain kinds of brute-force attacks in certain situations and protecting against them without making your login trivially DDOSable is very very hard from a security POV it's better then SMS but still a pretty bad design
- qzio 3y agoI believe tillitis tkey lack storage, might be of interest? https://tillitis.se/ https://tillitis.se/
- tzs 3y ago> Because secure tamper resistend storage is expensive The storage for resident keys would not need to be tamper proof. All that needs to be tamper proof is the processor that operates on unencrypted sensitive data and the storage for the private keys of the device. The resident keys would be encrypted using a device private key before being saved to mass storage.