~ubuntu-branches/ubuntu/precise/openssl098/precise

« back to all changes in this revision

Viewing changes to doc/apps/ciphers.pod

  • Committer: Bazaar Package Importer
  • Author(s): Kurt Roeckx
  • Date: 2011-03-23 19:50:31 UTC
  • Revision ID: james.westby@ubuntu.com-20110323195031-6h9crj4bymhhr8b8
Tags: upstream-0.9.8o
ImportĀ upstreamĀ versionĀ 0.9.8o

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
=pod
 
2
 
 
3
=head1 NAME
 
4
 
 
5
ciphers - SSL cipher display and cipher list tool.
 
6
 
 
7
=head1 SYNOPSIS
 
8
 
 
9
B<openssl> B<ciphers>
 
10
[B<-v>]
 
11
[B<-ssl2>]
 
12
[B<-ssl3>]
 
13
[B<-tls1>]
 
14
[B<cipherlist>]
 
15
 
 
16
=head1 DESCRIPTION
 
17
 
 
18
The B<cipherlist> command converts OpenSSL cipher lists into ordered
 
19
SSL cipher preference lists. It can be used as a test tool to determine
 
20
the appropriate cipherlist.
 
21
 
 
22
=head1 COMMAND OPTIONS
 
23
 
 
24
=over 4
 
25
 
 
26
=item B<-v>
 
27
 
 
28
verbose option. List ciphers with a complete description of
 
29
protocol version (SSLv2 or SSLv3; the latter includes TLS), key exchange,
 
30
authentication, encryption and mac algorithms used along with any key size
 
31
restrictions and whether the algorithm is classed as an "export" cipher.
 
32
Note that without the B<-v> option, ciphers may seem to appear twice
 
33
in a cipher list; this is when similar ciphers are available for
 
34
SSL v2 and for SSL v3/TLS v1.
 
35
 
 
36
=item B<-ssl3>
 
37
 
 
38
only include SSL v3 ciphers.
 
39
 
 
40
=item B<-ssl2>
 
41
 
 
42
only include SSL v2 ciphers.
 
43
 
 
44
=item B<-tls1>
 
45
 
 
46
only include TLS v1 ciphers.
 
47
 
 
48
=item B<-h>, B<-?>
 
49
 
 
50
print a brief usage message.
 
51
 
 
52
=item B<cipherlist>
 
53
 
 
54
a cipher list to convert to a cipher preference list. If it is not included
 
55
then the default cipher list will be used. The format is described below.
 
56
 
 
57
=back
 
58
 
 
59
=head1 CIPHER LIST FORMAT
 
60
 
 
61
The cipher list consists of one or more I<cipher strings> separated by colons.
 
62
Commas or spaces are also acceptable separators but colons are normally used.
 
63
 
 
64
The actual cipher string can take several different forms.
 
65
 
 
66
It can consist of a single cipher suite such as B<RC4-SHA>.
 
67
 
 
68
It can represent a list of cipher suites containing a certain algorithm, or
 
69
cipher suites of a certain type. For example B<SHA1> represents all ciphers
 
70
suites using the digest algorithm SHA1 and B<SSLv3> represents all SSL v3
 
71
algorithms.
 
72
 
 
73
Lists of cipher suites can be combined in a single cipher string using the
 
74
B<+> character. This is used as a logical B<and> operation. For example
 
75
B<SHA1+DES> represents all cipher suites containing the SHA1 B<and> the DES
 
76
algorithms.
 
77
 
 
78
Each cipher string can be optionally preceded by the characters B<!>,
 
79
B<-> or B<+>.
 
80
 
 
81
If B<!> is used then the ciphers are permanently deleted from the list.
 
82
The ciphers deleted can never reappear in the list even if they are
 
83
explicitly stated.
 
84
 
 
85
If B<-> is used then the ciphers are deleted from the list, but some or
 
86
all of the ciphers can be added again by later options.
 
87
 
 
88
If B<+> is used then the ciphers are moved to the end of the list. This
 
89
option doesn't add any new ciphers it just moves matching existing ones.
 
90
 
 
91
If none of these characters is present then the string is just interpreted
 
92
as a list of ciphers to be appended to the current preference list. If the
 
93
list includes any ciphers already present they will be ignored: that is they
 
94
will not moved to the end of the list.
 
95
 
 
96
Additionally the cipher string B<@STRENGTH> can be used at any point to sort
 
97
the current cipher list in order of encryption algorithm key length.
 
98
 
 
99
=head1 CIPHER STRINGS
 
100
 
 
101
The following is a list of all permitted cipher strings and their meanings.
 
102
 
 
103
=over 4
 
104
 
 
105
=item B<DEFAULT>
 
106
 
 
107
the default cipher list. This is determined at compile time and is normally
 
108
B<AES:ALL:!aNULL:!eNULL:+RC4:@STRENGTH>. This must be the first cipher string
 
109
specified.
 
110
 
 
111
=item B<COMPLEMENTOFDEFAULT>
 
112
 
 
113
the ciphers included in B<ALL>, but not enabled by default. Currently
 
114
this is B<ADH>. Note that this rule does not cover B<eNULL>, which is
 
115
not included by B<ALL> (use B<COMPLEMENTOFALL> if necessary).
 
116
 
 
117
=item B<ALL>
 
118
 
 
119
all ciphers suites except the B<eNULL> ciphers which must be explicitly enabled.
 
120
 
 
121
=item B<COMPLEMENTOFALL>
 
122
 
 
123
the cipher suites not enabled by B<ALL>, currently being B<eNULL>.
 
124
 
 
125
=item B<HIGH>
 
126
 
 
127
"high" encryption cipher suites. This currently means those with key lengths larger
 
128
than 128 bits, and some cipher suites with 128-bit keys.
 
129
 
 
130
=item B<MEDIUM>
 
131
 
 
132
"medium" encryption cipher suites, currently some of those using 128 bit encryption.
 
133
 
 
134
=item B<LOW>
 
135
 
 
136
"low" encryption cipher suites, currently those using 64 or 56 bit encryption algorithms
 
137
but excluding export cipher suites.
 
138
 
 
139
=item B<EXP>, B<EXPORT>
 
140
 
 
141
export encryption algorithms. Including 40 and 56 bits algorithms.
 
142
 
 
143
=item B<EXPORT40>
 
144
 
 
145
40 bit export encryption algorithms
 
146
 
 
147
=item B<EXPORT56>
 
148
 
 
149
56 bit export encryption algorithms. In OpenSSL 0.9.8c and later the set of
 
150
56 bit export ciphers is empty unless OpenSSL has been explicitly configured
 
151
with support for experimental ciphers.
 
152
 
 
153
=item B<eNULL>, B<NULL>
 
154
 
 
155
the "NULL" ciphers that is those offering no encryption. Because these offer no
 
156
encryption at all and are a security risk they are disabled unless explicitly
 
157
included.
 
158
 
 
159
=item B<aNULL>
 
160
 
 
161
the cipher suites offering no authentication. This is currently the anonymous
 
162
DH algorithms. These cipher suites are vulnerable to a "man in the middle"
 
163
attack and so their use is normally discouraged.
 
164
 
 
165
=item B<kRSA>, B<RSA>
 
166
 
 
167
cipher suites using RSA key exchange.
 
168
 
 
169
=item B<kEDH>
 
170
 
 
171
cipher suites using ephemeral DH key agreement.
 
172
 
 
173
=item B<kDHr>, B<kDHd>
 
174
 
 
175
cipher suites using DH key agreement and DH certificates signed by CAs with RSA
 
176
and DSS keys respectively. Not implemented.
 
177
 
 
178
=item B<aRSA>
 
179
 
 
180
cipher suites using RSA authentication, i.e. the certificates carry RSA keys.
 
181
 
 
182
=item B<aDSS>, B<DSS>
 
183
 
 
184
cipher suites using DSS authentication, i.e. the certificates carry DSS keys.
 
185
 
 
186
=item B<aDH>
 
187
 
 
188
cipher suites effectively using DH authentication, i.e. the certificates carry
 
189
DH keys.  Not implemented.
 
190
 
 
191
=item B<kFZA>, B<aFZA>, B<eFZA>, B<FZA>
 
192
 
 
193
ciphers suites using FORTEZZA key exchange, authentication, encryption or all
 
194
FORTEZZA algorithms. Not implemented.
 
195
 
 
196
=item B<TLSv1>, B<SSLv3>, B<SSLv2>
 
197
 
 
198
TLS v1.0, SSL v3.0 or SSL v2.0 cipher suites respectively.
 
199
 
 
200
=item B<DH>
 
201
 
 
202
cipher suites using DH, including anonymous DH.
 
203
 
 
204
=item B<ADH>
 
205
 
 
206
anonymous DH cipher suites.
 
207
 
 
208
=item B<AES>
 
209
 
 
210
cipher suites using AES.
 
211
 
 
212
=item B<CAMELLIA>
 
213
 
 
214
cipher suites using Camellia.
 
215
 
 
216
=item B<3DES>
 
217
 
 
218
cipher suites using triple DES.
 
219
 
 
220
=item B<DES>
 
221
 
 
222
cipher suites using DES (not triple DES).
 
223
 
 
224
=item B<RC4>
 
225
 
 
226
cipher suites using RC4.
 
227
 
 
228
=item B<RC2>
 
229
 
 
230
cipher suites using RC2.
 
231
 
 
232
=item B<IDEA>
 
233
 
 
234
cipher suites using IDEA.
 
235
 
 
236
=item B<SEED>
 
237
 
 
238
cipher suites using SEED.
 
239
 
 
240
=item B<MD5>
 
241
 
 
242
cipher suites using MD5.
 
243
 
 
244
=item B<SHA1>, B<SHA>
 
245
 
 
246
cipher suites using SHA1.
 
247
 
 
248
=back
 
249
 
 
250
=head1 CIPHER SUITE NAMES
 
251
 
 
252
The following lists give the SSL or TLS cipher suites names from the
 
253
relevant specification and their OpenSSL equivalents. It should be noted,
 
254
that several cipher suite names do not include the authentication used,
 
255
e.g. DES-CBC3-SHA. In these cases, RSA authentication is used.
 
256
 
 
257
=head2 SSL v3.0 cipher suites.
 
258
 
 
259
 SSL_RSA_WITH_NULL_MD5                   NULL-MD5
 
260
 SSL_RSA_WITH_NULL_SHA                   NULL-SHA
 
261
 SSL_RSA_EXPORT_WITH_RC4_40_MD5          EXP-RC4-MD5
 
262
 SSL_RSA_WITH_RC4_128_MD5                RC4-MD5
 
263
 SSL_RSA_WITH_RC4_128_SHA                RC4-SHA
 
264
 SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5      EXP-RC2-CBC-MD5
 
265
 SSL_RSA_WITH_IDEA_CBC_SHA               IDEA-CBC-SHA
 
266
 SSL_RSA_EXPORT_WITH_DES40_CBC_SHA       EXP-DES-CBC-SHA
 
267
 SSL_RSA_WITH_DES_CBC_SHA                DES-CBC-SHA
 
268
 SSL_RSA_WITH_3DES_EDE_CBC_SHA           DES-CBC3-SHA
 
269
 
 
270
 SSL_DH_DSS_EXPORT_WITH_DES40_CBC_SHA    Not implemented.
 
271
 SSL_DH_DSS_WITH_DES_CBC_SHA             Not implemented.
 
272
 SSL_DH_DSS_WITH_3DES_EDE_CBC_SHA        Not implemented.
 
273
 SSL_DH_RSA_EXPORT_WITH_DES40_CBC_SHA    Not implemented.
 
274
 SSL_DH_RSA_WITH_DES_CBC_SHA             Not implemented.
 
275
 SSL_DH_RSA_WITH_3DES_EDE_CBC_SHA        Not implemented.
 
276
 SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA   EXP-EDH-DSS-DES-CBC-SHA
 
277
 SSL_DHE_DSS_WITH_DES_CBC_SHA            EDH-DSS-CBC-SHA
 
278
 SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA       EDH-DSS-DES-CBC3-SHA
 
279
 SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA   EXP-EDH-RSA-DES-CBC-SHA
 
280
 SSL_DHE_RSA_WITH_DES_CBC_SHA            EDH-RSA-DES-CBC-SHA
 
281
 SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA       EDH-RSA-DES-CBC3-SHA
 
282
 
 
283
 SSL_DH_anon_EXPORT_WITH_RC4_40_MD5      EXP-ADH-RC4-MD5
 
284
 SSL_DH_anon_WITH_RC4_128_MD5            ADH-RC4-MD5
 
285
 SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA   EXP-ADH-DES-CBC-SHA
 
286
 SSL_DH_anon_WITH_DES_CBC_SHA            ADH-DES-CBC-SHA
 
287
 SSL_DH_anon_WITH_3DES_EDE_CBC_SHA       ADH-DES-CBC3-SHA
 
288
 
 
289
 SSL_FORTEZZA_KEA_WITH_NULL_SHA          Not implemented.
 
290
 SSL_FORTEZZA_KEA_WITH_FORTEZZA_CBC_SHA  Not implemented.
 
291
 SSL_FORTEZZA_KEA_WITH_RC4_128_SHA       Not implemented.
 
292
 
 
293
=head2 TLS v1.0 cipher suites.
 
294
 
 
295
 TLS_RSA_WITH_NULL_MD5                   NULL-MD5
 
296
 TLS_RSA_WITH_NULL_SHA                   NULL-SHA
 
297
 TLS_RSA_EXPORT_WITH_RC4_40_MD5          EXP-RC4-MD5
 
298
 TLS_RSA_WITH_RC4_128_MD5                RC4-MD5
 
299
 TLS_RSA_WITH_RC4_128_SHA                RC4-SHA
 
300
 TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5      EXP-RC2-CBC-MD5
 
301
 TLS_RSA_WITH_IDEA_CBC_SHA               IDEA-CBC-SHA
 
302
 TLS_RSA_EXPORT_WITH_DES40_CBC_SHA       EXP-DES-CBC-SHA
 
303
 TLS_RSA_WITH_DES_CBC_SHA                DES-CBC-SHA
 
304
 TLS_RSA_WITH_3DES_EDE_CBC_SHA           DES-CBC3-SHA
 
305
 
 
306
 TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA    Not implemented.
 
307
 TLS_DH_DSS_WITH_DES_CBC_SHA             Not implemented.
 
308
 TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA        Not implemented.
 
309
 TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA    Not implemented.
 
310
 TLS_DH_RSA_WITH_DES_CBC_SHA             Not implemented.
 
311
 TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA        Not implemented.
 
312
 TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA   EXP-EDH-DSS-DES-CBC-SHA
 
313
 TLS_DHE_DSS_WITH_DES_CBC_SHA            EDH-DSS-CBC-SHA
 
314
 TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA       EDH-DSS-DES-CBC3-SHA
 
315
 TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA   EXP-EDH-RSA-DES-CBC-SHA
 
316
 TLS_DHE_RSA_WITH_DES_CBC_SHA            EDH-RSA-DES-CBC-SHA
 
317
 TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA       EDH-RSA-DES-CBC3-SHA
 
318
 
 
319
 TLS_DH_anon_EXPORT_WITH_RC4_40_MD5      EXP-ADH-RC4-MD5
 
320
 TLS_DH_anon_WITH_RC4_128_MD5            ADH-RC4-MD5
 
321
 TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA   EXP-ADH-DES-CBC-SHA
 
322
 TLS_DH_anon_WITH_DES_CBC_SHA            ADH-DES-CBC-SHA
 
323
 TLS_DH_anon_WITH_3DES_EDE_CBC_SHA       ADH-DES-CBC3-SHA
 
324
 
 
325
=head2 AES ciphersuites from RFC3268, extending TLS v1.0
 
326
 
 
327
 TLS_RSA_WITH_AES_128_CBC_SHA            AES128-SHA
 
328
 TLS_RSA_WITH_AES_256_CBC_SHA            AES256-SHA
 
329
 
 
330
 TLS_DH_DSS_WITH_AES_128_CBC_SHA         Not implemented.
 
331
 TLS_DH_DSS_WITH_AES_256_CBC_SHA         Not implemented.
 
332
 TLS_DH_RSA_WITH_AES_128_CBC_SHA         Not implemented.
 
333
 TLS_DH_RSA_WITH_AES_256_CBC_SHA         Not implemented.
 
334
 
 
335
 TLS_DHE_DSS_WITH_AES_128_CBC_SHA        DHE-DSS-AES128-SHA
 
336
 TLS_DHE_DSS_WITH_AES_256_CBC_SHA        DHE-DSS-AES256-SHA
 
337
 TLS_DHE_RSA_WITH_AES_128_CBC_SHA        DHE-RSA-AES128-SHA
 
338
 TLS_DHE_RSA_WITH_AES_256_CBC_SHA        DHE-RSA-AES256-SHA
 
339
 
 
340
 TLS_DH_anon_WITH_AES_128_CBC_SHA        ADH-AES128-SHA
 
341
 TLS_DH_anon_WITH_AES_256_CBC_SHA        ADH-AES256-SHA
 
342
 
 
343
=head2 Camellia ciphersuites from RFC4132, extending TLS v1.0
 
344
 
 
345
 TLS_RSA_WITH_CAMELLIA_128_CBC_SHA      CAMELLIA128-SHA
 
346
 TLS_RSA_WITH_CAMELLIA_256_CBC_SHA      CAMELLIA256-SHA
 
347
 
 
348
 TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA   Not implemented.
 
349
 TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA   Not implemented.
 
350
 TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA   Not implemented.
 
351
 TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA   Not implemented.
 
352
 
 
353
 TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA  DHE-DSS-CAMELLIA128-SHA
 
354
 TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA  DHE-DSS-CAMELLIA256-SHA
 
355
 TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA  DHE-RSA-CAMELLIA128-SHA
 
356
 TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA  DHE-RSA-CAMELLIA256-SHA
 
357
 
 
358
 TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA  ADH-CAMELLIA128-SHA
 
359
 TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA  ADH-CAMELLIA256-SHA
 
360
 
 
361
=head2 SEED ciphersuites from RFC4162, extending TLS v1.0
 
362
 
 
363
 TLS_RSA_WITH_SEED_CBC_SHA              SEED-SHA
 
364
 
 
365
 TLS_DH_DSS_WITH_SEED_CBC_SHA           Not implemented.
 
366
 TLS_DH_RSA_WITH_SEED_CBC_SHA           Not implemented.
 
367
 
 
368
 TLS_DHE_DSS_WITH_SEED_CBC_SHA          DHE-DSS-SEED-SHA
 
369
 TLS_DHE_RSA_WITH_SEED_CBC_SHA          DHE-RSA-SEED-SHA
 
370
 
 
371
 TLS_DH_anon_WITH_SEED_CBC_SHA          ADH-SEED-SHA
 
372
 
 
373
=head2 Additional Export 1024 and other cipher suites
 
374
 
 
375
Note: these ciphers can also be used in SSL v3.
 
376
 
 
377
 TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA     EXP1024-DES-CBC-SHA
 
378
 TLS_RSA_EXPORT1024_WITH_RC4_56_SHA      EXP1024-RC4-SHA
 
379
 TLS_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA EXP1024-DHE-DSS-DES-CBC-SHA
 
380
 TLS_DHE_DSS_EXPORT1024_WITH_RC4_56_SHA  EXP1024-DHE-DSS-RC4-SHA
 
381
 TLS_DHE_DSS_WITH_RC4_128_SHA            DHE-DSS-RC4-SHA
 
382
 
 
383
=head2 SSL v2.0 cipher suites.
 
384
 
 
385
 SSL_CK_RC4_128_WITH_MD5                 RC4-MD5
 
386
 SSL_CK_RC4_128_EXPORT40_WITH_MD5        EXP-RC4-MD5
 
387
 SSL_CK_RC2_128_CBC_WITH_MD5             RC2-MD5
 
388
 SSL_CK_RC2_128_CBC_EXPORT40_WITH_MD5    EXP-RC2-MD5
 
389
 SSL_CK_IDEA_128_CBC_WITH_MD5            IDEA-CBC-MD5
 
390
 SSL_CK_DES_64_CBC_WITH_MD5              DES-CBC-MD5
 
391
 SSL_CK_DES_192_EDE3_CBC_WITH_MD5        DES-CBC3-MD5
 
392
 
 
393
=head1 NOTES
 
394
 
 
395
The non-ephemeral DH modes are currently unimplemented in OpenSSL
 
396
because there is no support for DH certificates.
 
397
 
 
398
Some compiled versions of OpenSSL may not include all the ciphers
 
399
listed here because some ciphers were excluded at compile time.
 
400
 
 
401
=head1 EXAMPLES
 
402
 
 
403
Verbose listing of all OpenSSL ciphers including NULL ciphers:
 
404
 
 
405
 openssl ciphers -v 'ALL:eNULL'
 
406
 
 
407
Include all ciphers except NULL and anonymous DH then sort by
 
408
strength:
 
409
 
 
410
 openssl ciphers -v 'ALL:!ADH:@STRENGTH'
 
411
 
 
412
Include only 3DES ciphers and then place RSA ciphers last:
 
413
 
 
414
 openssl ciphers -v '3DES:+RSA'
 
415
 
 
416
Include all RC4 ciphers but leave out those without authentication:
 
417
 
 
418
 openssl ciphers -v 'RC4:!COMPLEMENTOFDEFAULT'
 
419
 
 
420
Include all chiphers with RSA authentication but leave out ciphers without
 
421
encryption.
 
422
 
 
423
 openssl ciphers -v 'RSA:!COMPLEMENTOFALL'
 
424
 
 
425
=head1 SEE ALSO
 
426
 
 
427
L<s_client(1)|s_client(1)>, L<s_server(1)|s_server(1)>, L<ssl(3)|ssl(3)>
 
428
 
 
429
=head1 HISTORY
 
430
 
 
431
The B<COMPLENTOFALL> and B<COMPLEMENTOFDEFAULT> selection options were
 
432
added in version 0.9.7.
 
433
 
 
434
=cut