Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Initial Cryptographic Support to have (some parts of) models en/de/crypted #284

Open
1 of 3 tasks
vorburger opened this issue Sep 29, 2023 · 2 comments
Open
1 of 3 tasks
Assignees
Labels
enhancement New feature or request

Comments

@vorburger
Copy link
Member

vorburger commented Sep 29, 2023

It could be fun to make it add initial basic crypto support to this project.

The way I imagine it working is that you would "tag" (with Proto extensions, perhaps?) some parts of models marked secret. It would be nice to keep this nicely "modular" and avoid having to "bake this into the core" of Enola.

The secret parts of any model would then be encrypted on the client (CLI, for now, Web, later) and stored "encrypted at rest" on the server (e.g. in the File System Repository), and could later be decrypted again on the client.

There are a bunch of pre-requisites for this, at least including:

@vorburger vorburger added the enhancement New feature or request label Sep 29, 2023
@vorburger vorburger self-assigned this Sep 29, 2023
@vorburger vorburger changed the title Initilal Cryptographic Support to have (some parts of) models en/de/crypted Initial Cryptographic Support to have (some parts of) models en/de/crypted Sep 29, 2023
@vorburger
Copy link
Member Author

No, the basics of this should of course work completely without any client/server; just locally.

At its core, this is just an URI scheme, with a ResourceProvider?

Like the (TBD) data: one.

crypt:{PUBKEY}/{SECRET}, using some agreed upon encoding.

Are there existing standards for this?

Decrypt is via a key in TPM; may shell out to exec age.

Model https://enola.dev/secret is:

CLI is via (TBD) Enola Actions, on Things; e.g. generate key, list keys, encrypt URL, decrypt secret.

Password 🔑 Manager is then trivial and an obvious 1st application: just e.g. a class Website Thing, with a password property.

The #607 format should directly support this.

models/people/ can then contain e.g. phone numbers... 🔒

@vorburger
Copy link
Member Author

vorburger commented Aug 20, 2024

Actually, decrypt: scheme specific part start should somehow include if what follows is an encrypted secret itself, or a delegated URL where to fetch one from.. e.g. decrypt:http://server/secret.pgp.

The "decrypted Form" of such secrets should use secret-token: (bearer) scheme, as per RFC 8959.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant