Password/Pin protection #32
Replies: 2 comments 1 reply
-
It might be interesting to have a way to support protecting more than a single key with a pin, for example |
Beta Was this translation helpful? Give feedback.
-
Summarizing the current state of this concept here. This replaces the concept above and also extends the whole concept with some implementation details, while also extending the scope of this towards an Abstract Authentication Mechanism. The service backends changeset is strictly needed and used within this approach. In particular there will be an secondary software backend, which will implement (and therefore overwrite) multiple API calls in a way that the authentication context will be verified automatically by trussed and the client will be enabled to maintain these contexts. This will also ensure a proper backwards compatibility. The current Requirements / Goals
API extensions:
Software v2 APIUsing the "service backends" approach we can easily allow a client to define in which order service backends can be asked to handle a given syscall. Each service backend also needs to implement its own KeyStore, CertStore, CounterStore. Eventually, a Authentication Representation in Storage
This is to be seen as an early draft of a "spec"/TIP for an abstract authentication mechanism, overall this will grow and mature during the implementation. Thanks to especially @sosthene-nitrokey & @jnordholz for the fruitful discussions leading to this draft... ToDos / Open Questions
This content as a file for easier editing: AbstractAuthenticationMechanism.md |
Beta Was this translation helpful? Give feedback.
-
The idea of adding PIN support has already been raised. I'm trying to draft what such an API would look like.
We could either create a new
PinClient
trait, or add it as part of theCryptoClient
. This functionality would allow creation of PIN-Protected keys.The way I see it, the API would add a couple methods:
with the reply structures:
This makes the resulting API easy to use. Multiple keys can be protected using
(un)wrap_key
with a pin-protected key. It also allows more complex setups with "user" and "admin" PIN where the admin can reset the counter of the user PIN. (This would be done by creating a new pin, unwrapping the key with the admin pin, and re-wrapping the key with the key of the newly generated user pin).Beta Was this translation helpful? Give feedback.
All reactions