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

Signature system for plugins #47

Open
oSumAtrIX opened this issue Sep 20, 2024 · 0 comments
Open

Signature system for plugins #47

oSumAtrIX opened this issue Sep 20, 2024 · 0 comments
Labels
Feature request New feature or request

Comments

@oSumAtrIX
Copy link
Member

oSumAtrIX commented Sep 20, 2024

Why

Revenge has first-party support for plugins. Plugins can execute arbitrary code. A malicious actor can embed malware into the plugin.

Solution

Add a signature system to verify plugins. The author's signature must, and ours should accompany each plugin.
The author's signature is so the user can ensure the plugin was signed off by someone they trust. Our signature is needed so the user can verify that we trust the plugin and that it is secure.

How it works

The system checks the signatures and executes the plugin under the following conditions:

  1. Both signatures are valid
  2. Only the author's signature is present, and the user trusts the author

If no signature is present or any of the two is invalid, the likelihood of tampering with the plugin is high, and the plugin should not be executed. If the author's signature is present but is not trusted yet, the user must first agree to trust the author without our assurance. If our signature is present but the author's signature is missing or invalid, we made a mistake as we trusted a plugin that the author has not signed off on.

By default, the environment should configure the keys and revenge trusts. Our environment configures our keys. Another environment, such as a fork or a local environment, would configure its keys.

@oSumAtrIX oSumAtrIX added the Feature request New feature or request label Sep 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature request New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant