Blob


1 .TH SECSTORE 1
2 .SH NAME
3 aescbc, ipso, secstore \- secstore commands
4 .SH SYNOPSIS
5 .B secstore
6 [
7 .B -s
8 .I server
9 ]
10 [
11 .B -(g|G)
12 .I getfile
13 ]
14 [
15 .B -p
16 .I putfile
17 ]
18 [
19 .B -r
20 .I rmfile
21 ]
22 [
23 .B -c
24 ]
25 [
26 .B -u
27 .I user
28 ]
29 [
30 .B -v
31 ]
32 [
33 .B -i
34 ]
35 .PP
36 .B aescbc
37 -e
38 .I <cleartext
39 .I >ciphertext
40 .br
41 .B aescbc
42 -d
43 .I <ciphertext
44 .I >cleartext
45 .PP
46 .B ipso
47 [
48 .B -a -e -l -f
49 ] [
50 .I file
51 \&...
52 ]
53 .SH DESCRIPTION
54 .PP
55 .I Secstore
56 authenticates to the server
57 using a password and optionally a hardware token,
58 then saves or retrieves a file.
59 This is intended to be a credentials store (public/private keypairs,
60 passwords, and other secrets) for a factotum.
61 .PP
62 Option
63 .B -p
64 stores a file on the secstore.
65 .PP
66 Option
67 .B -g
68 retrieves a file to the local directory;
69 option
70 .B -G
71 writes it to standard output instead.
72 Specifying
73 .I getfile
74 of . will send to standard output
75 a list of remote files with dates, lengths and SHA1 hashes.
76 .PP
77 Option
78 .B -r
79 removes a file from the secstore.
80 .PP
81 Option
82 .B -c
83 prompts for a password change.
84 .PP
85 Option
86 .B -v
87 produces more verbose output, in particular providing a few
88 bits of feedback to help the user detect mistyping.
89 .PP
90 Option
91 .B -i
92 says that the password should be read from standard input
93 instead of from
94 .BR /dev/tty .
95 .PP
96 Option
97 .B -n
98 says that the password should be read from NVRAM
99 (see
100 .MR authsrv (3) )
101 instead of from
102 .BR /dev/tty .
103 .PP
104 The server is
105 .BR tcp!$auth!secstore ,
106 or the server specified by option
107 .BR -s .
108 .PP
109 For example, to add a secret to the file read by
110 .MR factotum (4) ,
111 run
112 .sp
113 .EX
114 % cd somewhere-private
115 % auth/secstore -g factotum
116 secstore password:
117 % echo 'key proto=apop dom=x.com user=ehg !password=hi' >> factotum
118 % auth/secstore -p factotum
119 secstore password:
120 % cat factotum | 9p write -l factotum/ctl
121 .EE
122 .PP
123 and delete the window.
124 The middle commands fetch the persistent copy of the secrets,
125 append a new secret,
126 and save the updated file back to secstore.
127 The final command loads the new secret into the running factotum.
128 .PP
129 The
130 .I ipso
131 command packages this sequence into a convenient script to simplify editing of
132 .I files
133 stored on a secure store.
134 It copies the named
135 .I files
136 into a private directory,
137 plumbs them to the editor,
138 and waits for a line on the console
139 Once a line is typed,
140 signifying that editing is complete,
141 .I ipso
142 prompts the user to confirm copying modifed or newly created files back to
143 .I secstore.
144 If no
145 .I file
146 is mentioned,
147 .I ipso
148 grabs all the user's files from
149 .I secstore
150 for editing.
151 .PP
152 By default, ipso will edit the
153 .I secstore
154 files and, if
155 one of them is named
156 .BR factotum ,
157 flush current keys from factotum and load
158 the new ones from the file.
159 If the
160 .BR -e ,
161 .BR -f ,
162 or
163 .BR -l
164 options are given,
165 .I ipso
166 will just perform only the requested operations, i.e.,
167 edit, flush, and/or load.
168 .PP
169 The
170 .B -a
171 option of
172 .I ipso
173 provides a similar service for files encrypted by
174 .I aescbc
175 .RI ( q.v. ).
176 With the
177 .B -a
178 option, the full rooted pathname of the
179 .I file
180 must be specified and all
181 .I files
182 must be encrypted with the same key.
183 Also with
184 .BR -a ,
185 newly created files are ignored.
186 .PP
187 .I Aescbc
188 encrypts and decrypts using AES (Rijndael) in cipher
189 block chaining (CBC) mode.
190 .SH SOURCE
191 .B \*9/bin/ipso
192 .br
193 .B \*9/src/cmd/auth/secstore
194 .SH SEE ALSO
195 .MR factotum (4) ,
196 .MR secstored (1)
197 .SH BUGS
198 There is deliberately no backup of files on the secstore, so
199 .B -r
200 (or a disk crash) is irrevocable. You are advised to store
201 important secrets in a second location.
202 .PP
203 When using
204 .IR ipso ,
205 secrets will appear as plain text in the editor window,
206 so use the command in private.
207 .PP
208 Establishing a private directory in which to store the secret
209 files is difficult on Unix.
210 On most systems,
211 .I ipso
212 creates a mode 700 directory
213 .BI /tmp/ipso. user
214 and works there.
215 On Linux systems,
216 .I ipso
217 looks for a
218 .B tmpfs
219 file system; if it exists,
220 .I ipso
221 creates the
222 .BI ipso. user
223 directory in its root
224 instead of
225 .BR /tmp .
226 .PP
227 .I Ipso
228 should zero the secret files before removing them.