Suggest more future work (subcommands, documentation)
Marco Ricci

Marco Ricci commited on 2024-10-18 13:26:04
Zeige 1 geänderte Dateien mit 50 Einfügungen und 6 Löschungen.


Includes the "master password" or "spectre" derivation scheme and some
tool functionality I've originally implemented as wrapper scripts around
`vault` (load SSH key, decrypt notes, generate TOTPs from config in
notes, and auto-run/wait for runit services). Also includes the two
how-tos (supported/unsupported special characters, passphrase rotation)
from the basic setup (passphrase) tutorial, FAQs for the misnamed
`--repeat` option and the SSH agent on Windows, and new helper
subcommands for making the previous two how-tos less painful.

On that note, this TODO list no longer deals solely with future
documentation, and so needs to be retitled and to recategorize its
contents.
... ...
@@ -1,26 +1,70 @@
1
-# Some ideas for documentation that might be missing, or nice to have
1
+# Some ideas for future work
2
+
3
+## Subcommands
4
+
5
+(In no particular order.)
6
+
7
+### Derivation schemes
8
+
9
+* `spectre` (`master-password`): derive passphrases according to the "Master Password" scheme as used by the Spectre app. ([#2])
10
+
11
+### Other functionality
12
+
13
+* `explore-permitted-special-characters`: generate new configurations starting from a base configuration until one of them passes the "special characters" constraints.
14
+* `rotate`: generate a new configuration suitable for passphrase rotation, compatible with the base configuration's constraints.
15
+* `service-plugins`: manage plugins that automate certain tasks, as outlined in the notes of the queried service.
16
+
17
+    * `load-ssh-key`: if the service uses an SSH key, autoload the key from a well-known location into the SSH agent if it isn't already loaded.
18
+
19
+        `vault`-specific.
20
+
21
+    * `decrypt-notes`: decrypt OpenPGP-encrypted notes with GnuPG or Sequoia `sq`.
22
+
23
+        Open questions:
24
+
25
+        - Use an automatic, symmetric encryption key, or rely on the standard OpenPGP key store?  (Do *not* use the derived service passphrase for this: the quality may be arbitrarily bad due to the passphrase constaints, and the service itself could compromise that passphrase.)
26
+
27
+    * `generate-otp`: if the service uses two-factor authentication and the configuration contains one-time password settings, call `oathtool` to obtain one or more OTPs.
28
+
29
+        May require the `decrypt-notes` plugin first.
30
+
31
+    * `manage-runit-services`: if the service contains `runit` service configuration, ensure the specified `runit` services are running concurrently, and stopped after signalling.
32
+
33
+        Typical use case is a service only accessible via VPN or SSH proxy, where the VPN/proxy would run as a `runit` service.
34
+
35
+        Open questions:
36
+
37
+        - Interface with `inotifywait` to wait for SSH control socket?
38
+
39
+[#2]: https://github.com/the-13th-letter/derivepassphrase/issues/2
40
+
41
+## Documentation
2 42
 
3 43
 (Categorized as per [the diataxis framework][DIATAXIS], but otherwise in no particular order.)
4 44
 
5 45
 
6 46
 [DIATAXIS]: https://diataxis.fr
7 47
 
8
-## Tutorials
48
+### Tutorials
9 49
 
10 50
 * [Setting up `derivepassphrase` from scratch for three existing accounts, with a master passphrase](tutorials/basic-setup-password.md)
11 51
 * Setting up `derivepassphrase` from scratch for three existing accounts, with a new SSH key
12 52
 
13
-## How-tos
53
+### How-tos
14 54
 
15 55
 * How to set up `derivepassphrase` with an SSH key
16 56
 * How to choose a good service name
17 57
 * How to edit a saved `derivepassphrase vault` configuration correctly
58
+* How to deal with "supported" and "unsupported" special characters
59
+* How to deal with regular passphrase rotation/rollover
18 60
 
19
-## Reference
61
+### Reference
20 62
 
21
-* `derivepassphrase-vault.conf`(<b>5</b>)
63
+* `derivepassphrase-vault.json`(<b>5</b>)
22 64
 
23
-## Explanation
65
+### Explanation
24 66
 
25 67
 * Security aspects and other tradeoffs when using deterministic password generators
26 68
 * Tradeoffs between a master passphrase and a master SSH key
69
+* Why is `vault`'s `--repeat` option named this way if it counts occurrences, not repetitions?
70
+* Why are master SSH keys not supported under Windows?
27 71