Common documentation and files across my projects
1For the most up-to-date security policy, please see [matrixfurry.com/common](https://tangled.org/@matrixfurry.com/common/blob/main/docs/security.md). 2 3# Reporting 4Please report security issues via [SimpleX](https://smp18.simplex.im/a#Wc2x2IBqqwzgmeGkN0XtKrGMLBxFuxmoYgkTGgGgR0M) or [Email](mailto:shiloh@shilohfen.com). 5 6> If you want to send an encrypted email, my public key fingerprint is [DD7EB0BAA822169398828C45103DD5193B6A77CB](https://keys.openpgp.org/vks/v1/by-fingerprint/DD7EB0BAA822169398828C45103DD5193B6A77CB). 7 8Please do not report security issues on the project's issue tracker. 9 10# Commit signing 11 12Commit signing is optional but highly recommended. Once you make your first signed commit, all future commits must be signed. 13 14SSH signing is preferred over PGP signing. 15 16To enable signature verification, add your public key to your Tangled profile, and optionally the `.allowed_signers` file in the project's repo. 17 18Tangled profiles should be trusted over the repo's copy, excluding revoked keys. 19 20## Setup 21Replace `<YOUR_KEY>` with the SSH key or keyfile you'd like to use (eg. `~/.ssh/id_ed25519`). 22 23Git: 24```sh 25git config --global gpg.format ssh 26git config --global user.signingkey <YOUR_KEY> 27git config --global commit.gpgsign true 28``` 29 30Jujutsu: 31```sh 32jj config set --user signing.behavior own 33jj config set --user signing.backend ssh 34jj config set --user signing.key <YOUR_KEY> 35``` 36 37Add the public key to your Tangled profile at https://tangled.org/settings/keys 38 39Optionally, add your public key to the repo's `.allowed_signers` file: 40- Git: `echo "$(git config user.email) $(cat ~/.ssh/id_ed25519.pub)" >> .allowed_signers` 41- Jujutsu: `echo "$(jj config get user.email) $(cat ~/.ssh/id_ed25519.pub)" >> .allowed_signers` 42 43## Key Revocation 44Revoked keys are listed in `.revoked_keys` ([OpenSSH KRL](https://man.openbsd.org/ssh-keygen.1#KEY_REVOCATION_LISTS) format). Keys must never be reinstated or removed from this file. After a revocation, you must create a new key to continue contributing to the project. 45 46A key revocation must be signed by either: 471. The key being revoked 48 - Anyone with access to the private key can create the revocation commit 49 502. A maintainer with proof of compromise 51 - The maintainer must have significant evidence that the key has been compromised 52 - The maintainer must attempt to reach out to the contributor to confirm 53 - The commit message must provide details of why the key is being revoked 54 55### Instructions 56 57Add the key to the `.revoked_keys` file: 58```sh 59ssh-keygen -k -u -f .revoked_keys <PUBKEY.pub> 60``` 61 62View the revoked keys: 63```sh 64ssh-keygen -Q -l -f .revoked_keys 65``` 66 67For more information, see the [ssh-keygen(1) manpage](https://man.openbsd.org/ssh-keygen.1#k)