design
This commit is contained in:
parent
77fea9ce0b
commit
2adeef61a1
1 changed files with 36 additions and 0 deletions
|
@ -10,3 +10,39 @@ securely?
|
||||||
This might come down to a simple change to the webapp to prompt for the
|
This might come down to a simple change to the webapp to prompt for the
|
||||||
password, and then rather a lot of pain to make the webapp use HTTPS so we
|
password, and then rather a lot of pain to make the webapp use HTTPS so we
|
||||||
can be pretty sure noone is sniffing the (localhost) connection.
|
can be pretty sure noone is sniffing the (localhost) connection.
|
||||||
|
|
||||||
|
## ssh-askpass approach
|
||||||
|
|
||||||
|
* If ssh-askpass is in PATH, do nothing. (Unless webapp is run remotely.)
|
||||||
|
* Otherwise, have the assistant set `SSH_ASKPASS` to a command that will
|
||||||
|
cause the webapp to read the password and forward it on. Also, set
|
||||||
|
DISPLAY to ensure that ssh runs the program.
|
||||||
|
|
||||||
|
Looking at ssh.exe, I think this will even work on windows; it contains the
|
||||||
|
code to run ssh-askpass.
|
||||||
|
|
||||||
|
### securely handling the password
|
||||||
|
|
||||||
|
* Maybe force upgrade webapp to https? Locally, the risk would be that
|
||||||
|
root could tcpdump and read password, so not large risk. If webapp
|
||||||
|
is used remotely, require https.
|
||||||
|
* Use hs-securemem to store password.
|
||||||
|
* Avoid storing password for long. Erase it after webapp setup of remote
|
||||||
|
is complete. Time out after 10 minutes and erase it.
|
||||||
|
* Prompt using a field name that does not trigger web browser password
|
||||||
|
saving.
|
||||||
|
|
||||||
|
### ssh-askpass shim, and password forwarding
|
||||||
|
|
||||||
|
`SSH_ASKPASS` needs to be set to a program (probably git-annex)
|
||||||
|
which gets the password from the webapp, and outputs it to stdout.
|
||||||
|
|
||||||
|
Seems to call for the webapp and program to communicate over a local
|
||||||
|
socket (locked down so only user can access) or environment.
|
||||||
|
Environment is not as secure (easily snooped by root).
|
||||||
|
Local socket probably won't work on Windows.
|
||||||
|
|
||||||
|
Note that the webapp can probe to see if ssh needs a password, and can
|
||||||
|
prompt the user for it before running ssh and the ssh-askpass shim.
|
||||||
|
This avoids some complexity, and perhaps some attack vectors,
|
||||||
|
if the shim cannot requst an arbitrary password prompt.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue