/mandos/trunk

To get this branch, use:
bzr branch http://bzr.recompile.se/loggerhead/mandos/trunk

« back to all changes in this revision

Viewing changes to plugins.d/password-request.xml

  • Committer: Teddy Hogeborn
  • Date: 2008-09-06 15:34:21 UTC
  • Revision ID: teddy@fukt.bsnet.se-20080906153421-605ydhwyo404krh9
* initramfs-tools-hook: Use long options where available.  Use only
                        one "test" invocation instead of several.

* mandos-keygen: Use only one "test" invocation instead of several.
                 Use long options where available.  Strip newline from
                 entered password.

* plugin-runner.c (print_out_password): Do not strip trailing newline.
  (fallback): Strip trailing newline from getpass().

* plugin-runner.xml (PLUGINS): Plugins should not print trailing
                               newlines.

* plugins.d/password-prompt.c (main): Strip trailing newline.

* plugins.d/password-request.c (main): Bug fix: Read "pubkey.txt", not
                                       "pupkey.txt".

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
<?xml version="1.0" encoding="UTF-8"?>
2
2
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3
3
        "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4
 
<!ENTITY COMMANDNAME "mandos-client">
5
 
<!ENTITY TIMESTAMP "2009-01-24">
6
 
<!ENTITY % common SYSTEM "../common.ent">
7
 
%common;
 
4
<!ENTITY VERSION "1.0">
 
5
<!ENTITY COMMANDNAME "password-request">
 
6
<!ENTITY TIMESTAMP "2008-09-04">
8
7
]>
9
8
 
10
9
<refentry xmlns:xi="http://www.w3.org/2001/XInclude">
11
10
  <refentryinfo>
12
11
    <title>Mandos Manual</title>
13
 
    <!-- NWalsh’s docbook scripts use this to generate the footer: -->
 
12
    <!-- Nwalsh’s docbook scripts use this to generate the footer: -->
14
13
    <productname>Mandos</productname>
15
 
    <productnumber>&version;</productnumber>
 
14
    <productnumber>&VERSION;</productnumber>
16
15
    <date>&TIMESTAMP;</date>
17
16
    <authorgroup>
18
17
      <author>
32
31
    </authorgroup>
33
32
    <copyright>
34
33
      <year>2008</year>
35
 
      <year>2009</year>
36
34
      <holder>Teddy Hogeborn</holder>
37
35
      <holder>Björn Påhlsson</holder>
38
36
    </copyright>
39
37
    <xi:include href="../legalnotice.xml"/>
40
38
  </refentryinfo>
41
 
  
 
39
 
42
40
  <refmeta>
43
41
    <refentrytitle>&COMMANDNAME;</refentrytitle>
44
42
    <manvolnum>8mandos</manvolnum>
47
45
  <refnamediv>
48
46
    <refname><command>&COMMANDNAME;</command></refname>
49
47
    <refpurpose>
50
 
      Client for <application>Mandos</application>
 
48
      Client for mandos
51
49
    </refpurpose>
52
50
  </refnamediv>
53
 
  
 
51
 
54
52
  <refsynopsisdiv>
55
53
    <cmdsynopsis>
56
54
      <command>&COMMANDNAME;</command>
93
91
      </arg>
94
92
      <sbr/>
95
93
      <arg>
96
 
        <option>--delay <replaceable>SECONDS</replaceable></option>
97
 
      </arg>
98
 
      <sbr/>
99
 
      <arg>
100
94
        <option>--debug</option>
101
95
      </arg>
102
96
    </cmdsynopsis>
119
113
      </group>
120
114
    </cmdsynopsis>
121
115
  </refsynopsisdiv>
122
 
  
 
116
 
123
117
  <refsect1 id="description">
124
118
    <title>DESCRIPTION</title>
125
119
    <para>
126
120
      <command>&COMMANDNAME;</command> is a client program that
127
121
      communicates with <citerefentry><refentrytitle
128
122
      >mandos</refentrytitle><manvolnum>8</manvolnum></citerefentry>
129
 
      to get a password.  In slightly more detail, this client program
130
 
      brings up a network interface, uses the interface’s IPv6
131
 
      link-local address to get network connectivity, uses Zeroconf to
132
 
      find servers on the local network, and communicates with servers
133
 
      using TLS with an OpenPGP key to ensure authenticity and
134
 
      confidentiality.  This client program keeps running, trying all
135
 
      servers on the network, until it receives a satisfactory reply
136
 
      or a TERM signal is received.  If no servers are found, or after
137
 
      all servers have been tried, it waits indefinitely for new
138
 
      servers to appear.
 
123
      to get a password.  It uses IPv6 link-local addresses to get
 
124
      network connectivity, Zeroconf to find servers, and TLS with an
 
125
      OpenPGP key to ensure authenticity and confidentiality.  It
 
126
      keeps running, trying all servers on the network, until it
 
127
      receives a satisfactory reply or a TERM signal is received.
139
128
    </para>
140
129
    <para>
141
130
      This program is not meant to be run directly; it is really meant
210
199
            specifies the interface to use to connect to the address
211
200
            given.
212
201
          </para>
213
 
          <para>
214
 
            Note that since this program will normally run in the
215
 
            initial RAM disk environment, the interface must be an
216
 
            interface which exists at that stage.  Thus, the interface
217
 
            can not be a pseudo-interface such as <quote>br0</quote>
218
 
            or <quote>tun0</quote>; such interfaces will not exist
219
 
            until much later in the boot process, and can not be used
220
 
            by this program.
221
 
          </para>
222
202
        </listitem>
223
203
      </varlistentry>
224
204
      
235
215
          </para>
236
216
        </listitem>
237
217
      </varlistentry>
238
 
      
 
218
 
239
219
      <varlistentry>
240
220
        <term><option>--seckey=<replaceable
241
221
        >FILE</replaceable></option></term>
258
238
                      xpointer="priority"/>
259
239
        </listitem>
260
240
      </varlistentry>
261
 
      
 
241
 
262
242
      <varlistentry>
263
243
        <term><option>--dh-bits=<replaceable
264
244
        >BITS</replaceable></option></term>
269
249
          </para>
270
250
        </listitem>
271
251
      </varlistentry>
272
 
 
273
 
      <varlistentry>
274
 
        <term><option>--delay=<replaceable
275
 
        >SECONDS</replaceable></option></term>
276
 
        <listitem>
277
 
          <para>
278
 
            After bringing the network interface up, the program waits
279
 
            for the interface to arrive in a <quote>running</quote>
280
 
            state before proceeding.  During this time, the kernel log
281
 
            level will be lowered to reduce clutter on the system
282
 
            console, alleviating any other plugins which might be
283
 
            using the system console.  This option sets the upper
284
 
            limit of seconds to wait.  The default is 2.5 seconds.
285
 
          </para>
286
 
        </listitem>
287
 
      </varlistentry>
288
252
      
289
253
      <varlistentry>
290
254
        <term><option>--debug</option></term>
320
284
          </para>
321
285
        </listitem>
322
286
      </varlistentry>
323
 
      
 
287
 
324
288
      <varlistentry>
325
289
        <term><option>--version</option></term>
326
290
        <term><option>-V</option></term>
332
296
      </varlistentry>
333
297
    </variablelist>
334
298
  </refsect1>
335
 
  
 
299
 
336
300
  <refsect1 id="overview">
337
301
    <title>OVERVIEW</title>
338
302
    <xi:include href="../overview.xml"/>
347
311
      <filename>/etc/crypttab</filename>, but it would then be
348
312
      impossible to enter a password for the encrypted root disk at
349
313
      the console, since this program does not read from the console
350
 
      at all.  This is why a separate plugin runner (<citerefentry>
351
 
      <refentrytitle>plugin-runner</refentrytitle>
352
 
      <manvolnum>8mandos</manvolnum></citerefentry>) is used to run
353
 
      both this program and others in in parallel,
354
 
      <emphasis>one</emphasis> of which will prompt for passwords on
355
 
      the system console.
 
314
      at all.  This is why a separate plugin (<citerefentry>
 
315
      <refentrytitle>password-prompt</refentrytitle>
 
316
      <manvolnum>8mandos</manvolnum></citerefentry>) does that, which
 
317
      will be run in parallel to this one by the plugin runner.
356
318
    </para>
357
319
  </refsect1>
358
320
  
365
327
      program will exit with a non-zero exit status only if a critical
366
328
      error occurs.  Otherwise, it will forever connect to new
367
329
      <application>Mandos</application> servers as they appear, trying
368
 
      to get a decryptable password and print it.
 
330
      to get a decryptable password.
369
331
    </para>
370
332
  </refsect1>
371
333
  
379
341
    </para>
380
342
  </refsect1>
381
343
  
382
 
  <refsect1 id="files">
 
344
  <refsect1 id="file">
383
345
    <title>FILES</title>
384
346
    <variablelist>
385
347
      <varlistentry>
404
366
<!--     <para> -->
405
367
<!--     </para> -->
406
368
<!--   </refsect1> -->
407
 
  
 
369
 
408
370
  <refsect1 id="example">
409
371
    <title>EXAMPLE</title>
410
372
    <para>
459
421
      </para>
460
422
    </informalexample>
461
423
  </refsect1>
462
 
  
 
424
 
463
425
  <refsect1 id="security">
464
426
    <title>SECURITY</title>
465
427
    <para>
485
447
      The only remaining weak point is that someone with physical
486
448
      access to the client hard drive might turn off the client
487
449
      computer, read the OpenPGP keys directly from the hard drive,
488
 
      and communicate with the server.  To safeguard against this, the
489
 
      server is supposed to notice the client disappearing and stop
490
 
      giving out the encrypted data.  Therefore, it is important to
491
 
      set the timeout and checker interval values tightly on the
492
 
      server.  See <citerefentry><refentrytitle
 
450
      and communicate with the server.  The defense against this is
 
451
      that the server is supposed to notice the client disappearing
 
452
      and will stop giving out the encrypted data.  Therefore, it is
 
453
      important to set the timeout and checker interval values tightly
 
454
      on the server.  See <citerefentry><refentrytitle
493
455
      >mandos</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
494
456
    </para>
495
457
    <para>
506
468
      confidential.
507
469
    </para>
508
470
  </refsect1>
509
 
  
 
471
 
510
472
  <refsect1 id="see_also">
511
473
    <title>SEE ALSO</title>
512
474
    <para>
637
599
      </varlistentry>
638
600
    </variablelist>
639
601
  </refsect1>
 
602
 
640
603
</refentry>
641
 
 
642
604
<!-- Local Variables: -->
643
605
<!-- time-stamp-start: "<!ENTITY TIMESTAMP [\"']" -->
644
606
<!-- time-stamp-end: "[\"']>" -->