fcrypt: improve documentation
Feedback was given in by
Thx for the feedback.
@@ -23,12 +23,19 @@ After the getstorage plugin has read the backend file, the plugin decrypts the b
## Security Considerations
-During decryption the plugin temporarily writes the decrypted plain text to a configurable temporary directory (`/tmp` is used as default).
-This might be a vulnerability as an attacker might have access to the plain text for a short period of time (the time between pregetstorage and postgetstorage calls).
-We recommend to either mount `/tmp` to a RAM disk (`tmpfs`) or to specify an isolated temporary directory in the plugin configuration.
-The plugin shreds, i.e. overwrites, the temporary file with zeroes to reduce the risk of leakage.
+There are two things to consider when using the `fcrypt` plugin:
-If the application crashes parts of the decrypted data may leak.
+1. Decrypted data is visible on the filesystem for a short period of time.
+2. Decrypted data might end up on a hard disk or some other persistent storage.
+
+The plugin directs GPG to write its (decrypted) output to a temporary directoy.
+From there on the data can be processed by other plugins.
+After the `get` phase is over, `fcrypt` overwrites the temporary file and unlinks it afterwards.
+However, if the application crashes during `get` the decrypted data may remain in the temporary directory.
+
+If the temporary directory is mounted on a hard disk, GPG writes the decrypted data on that disk.
+Thus we recommend to either mount `/tmp` to a RAM disk or specify another path as temporary direcotry within the plugin configuration
+(see Configuration below).
## Known Issues
@@ -124,6 +131,7 @@ Textmode can be disabled by setting `fcrypt/textmode` to `0` in the plugin confi
`fcrypt` uses the configuration option `fcrypt/tmpdir` to generate paths for temporary files during encryption and decryption.
The path is forwarded to GPG via the `-o` option, so GPG will output to this path.
+The directory must be readable and writable by the user.
`/tmp` is used as default value.
