2005-01-03 06:40:20 +00:00
|
|
|
.TH SECSTORE 1
|
|
|
|
.SH NAME
|
|
|
|
aescbc, secstore, ipso \- secstore commands
|
|
|
|
.SH SYNOPSIS
|
|
|
|
.B secstore
|
|
|
|
[
|
|
|
|
.B -s
|
|
|
|
.I server
|
|
|
|
]
|
|
|
|
[
|
|
|
|
.B -(g|G)
|
|
|
|
.I getfile
|
|
|
|
]
|
|
|
|
[
|
|
|
|
.B -p
|
|
|
|
.I putfile
|
|
|
|
]
|
|
|
|
[
|
|
|
|
.B -r
|
|
|
|
.I rmfile
|
|
|
|
]
|
|
|
|
[
|
|
|
|
.B -c
|
|
|
|
]
|
|
|
|
[
|
|
|
|
.B -u
|
|
|
|
.I user
|
|
|
|
]
|
|
|
|
[
|
|
|
|
.B -v
|
|
|
|
]
|
|
|
|
[
|
|
|
|
.B -i
|
|
|
|
]
|
|
|
|
.PP
|
|
|
|
.B aescbc
|
|
|
|
-e
|
|
|
|
.I <cleartext
|
|
|
|
.I >ciphertext
|
|
|
|
.br
|
|
|
|
.B aescbc
|
|
|
|
-d
|
|
|
|
.I <ciphertext
|
|
|
|
.I >cleartext
|
|
|
|
.PP
|
|
|
|
.B ipso
|
|
|
|
[
|
|
|
|
.B -a -e -l -f -s
|
|
|
|
] [
|
|
|
|
.I file
|
|
|
|
\&...
|
|
|
|
]
|
|
|
|
.PP
|
|
|
|
.SH DESCRIPTION
|
|
|
|
.PP
|
|
|
|
.I Secstore
|
|
|
|
authenticates to the server
|
|
|
|
using a password and optionally a hardware token,
|
|
|
|
then saves or retrieves a file.
|
|
|
|
This is intended to be a credentials store (public/private keypairs,
|
|
|
|
passwords, and other secrets) for a factotum.
|
|
|
|
.PP
|
|
|
|
Option
|
|
|
|
.B -p
|
|
|
|
stores a file on the secstore.
|
|
|
|
.PP
|
|
|
|
Option
|
|
|
|
.B -g
|
|
|
|
retrieves a file to the local directory;
|
|
|
|
option
|
|
|
|
.B -G
|
|
|
|
writes it to standard output instead.
|
|
|
|
Specifying
|
|
|
|
.I getfile
|
|
|
|
of . will send to standard output
|
|
|
|
a list of remote files with dates, lengths and SHA1 hashes.
|
|
|
|
.PP
|
|
|
|
Option
|
|
|
|
.B -r
|
|
|
|
removes a file from the secstore.
|
|
|
|
.PP
|
|
|
|
Option
|
|
|
|
.B -c
|
|
|
|
prompts for a password change.
|
|
|
|
.PP
|
|
|
|
Option
|
|
|
|
.B -v
|
|
|
|
produces more verbose output, in particular providing a few
|
|
|
|
bits of feedback to help the user detect mistyping.
|
|
|
|
.PP
|
|
|
|
Option
|
|
|
|
.B -i
|
|
|
|
says that the password should be read from standard input
|
|
|
|
instead of from
|
|
|
|
.BR /dev/cons .
|
|
|
|
.PP
|
|
|
|
Option
|
|
|
|
.B -n
|
|
|
|
says that the password should be read from NVRAM
|
|
|
|
instead of from
|
|
|
|
.BR /dev/cons .
|
|
|
|
This option is unsupported.
|
|
|
|
.PP
|
|
|
|
The server is
|
|
|
|
.BR tcp!$auth!5356 ,
|
|
|
|
or the server specified by option
|
|
|
|
.BR -s .
|
|
|
|
.PP
|
|
|
|
For example, to add a secret to the file read by
|
|
|
|
.IR factotum (4)
|
|
|
|
at startup, open a new window, type
|
|
|
|
.sp
|
|
|
|
.EX
|
|
|
|
% ramfs -p; cd /tmp
|
|
|
|
% auth/secstore -g factotum
|
|
|
|
secstore password:
|
|
|
|
% echo 'key proto=apop dom=x.com user=ehg !password=hi' >> factotum
|
|
|
|
% auth/secstore -p factotum
|
|
|
|
secstore password:
|
|
|
|
% read -m factotum > /mnt/factotum/ctl
|
|
|
|
.EE
|
|
|
|
.PP
|
|
|
|
and delete the window.
|
|
|
|
The first line creates an ephemeral memory-resident workspace,
|
|
|
|
invisible to others and automatically removed when the window is deleted.
|
|
|
|
The next three commands fetch the persistent copy of the secrets,
|
|
|
|
append a new secret,
|
|
|
|
and save the updated file back to secstore.
|
|
|
|
The final command loads the new secret into the running factotum.
|
|
|
|
.PP
|
|
|
|
The
|
|
|
|
.I ipso
|
|
|
|
command packages this sequence into a convenient script to simplify editing of
|
|
|
|
.I files
|
|
|
|
stored on a secure store.
|
|
|
|
It copies the named
|
|
|
|
.I files
|
|
|
|
into a local
|
|
|
|
.IR ramfs (4)
|
|
|
|
and invokes
|
|
|
|
.IR acme (1)
|
|
|
|
on them. When the editor exits,
|
|
|
|
.I ipso
|
|
|
|
prompts the user to confirm copying modifed or newly created files back to
|
|
|
|
.I secstore.
|
|
|
|
If no
|
|
|
|
.I file
|
|
|
|
is mentioned,
|
|
|
|
.I ipso
|
|
|
|
grabs all the user's files from
|
|
|
|
.I secstore
|
|
|
|
for editing.
|
|
|
|
.PP
|
|
|
|
By default, ipso will edit the
|
|
|
|
.I secstore
|
|
|
|
files and, if
|
|
|
|
one of them is named
|
|
|
|
.BR factotum ,
|
|
|
|
flush your current keys from factotum and load
|
|
|
|
the new ones from the file.
|
|
|
|
If you supply any of the
|
|
|
|
.BR -e ,
|
|
|
|
.BR -f ,
|
|
|
|
or
|
|
|
|
.BR -l
|
|
|
|
options,
|
|
|
|
.I ipso
|
|
|
|
will just perform the operations you requested, i.e.,
|
|
|
|
edit, flush, and/or load.
|
|
|
|
.PP
|
|
|
|
The
|
|
|
|
.B -s
|
|
|
|
option of
|
|
|
|
.I ipso
|
|
|
|
invokes
|
|
|
|
.IR sam (1)
|
|
|
|
as the editor insted of
|
|
|
|
.BR acme ;
|
|
|
|
the
|
|
|
|
.B -a
|
|
|
|
option provides a similar service for files encrypted by
|
|
|
|
.I aescbc
|
|
|
|
.RI ( q.v. ).
|
|
|
|
With the
|
|
|
|
.B -a
|
|
|
|
option, the full rooted pathname of the
|
|
|
|
.I file
|
|
|
|
must be specified and all
|
|
|
|
.I files
|
|
|
|
must be encrypted with the same key.
|
|
|
|
Also with
|
|
|
|
.BR -a ,
|
|
|
|
newly created files are ignored.
|
|
|
|
.PP
|
|
|
|
.I Aescbc
|
|
|
|
encrypts and decrypts using AES (Rijndael) in cipher
|
|
|
|
block chaining (CBC) mode.
|
|
|
|
.SH SOURCE
|
2005-01-11 17:37:33 +00:00
|
|
|
.B \*9/src/cmd/secstore
|
2005-01-03 06:40:20 +00:00
|
|
|
.SH SEE ALSO
|
|
|
|
.IR factotum (4),
|
|
|
|
Plan 9's \fIsecstore\fR(8)
|
|
|
|
.SH BUGS
|
|
|
|
There is deliberately no backup of files on the secstore, so
|
|
|
|
.B -r
|
|
|
|
(or a disk crash) is irrevocable. You are advised to store
|
|
|
|
important secrets in a second location.
|
|
|
|
.PP
|
|
|
|
When using
|
|
|
|
.IR ipso ,
|
|
|
|
secrets will appear as plain text in the editor window,
|
|
|
|
so use the command in private.
|