/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 mandos-keygen.xml

  • Committer: Teddy Hogeborn
  • Date: 2015-03-10 18:03:38 UTC
  • Revision ID: teddy@recompile.se-20150310180338-pcxw6r2qmw9k6br9
Add ":!RSA" to GnuTLS priority string, to disallow non-DHE kx.

If Mandos was somehow made to use a non-ephemeral Diffie-Hellman key
exchange algorithm in the TLS handshake, any saved network traffic
could then be decrypted later if the Mandos client key was obtained.
By default, Mandos uses ephemeral DH key exchanges which does not have
this problem, but a non-ephemeral key exchange algorithm was still
enabled by default.  The simplest solution is to simply turn that off,
which ensures that Mandos will always use ephemeral DH key exchanges.

There is a "PFS" priority string specifier, but we can't use it because:

1. Security-wise, it is a mix between "NORMAL" and "SECURE128" - it
   enables a lot more algorithms than "SECURE256".

2. It is only available since GnuTLS 3.2.4.

Thanks to Andreas Fischer <af@bantuX.org> for reporting this issue.

Show diffs side-by-side

added added

removed removed

Lines of Context:
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
4
<!ENTITY COMMANDNAME "mandos-keygen">
5
 
<!ENTITY TIMESTAMP "2019-02-10">
 
5
<!ENTITY TIMESTAMP "2014-06-22">
6
6
<!ENTITY % common SYSTEM "common.ent">
7
7
%common;
8
8
]>
33
33
    <copyright>
34
34
      <year>2008</year>
35
35
      <year>2009</year>
36
 
      <year>2010</year>
37
36
      <year>2011</year>
38
37
      <year>2012</year>
39
 
      <year>2013</year>
40
 
      <year>2014</year>
41
 
      <year>2015</year>
42
 
      <year>2016</year>
43
 
      <year>2017</year>
44
 
      <year>2018</year>
45
 
      <year>2019</year>
46
38
      <holder>Teddy Hogeborn</holder>
47
39
      <holder>Björn Påhlsson</holder>
48
40
    </copyright>
128
120
      </group>
129
121
      <sbr/>
130
122
      <group>
131
 
        <arg choice="plain"><option>--tls-keytype
132
 
        <replaceable>KEYTYPE</replaceable></option></arg>
133
 
        <arg choice="plain"><option>-T
134
 
        <replaceable>KEYTYPE</replaceable></option></arg>
135
 
      </group>
136
 
      <sbr/>
137
 
      <group>
138
123
        <arg choice="plain"><option>--force</option></arg>
139
124
        <arg choice="plain"><option>-f</option></arg>
140
125
      </group>
188
173
    <title>DESCRIPTION</title>
189
174
    <para>
190
175
      <command>&COMMANDNAME;</command> is a program to generate the
191
 
      TLS and OpenPGP keys used by
 
176
      OpenPGP key used by
192
177
      <citerefentry><refentrytitle>mandos-client</refentrytitle>
193
 
      <manvolnum>8mandos</manvolnum></citerefentry>.  The keys are
194
 
      normally written to /etc/keys/mandos for later installation into
195
 
      the initrd image, but this, and most other things, can be
196
 
      changed with command line options.
 
178
      <manvolnum>8mandos</manvolnum></citerefentry>.  The key is
 
179
      normally written to /etc/mandos for later installation into the
 
180
      initrd image, but this, and most other things, can be changed
 
181
      with command line options.
197
182
    </para>
198
183
    <para>
199
184
      This program can also be used with the
236
221
        <replaceable>DIRECTORY</replaceable></option></term>
237
222
        <listitem>
238
223
          <para>
239
 
            Target directory for key files.  Default is <filename
240
 
            class="directory">/etc/keys/mandos</filename>.
 
224
            Target directory for key files.  Default is
 
225
            <filename class="directory">/etc/mandos</filename>.
241
226
          </para>
242
227
        </listitem>
243
228
      </varlistentry>
249
234
        <replaceable>TYPE</replaceable></option></term>
250
235
        <listitem>
251
236
          <para>
252
 
            OpenPGP key type.  Default is <quote>RSA</quote>.
 
237
            Key type.  Default is <quote>RSA</quote>.
253
238
          </para>
254
239
        </listitem>
255
240
      </varlistentry>
261
246
        <replaceable>BITS</replaceable></option></term>
262
247
        <listitem>
263
248
          <para>
264
 
            OpenPGP key length in bits.  Default is 4096.
 
249
            Key length in bits.  Default is 4096.
265
250
          </para>
266
251
        </listitem>
267
252
      </varlistentry>
273
258
        <replaceable>KEYTYPE</replaceable></option></term>
274
259
        <listitem>
275
260
          <para>
276
 
            OpenPGP subkey type.  Default is <quote>RSA</quote>
 
261
            Subkey type.  Default is <quote>RSA</quote> (Elgamal
 
262
            encryption-only).
277
263
          </para>
278
264
        </listitem>
279
265
      </varlistentry>
285
271
        <replaceable>BITS</replaceable></option></term>
286
272
        <listitem>
287
273
          <para>
288
 
            OpenPGP subkey length in bits.  Default is 4096.
 
274
            Subkey length in bits.  Default is 4096.
289
275
          </para>
290
276
        </listitem>
291
277
      </varlistentry>
329
315
      </varlistentry>
330
316
      
331
317
      <varlistentry>
332
 
        <term><option>--tls-keytype
333
 
        <replaceable>KEYTYPE</replaceable></option></term>
334
 
        <term><option>-T
335
 
        <replaceable>KEYTYPE</replaceable></option></term>
336
 
        <listitem>
337
 
          <para>
338
 
            TLS key type.  Default is <quote>ed25519</quote>
339
 
          </para>
340
 
        </listitem>
341
 
      </varlistentry>
342
 
      
343
 
      <varlistentry>
344
318
        <term><option>--force</option></term>
345
319
        <term><option>-f</option></term>
346
320
        <listitem>
355
329
        <listitem>
356
330
          <para>
357
331
            Prompt for a password and encrypt it with the key already
358
 
            present in either <filename>/etc/keys/mandos</filename> or
359
 
            the directory specified with the <option>--dir</option>
 
332
            present in either <filename>/etc/mandos</filename> or the
 
333
            directory specified with the <option>--dir</option>
360
334
            option.  Outputs, on standard output, a section suitable
361
335
            for inclusion in <citerefentry><refentrytitle
362
336
            >mandos-clients.conf</refentrytitle><manvolnum
402
376
    <title>OVERVIEW</title>
403
377
    <xi:include href="overview.xml"/>
404
378
    <para>
405
 
      This program is a small utility to generate new TLS and OpenPGP
406
 
      keys for new Mandos clients, and to generate sections for
407
 
      inclusion in <filename>clients.conf</filename> on the server.
 
379
      This program is a small utility to generate new OpenPGP keys for
 
380
      new Mandos clients, and to generate sections for inclusion in
 
381
      <filename>clients.conf</filename> on the server.
408
382
    </para>
409
383
  </refsect1>
410
384
  
442
416
    </para>
443
417
    <variablelist>
444
418
      <varlistentry>
445
 
        <term><filename>/etc/keys/mandos/seckey.txt</filename></term>
 
419
        <term><filename>/etc/mandos/seckey.txt</filename></term>
446
420
        <listitem>
447
421
          <para>
448
422
            OpenPGP secret key file which will be created or
451
425
        </listitem>
452
426
      </varlistentry>
453
427
      <varlistentry>
454
 
        <term><filename>/etc/keys/mandos/pubkey.txt</filename></term>
 
428
        <term><filename>/etc/mandos/pubkey.txt</filename></term>
455
429
        <listitem>
456
430
          <para>
457
431
            OpenPGP public key file which will be created or
460
434
        </listitem>
461
435
      </varlistentry>
462
436
      <varlistentry>
463
 
        <term><filename>/etc/keys/mandos/tls-privkey.pem</filename></term>
464
 
        <listitem>
465
 
          <para>
466
 
            Private key file which will be created or overwritten.
467
 
          </para>
468
 
        </listitem>
469
 
      </varlistentry>
470
 
      <varlistentry>
471
 
        <term><filename>/etc/keys/mandos/tls-pubkey.pem</filename></term>
472
 
        <listitem>
473
 
          <para>
474
 
            Public key file which will be created or overwritten.
475
 
          </para>
476
 
        </listitem>
477
 
      </varlistentry>
478
 
      <varlistentry>
479
437
        <term><filename class="directory">/tmp</filename></term>
480
438
        <listitem>
481
439
          <para>
487
445
    </variablelist>
488
446
  </refsect1>
489
447
  
490
 
  <refsect1 id="bugs">
491
 
    <title>BUGS</title>
492
 
    <xi:include href="bugs.xml"/>
493
 
  </refsect1>
 
448
<!--   <refsect1 id="bugs"> -->
 
449
<!--     <title>BUGS</title> -->
 
450
<!--     <para> -->
 
451
<!--     </para> -->
 
452
<!--   </refsect1> -->
494
453
  
495
454
  <refsect1 id="example">
496
455
    <title>EXAMPLE</title>
516
475
    </informalexample>
517
476
    <informalexample>
518
477
      <para>
519
 
        Prompt for a password, encrypt it with the keys in <filename
520
 
        class="directory">/etc/keys/mandos</filename> and output a
521
 
        section suitable for <filename>clients.conf</filename>.
 
478
        Prompt for a password, encrypt it with the key in <filename
 
479
        class="directory">/etc/mandos</filename> and output a section
 
480
        suitable for <filename>clients.conf</filename>.
522
481
      </para>
523
482
      <para>
524
483
        <userinput>&COMMANDNAME; --password</userinput>
526
485
    </informalexample>
527
486
    <informalexample>
528
487
      <para>
529
 
        Prompt for a password, encrypt it with the keys in the
 
488
        Prompt for a password, encrypt it with the key in the
530
489
        <filename>client-key</filename> directory and output a section
531
490
        suitable for <filename>clients.conf</filename>.
532
491
      </para>