~ubuntu-branches/ubuntu/precise/nss/precise-security

« back to all changes in this revision

Viewing changes to nss/doc/nroff/ssltap.1

  • Committer: Package Import Robot
  • Author(s): Marc Deslauriers
  • Date: 2013-11-14 14:58:07 UTC
  • mfrom: (1.1.19)
  • Revision ID: package-import@ubuntu.com-20131114145807-ay302kimn72ovt88
Tags: 3.15.3-0ubuntu0.12.04.1
* SECURITY UPDATE: New upstream release to fix multiple security issues
  and add TLSv1.2 support.
  - CVE-2013-1739
  - CVE-2013-1741
  - CVE-2013-5605
  - CVE-2013-5606
* Adjusted packaging for 3.15.3:
  - debian/patches/*: refreshed.
  - debian/patches/lower-dhe-priority.patch: removed, no longer needed,
    was a workaround for an old version of firefox.
  - debian/libnss3.symbols: added new symbols.
  - debian/rules: updated for new source layout.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
'\" t
 
2
.\"     Title: SSLTAP
 
3
.\"    Author: [see the "Authors" section]
 
4
.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
 
5
.\"      Date: 19 July 2013
 
6
.\"    Manual: NSS Security Tools
 
7
.\"    Source: nss-tools
 
8
.\"  Language: English
 
9
.\"
 
10
.TH "SSLTAP" "1" "19 July 2013" "nss-tools" "NSS Security Tools"
 
11
.\" -----------------------------------------------------------------
 
12
.\" * Define some portability stuff
 
13
.\" -----------------------------------------------------------------
 
14
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
15
.\" http://bugs.debian.org/507673
 
16
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
 
17
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
18
.ie \n(.g .ds Aq \(aq
 
19
.el       .ds Aq '
 
20
.\" -----------------------------------------------------------------
 
21
.\" * set default formatting
 
22
.\" -----------------------------------------------------------------
 
23
.\" disable hyphenation
 
24
.nh
 
25
.\" disable justification (adjust text to left margin only)
 
26
.ad l
 
27
.\" -----------------------------------------------------------------
 
28
.\" * MAIN CONTENT STARTS HERE *
 
29
.\" -----------------------------------------------------------------
 
30
.SH "NAME"
 
31
ssltap \- Tap into SSL connections and display the data going by
 
32
.SH "SYNOPSIS"
 
33
.HP \w'\fBlibssltap\fR\ 'u
 
34
\fBlibssltap\fR [\-vhfsxl] [\-p\ port] [hostname:port]
 
35
.SH "STATUS"
 
36
.PP
 
37
This documentation is still work in progress\&. Please contribute to the initial review in
 
38
\m[blue]\fBMozilla NSS bug 836477\fR\m[]\&\s-2\u[1]\d\s+2
 
39
.SH "DESCRIPTION"
 
40
.PP
 
41
The SSL Debugging Tool
 
42
\fBssltap\fR
 
43
is an SSL\-aware command\-line proxy\&. It watches TCP connections and displays the data going by\&. If a connection is SSL, the data display includes interpreted SSL records and handshaking
 
44
.SH "OPTIONS"
 
45
.PP
 
46
\-v
 
47
.RS 4
 
48
Print a version string for the tool\&.
 
49
.RE
 
50
.PP
 
51
\-h
 
52
.RS 4
 
53
Turn on hex/ASCII printing\&. Instead of outputting raw data, the command interprets each record as a numbered line of hex values, followed by the same data as ASCII characters\&. The two parts are separated by a vertical bar\&. Nonprinting characters are replaced by dots\&.
 
54
.RE
 
55
.PP
 
56
\-f
 
57
.RS 4
 
58
Turn on fancy printing\&. Output is printed in colored HTML\&. Data sent from the client to the server is in blue; the server\*(Aqs reply is in red\&. When used with looping mode, the different connections are separated with horizontal lines\&. You can use this option to upload the output into a browser\&.
 
59
.RE
 
60
.PP
 
61
\-s
 
62
.RS 4
 
63
Turn on SSL parsing and decoding\&. The tool does not automatically detect SSL sessions\&. If you are intercepting an SSL connection, use this option so that the tool can detect and decode SSL structures\&.
 
64
.sp
 
65
If the tool detects a certificate chain, it saves the DER\-encoded certificates into files in the current directory\&. The files are named cert\&.0x, where x is the sequence number of the certificate\&.
 
66
.sp
 
67
If the \-s option is used with \-h, two separate parts are printed for each record: the plain hex/ASCII output, and the parsed SSL output\&.
 
68
.RE
 
69
.PP
 
70
\-x
 
71
.RS 4
 
72
Turn on hex/ASCII printing of undecoded data inside parsed SSL records\&. Used only with the \-s option\&. This option uses the same output format as the \-h option\&.
 
73
.RE
 
74
.PP
 
75
\-l prefix
 
76
.RS 4
 
77
Turn on looping; that is, continue to accept connections rather than stopping after the first connection is complete\&.
 
78
.RE
 
79
.PP
 
80
\-p port
 
81
.RS 4
 
82
Change the default rendezvous port (1924) to another port\&.
 
83
.sp
 
84
The following are well\-known port numbers:
 
85
.sp
 
86
* HTTP 80
 
87
.sp
 
88
* HTTPS 443
 
89
.sp
 
90
* SMTP 25
 
91
.sp
 
92
* FTP 21
 
93
.sp
 
94
* IMAP 143
 
95
.sp
 
96
* IMAPS 993 (IMAP over SSL)
 
97
.sp
 
98
* NNTP 119
 
99
.sp
 
100
* NNTPS 563 (NNTP over SSL)
 
101
.RE
 
102
.SH "USAGE AND EXAMPLES"
 
103
.PP
 
104
You can use the SSL Debugging Tool to intercept any connection information\&. Although you can run the tool at its most basic by issuing the ssltap command with no options other than hostname:port, the information you get in this way is not very useful\&. For example, assume your development machine is called intercept\&. The simplest way to use the debugging tool is to execute the following command from a command shell:
 
105
.sp
 
106
.if n \{\
 
107
.RS 4
 
108
.\}
 
109
.nf
 
110
$ ssltap www\&.netscape\&.com
 
111
.fi
 
112
.if n \{\
 
113
.RE
 
114
.\}
 
115
.PP
 
116
The program waits for an incoming connection on the default port 1924\&. In your browser window, enter the URL http://intercept:1924\&. The browser retrieves the requested page from the server at www\&.netscape\&.com, but the page is intercepted and passed on to the browser by the debugging tool on intercept\&. On its way to the browser, the data is printed to the command shell from which you issued the command\&. Data sent from the client to the server is surrounded by the following symbols: \-\-> [ data ] Data sent from the server to the client is surrounded by the following symbols: "left arrow"\-\- [ data ] The raw data stream is sent to standard output and is not interpreted in any way\&. This can result in peculiar effects, such as sounds, flashes, and even crashes of the command shell window\&. To output a basic, printable interpretation of the data, use the \-h option, or, if you are looking at an SSL connection, the \-s option\&. You will notice that the page you retrieved looks incomplete in the browser\&. This is because, by default, the tool closes down after the first connection is complete, so the browser is not able to load images\&. To make the tool continue to accept connections, switch on looping mode with the \-l option\&. The following examples show the output from commonly used combinations of options\&.
 
117
.PP
 
118
Example 1
 
119
.sp
 
120
.if n \{\
 
121
.RS 4
 
122
.\}
 
123
.nf
 
124
$ ssltap\&.exe \-sx \-p 444 interzone\&.mcom\&.com:443 > sx\&.txt
 
125
.fi
 
126
.if n \{\
 
127
.RE
 
128
.\}
 
129
.PP
 
130
Output
 
131
.sp
 
132
.if n \{\
 
133
.RS 4
 
134
.\}
 
135
.nf
 
136
Connected to interzone\&.mcom\&.com:443
 
137
\-\->; [
 
138
alloclen = 66 bytes
 
139
   [ssl2]  ClientHelloV2 {
 
140
            version = {0x03, 0x00}
 
141
            cipher\-specs\-length = 39 (0x27)
 
142
            sid\-length = 0 (0x00)
 
143
            challenge\-length = 16 (0x10)
 
144
            cipher\-suites = {
 
145
 
 
146
                (0x010080) SSL2/RSA/RC4\-128/MD5
 
147
                  (0x020080) SSL2/RSA/RC4\-40/MD5
 
148
                  (0x030080) SSL2/RSA/RC2CBC128/MD5
 
149
                  (0x040080) SSL2/RSA/RC2CBC40/MD5
 
150
                  (0x060040) SSL2/RSA/DES64CBC/MD5
 
151
                  (0x0700c0) SSL2/RSA/3DES192EDE\-CBC/MD5
 
152
                  (0x000004) SSL3/RSA/RC4\-128/MD5
 
153
                  (0x00ffe0) SSL3/RSA\-FIPS/3DES192EDE\-CBC/SHA
 
154
                  (0x00000a) SSL3/RSA/3DES192EDE\-CBC/SHA
 
155
                  (0x00ffe1) SSL3/RSA\-FIPS/DES64CBC/SHA
 
156
                  (0x000009) SSL3/RSA/DES64CBC/SHA
 
157
                  (0x000003) SSL3/RSA/RC4\-40/MD5
 
158
                  (0x000006) SSL3/RSA/RC2CBC40/MD5
 
159
                  }
 
160
            session\-id = { }
 
161
            challenge = { 0xec5d 0x8edb 0x37c9 0xb5c9 0x7b70 0x8fe9 0xd1d3
 
162
 
 
163
0x2592 }
 
164
}
 
165
]
 
166
<\-\- [
 
167
SSLRecord {
 
168
   0: 16 03 00 03  e5                                   |\&.\&.\&.\&.\&.
 
169
   type    = 22 (handshake)
 
170
   version = { 3,0 }
 
171
   length  = 997 (0x3e5)
 
172
   handshake {
 
173
   0: 02 00 00 46                                      |\&.\&.\&.F
 
174
      type = 2 (server_hello)
 
175
      length = 70 (0x000046)
 
176
            ServerHello {
 
177
            server_version = {3, 0}
 
178
            random = {\&.\&.\&.}
 
179
   0: 77 8c 6e 26  6c 0c ec c0  d9 58 4f 47  d3 2d 01 45  |
 
180
wn&l\&.\(`i\&.\&.XOG\&.\-\&.E
 
181
   10: 5c 17 75 43  a7 4c 88 c7  88 64 3c 50  41 48 4f 7f  |
 
182
 
 
183
\e\&.uC\(scL\&.\(,C\&.d<PAHO\&.
 
184
                  session ID = {
 
185
                  length = 32
 
186
 
 
187
                contents = {\&.\&.}
 
188
   0: 14 11 07 a8  2a 31 91 29  11 94 40 37  57 10 a7 32  | \&.\&.\&.\(ad*1\&.)\&.\&.@7W\&.\(sc2
 
189
   10: 56 6f 52 62  fe 3d b3 65  b1 e4 13 0f  52 a3 c8 f6  | VoRb\(Tp=\(S3e\(+-\&.\&.\&.R\(Po\(`E\&.
 
190
         }
 
191
               cipher_suite = (0x0003) SSL3/RSA/RC4\-40/MD5
 
192
         }
 
193
   0: 0b 00 02 c5                                      |\&.\&.\&.\(oA
 
194
      type = 11 (certificate)
 
195
      length = 709 (0x0002c5)
 
196
            CertificateChain {
 
197
            chainlength = 706 (0x02c2)
 
198
               Certificate {
 
199
            size = 703 (0x02bf)
 
200
               data = { saved in file \*(Aqcert\&.001\*(Aq }
 
201
            }
 
202
         }
 
203
   0: 0c 00 00 ca                                      |\&.\&.\&.\&.
 
204
         type = 12 (server_key_exchange)
 
205
         length = 202 (0x0000ca)
 
206
   0: 0e 00 00 00                                      |\&.\&.\&.\&.
 
207
         type = 14 (server_hello_done)
 
208
         length = 0 (0x000000)
 
209
   }
 
210
}
 
211
]
 
212
\-\-> [
 
213
SSLRecord {
 
214
   0: 16 03 00 00  44                                   |\&.\&.\&.\&.D
 
215
   type    = 22 (handshake)
 
216
   version = { 3,0 }
 
217
   length  = 68 (0x44)
 
218
   handshake {
 
219
   0: 10 00 00 40                                      |\&.\&.\&.@
 
220
   type = 16 (client_key_exchange)
 
221
   length = 64 (0x000040)
 
222
         ClientKeyExchange {
 
223
            message = {\&.\&.\&.}
 
224
         }
 
225
   }
 
226
}
 
227
]
 
228
\-\-> [
 
229
SSLRecord {
 
230
   0: 14 03 00 00  01                                   |\&.\&.\&.\&.\&.
 
231
   type    = 20 (change_cipher_spec)
 
232
   version = { 3,0 }
 
233
   length  = 1 (0x1)
 
234
   0: 01                                               |\&.
 
235
}
 
236
SSLRecord {
 
237
   0: 16 03 00 00  38                                   |\&.\&.\&.\&.8
 
238
   type    = 22 (handshake)
 
239
   version = { 3,0 }
 
240
   length  = 56 (0x38)
 
241
               < encrypted >
 
242
 
 
243
}
 
244
]
 
245
<\-\- [
 
246
SSLRecord {
 
247
   0: 14 03 00 00  01                                   |\&.\&.\&.\&.\&.
 
248
   type    = 20 (change_cipher_spec)
 
249
   version = { 3,0 }
 
250
   length  = 1 (0x1)
 
251
   0: 01                                               |\&.
 
252
}
 
253
]
 
254
<\-\- [
 
255
SSLRecord {
 
256
   0: 16 03 00 00  38                                   |\&.\&.\&.\&.8
 
257
   type    = 22 (handshake)
 
258
   version = { 3,0 }
 
259
   length  = 56 (0x38)
 
260
                  < encrypted >
 
261
 
 
262
}
 
263
]
 
264
\-\-> [
 
265
SSLRecord {
 
266
   0: 17 03 00 01  1f                                   |\&.\&.\&.\&.\&.
 
267
   type    = 23 (application_data)
 
268
   version = { 3,0 }
 
269
   length  = 287 (0x11f)
 
270
               < encrypted >
 
271
}
 
272
]
 
273
<\-\- [
 
274
SSLRecord {
 
275
   0: 17 03 00 00  a0                                   |\&.\&.\&.\&.
 
276
   type    = 23 (application_data)
 
277
   version = { 3,0 }
 
278
   length  = 160 (0xa0)
 
279
               < encrypted >
 
280
 
 
281
}
 
282
]
 
283
<\-\- [
 
284
SSLRecord {
 
285
0: 17 03 00 00  df                                   |\&.\&.\&.\&.\(ss
 
286
   type    = 23 (application_data)
 
287
   version = { 3,0 }
 
288
   length  = 223 (0xdf)
 
289
               < encrypted >
 
290
 
 
291
}
 
292
SSLRecord {
 
293
   0: 15 03 00 00  12                                   |\&.\&.\&.\&.\&.
 
294
   type    = 21 (alert)
 
295
   version = { 3,0 }
 
296
   length  = 18 (0x12)
 
297
               < encrypted >
 
298
}
 
299
]
 
300
Server socket closed\&.
 
301
.fi
 
302
.if n \{\
 
303
.RE
 
304
.\}
 
305
.PP
 
306
Example 2
 
307
.PP
 
308
The \-s option turns on SSL parsing\&. Because the \-x option is not used in this example, undecoded values are output as raw data\&. The output is routed to a text file\&.
 
309
.sp
 
310
.if n \{\
 
311
.RS 4
 
312
.\}
 
313
.nf
 
314
$ ssltap \-s  \-p 444 interzone\&.mcom\&.com:443 > s\&.txt
 
315
.fi
 
316
.if n \{\
 
317
.RE
 
318
.\}
 
319
.PP
 
320
Output
 
321
.sp
 
322
.if n \{\
 
323
.RS 4
 
324
.\}
 
325
.nf
 
326
Connected to interzone\&.mcom\&.com:443
 
327
\-\-> [
 
328
alloclen = 63 bytes
 
329
   [ssl2]  ClientHelloV2 {
 
330
            version = {0x03, 0x00}
 
331
            cipher\-specs\-length = 36 (0x24)
 
332
            sid\-length = 0 (0x00)
 
333
            challenge\-length = 16 (0x10)
 
334
            cipher\-suites = {
 
335
                  (0x010080) SSL2/RSA/RC4\-128/MD5
 
336
                  (0x020080) SSL2/RSA/RC4\-40/MD5
 
337
                  (0x030080) SSL2/RSA/RC2CBC128/MD5
 
338
                  (0x060040) SSL2/RSA/DES64CBC/MD5
 
339
                  (0x0700c0) SSL2/RSA/3DES192EDE\-CBC/MD5
 
340
                  (0x000004) SSL3/RSA/RC4\-128/MD5
 
341
                  (0x00ffe0) SSL3/RSA\-FIPS/3DES192EDE\-CBC/SHA
 
342
                  (0x00000a) SSL3/RSA/3DES192EDE\-CBC/SHA
 
343
                  (0x00ffe1) SSL3/RSA\-FIPS/DES64CBC/SHA
 
344
                  (0x000009) SSL3/RSA/DES64CBC/SHA
 
345
                  (0x000003) SSL3/RSA/RC4\-40/MD5
 
346
                  }
 
347
               session\-id = { }
 
348
            challenge = { 0x713c 0x9338 0x30e1 0xf8d6 0xb934 0x7351 0x200c
 
349
0x3fd0 }
 
350
]
 
351
>\-\- [
 
352
SSLRecord {
 
353
   type    = 22 (handshake)
 
354
   version = { 3,0 }
 
355
   length  = 997 (0x3e5)
 
356
   handshake {
 
357
         type = 2 (server_hello)
 
358
         length = 70 (0x000046)
 
359
            ServerHello {
 
360
            server_version = {3, 0}
 
361
            random = {\&.\&.\&.}
 
362
            session ID = {
 
363
               length = 32
 
364
               contents = {\&.\&.}
 
365
               }
 
366
               cipher_suite = (0x0003) SSL3/RSA/RC4\-40/MD5
 
367
            }
 
368
         type = 11 (certificate)
 
369
         length = 709 (0x0002c5)
 
370
            CertificateChain {
 
371
               chainlength = 706 (0x02c2)
 
372
               Certificate {
 
373
                  size = 703 (0x02bf)
 
374
                  data = { saved in file \*(Aqcert\&.001\*(Aq }
 
375
               }
 
376
            }
 
377
         type = 12 (server_key_exchange)
 
378
         length = 202 (0x0000ca)
 
379
         type = 14 (server_hello_done)
 
380
         length = 0 (0x000000)
 
381
   }
 
382
}
 
383
]
 
384
\-\-> [
 
385
SSLRecord {
 
386
   type    = 22 (handshake)
 
387
   version = { 3,0 }
 
388
   length  = 68 (0x44)
 
389
   handshake {
 
390
         type = 16 (client_key_exchange)
 
391
         length = 64 (0x000040)
 
392
            ClientKeyExchange {
 
393
               message = {\&.\&.\&.}
 
394
            }
 
395
   }
 
396
}
 
397
]
 
398
\-\-> [
 
399
SSLRecord {
 
400
   type    = 20 (change_cipher_spec)
 
401
   version = { 3,0 }
 
402
   length  = 1 (0x1)
 
403
}
 
404
SSLRecord {
 
405
   type    = 22 (handshake)
 
406
   version = { 3,0 }
 
407
   length  = 56 (0x38)
 
408
               > encrypted >
 
409
}
 
410
]
 
411
>\-\- [
 
412
SSLRecord {
 
413
   type    = 20 (change_cipher_spec)
 
414
   version = { 3,0 }
 
415
   length  = 1 (0x1)
 
416
}
 
417
]
 
418
>\-\- [
 
419
SSLRecord {
 
420
   type    = 22 (handshake)
 
421
   version = { 3,0 }
 
422
   length  = 56 (0x38)
 
423
               > encrypted >
 
424
}
 
425
]
 
426
\-\-> [
 
427
SSLRecord {
 
428
   type    = 23 (application_data)
 
429
   version = { 3,0 }
 
430
   length  = 287 (0x11f)
 
431
               > encrypted >
 
432
}
 
433
]
 
434
[
 
435
SSLRecord {
 
436
   type    = 23 (application_data)
 
437
   version = { 3,0 }
 
438
   length  = 160 (0xa0)
 
439
               > encrypted >
 
440
}
 
441
]
 
442
>\-\- [
 
443
SSLRecord {
 
444
   type    = 23 (application_data)
 
445
   version = { 3,0 }
 
446
   length  = 223 (0xdf)
 
447
               > encrypted >
 
448
}
 
449
SSLRecord {
 
450
   type    = 21 (alert)
 
451
   version = { 3,0 }
 
452
   length  = 18 (0x12)
 
453
               > encrypted >
 
454
}
 
455
]
 
456
Server socket closed\&.
 
457
.fi
 
458
.if n \{\
 
459
.RE
 
460
.\}
 
461
.PP
 
462
Example 3
 
463
.PP
 
464
In this example, the \-h option turns hex/ASCII format\&. There is no SSL parsing or decoding\&. The output is routed to a text file\&.
 
465
.sp
 
466
.if n \{\
 
467
.RS 4
 
468
.\}
 
469
.nf
 
470
$ ssltap \-h  \-p 444 interzone\&.mcom\&.com:443 > h\&.txt
 
471
.fi
 
472
.if n \{\
 
473
.RE
 
474
.\}
 
475
.PP
 
476
Output
 
477
.sp
 
478
.if n \{\
 
479
.RS 4
 
480
.\}
 
481
.nf
 
482
Connected to interzone\&.mcom\&.com:443
 
483
\-\-> [
 
484
   0: 80 40 01 03  00 00 27 00  00 00 10 01  00 80 02 00  | \&.@\&.\&.\&.\&.\*(Aq\&.\&.\&.\&.\&.\&.\&.\&.\&.
 
485
   10: 80 03 00 80  04 00 80 06  00 40 07 00  c0 00 00 04  | \&.\&.\&.\&.\&.\&.\&.\&.\&.@\&.\&.\&.\&.\&.\&.
 
486
   20: 00 ff e0 00  00 0a 00 ff  e1 00 00 09  00 00 03 00  | \&.\&.\&.\&.\&.\&.\&.\&.\('a\&.\&.\&.\&.\&.\&.\&.
 
487
   30: 00 06 9b fe  5b 56 96 49  1f 9f ca dd  d5 ba b9 52  | \&.\&.\(Tp[V\&.I\&.\exd9 \&.\&.\&.\(Om\(S1R
 
488
   40: 6f 2d                                            |o\-
 
489
]
 
490
<\-\- [
 
491
   0: 16 03 00 03  e5 02 00 00  46 03 00 7f  e5 0d 1b 1d  | \&.\&.\&.\&.\&.\&.\&.\&.F\&.\&.\&.\&.\&.\&.\&.
 
492
   10: 68 7f 3a 79  60 d5 17 3c  1d 9c 96 b3  88 d2 69 3b  | h\&.:y`\&.\&.<\&.\&.\(S3\&.\(`Oi;
 
493
   20: 78 e2 4b 8b  a6 52 12 4b  46 e8 c2 20  14 11 89 05  | x\&.K\&.\(bbR\&.KF\(`e\&. \&.\&.\&.
 
494
   30: 4d 52 91 fd  93 e0 51 48  91 90 08 96  c1 b6 76 77  | MR\&.\('y\&.\&.QH\&.\&.\&.\&.\&.\(psvw
 
495
   40: 2a f4 00 08  a1 06 61 a2  64 1f 2e 9b  00 03 00 0b  | *\(^o\&.\&.\(r!\&.a\(ctd\&.\&.\&.\&.\&.\&.
 
496
   50: 00 02 c5 00  02 c2 00 02  bf 30 82 02  bb 30 82 02  | \&.\&.\(oA\&.\&.\&.\&.\&.\&.0\&.\&.\&.0\&.\&.
 
497
   60: 24 a0 03 02  01 02 02 02  01 36 30 0d  06 09 2a 86  | $ \&.\&.\&.\&.\&.\&.\&.60\&.\&.\&.*\&.
 
498
   70: 48 86 f7 0d  01 01 04 05  00 30 77 31  0b 30 09 06  | H\&.\(di\&.\&.\&.\&.\&.\&.0w1\&.0\&.\&.
 
499
   80: 03 55 04 06  13 02 55 53  31 2c 30 2a  06 03 55 04  | \&.U\&.\&.\&.\&.US1,0*\&.\&.U\&.
 
500
   90: 0a 13 23 4e  65 74 73 63  61 70 65 20  43 6f 6d 6d  | \&.\&.#Netscape Comm
 
501
   a0: 75 6e 69 63  61 74 69 6f  6e 73 20 43  6f 72 70 6f  | unications Corpo
 
502
   b0: 72 61 74 69  6f 6e 31 11  30 0f 06 03  55 04 0b 13  | ration1\&.0\&.\&.\&.U\&.\&.\&.
 
503
   c0: 08 48 61 72  64 63 6f 72  65 31 27 30  25 06 03 55  | \&.Hardcore1\*(Aq0%\&.\&.U
 
504
   d0: 04 03 13 1e  48 61 72 64  63 6f 72 65  20 43 65 72  | \&.\&.\&.\&.Hardcore Cer
 
505
   e0: 74 69 66 69  63 61 74 65  20 53 65 72  76 65 72 20  | tificate Server
 
506
   f0: 49 49 30 1e  17 0d 39 38  30 35 31 36  30 31 30 33  | II0\&.\&.\&.9805160103
 
507
<additional data lines>
 
508
]
 
509
<additional records in same format>
 
510
Server socket closed\&.
 
511
.fi
 
512
.if n \{\
 
513
.RE
 
514
.\}
 
515
.PP
 
516
Example 4
 
517
.PP
 
518
In this example, the \-s option turns on SSL parsing, and the \-h option turns on hex/ASCII format\&. Both formats are shown for each record\&. The output is routed to a text file\&.
 
519
.sp
 
520
.if n \{\
 
521
.RS 4
 
522
.\}
 
523
.nf
 
524
$ ssltap \-hs \-p 444 interzone\&.mcom\&.com:443 > hs\&.txt
 
525
.fi
 
526
.if n \{\
 
527
.RE
 
528
.\}
 
529
.PP
 
530
Output
 
531
.sp
 
532
.if n \{\
 
533
.RS 4
 
534
.\}
 
535
.nf
 
536
Connected to interzone\&.mcom\&.com:443
 
537
\-\-> [
 
538
   0: 80 3d 01 03  00 00 24 00  00 00 10 01  00 80 02 00  | \&.=\&.\&.\&.\&.$\&.\&.\&.\&.\&.\&.\&.\&.\&.
 
539
   10: 80 03 00 80  04 00 80 06  00 40 07 00  c0 00 00 04  | \&.\&.\&.\&.\&.\&.\&.\&.\&.@\&.\&.\&.\&.\&.\&.
 
540
   20: 00 ff e0 00  00 0a 00 ff  e1 00 00 09  00 00 03 03  | \&.\&.\&.\&.\&.\&.\&.\&.\('a\&.\&.\&.\&.\&.\&.\&.
 
541
   30: 55 e6 e4 99  79 c7 d7 2c  86 78 96 5d  b5 cf e9     |U\&.\&.y\(,C\exb0 ,\&.x\&.]\(mc\(:I\('e
 
542
alloclen = 63 bytes
 
543
   [ssl2]  ClientHelloV2 {
 
544
            version = {0x03, 0x00}
 
545
            cipher\-specs\-length = 36 (0x24)
 
546
            sid\-length = 0 (0x00)
 
547
            challenge\-length = 16 (0x10)
 
548
            cipher\-suites = {
 
549
                  (0x010080) SSL2/RSA/RC4\-128/MD5
 
550
                  (0x020080) SSL2/RSA/RC4\-40/MD5
 
551
                  (0x030080) SSL2/RSA/RC2CBC128/MD5
 
552
                  (0x040080) SSL2/RSA/RC2CBC40/MD5
 
553
                  (0x060040) SSL2/RSA/DES64CBC/MD5
 
554
                  (0x0700c0) SSL2/RSA/3DES192EDE\-CBC/MD5
 
555
                  (0x000004) SSL3/RSA/RC4\-128/MD5
 
556
                  (0x00ffe0) SSL3/RSA\-FIPS/3DES192EDE\-CBC/SHA
 
557
                  (0x00000a) SSL3/RSA/3DES192EDE\-CBC/SHA
 
558
                  (0x00ffe1) SSL3/RSA\-FIPS/DES64CBC/SHA
 
559
                  (0x000009) SSL3/RSA/DES64CBC/SHA
 
560
                  (0x000003) SSL3/RSA/RC4\-40/MD5
 
561
                  }
 
562
            session\-id = { }
 
563
            challenge = { 0x0355 0xe6e4 0x9979 0xc7d7 0x2c86 0x7896 0x5db
 
564
 
 
565
0xcfe9 }
 
566
}
 
567
]
 
568
<additional records in same formats>
 
569
Server socket closed\&.
 
570
.fi
 
571
.if n \{\
 
572
.RE
 
573
.\}
 
574
.SH "USAGE TIPS"
 
575
.PP
 
576
When SSL restarts a previous session, it makes use of cached information to do a partial handshake\&. If you wish to capture a full SSL handshake, restart the browser to clear the session id cache\&.
 
577
.PP
 
578
If you run the tool on a machine other than the SSL server to which you are trying to connect, the browser will complain that the host name you are trying to connect to is different from the certificate\&. If you are using the default BadCert callback, you can still connect through a dialog\&. If you are not using the default BadCert callback, the one you supply must allow for this possibility\&.
 
579
.SH "SEE ALSO"
 
580
.PP
 
581
The NSS Security Tools are also documented at
 
582
\m[blue]\fBhttp://www\&.mozilla\&.org/projects/security/pki/nss/\fR\m[]\&\s-2\u[2]\d\s+2\&.
 
583
.SH "ADDITIONAL RESOURCES"
 
584
.PP
 
585
For information about NSS and other tools related to NSS (like JSS), check out the NSS project wiki at
 
586
\m[blue]\fBhttp://www\&.mozilla\&.org/projects/security/pki/nss/\fR\m[]\&. The NSS site relates directly to NSS code changes and releases\&.
 
587
.PP
 
588
Mailing lists: https://lists\&.mozilla\&.org/listinfo/dev\-tech\-crypto
 
589
.PP
 
590
IRC: Freenode at #dogtag\-pki
 
591
.SH "AUTHORS"
 
592
.PP
 
593
The NSS tools were written and maintained by developers with Netscape, Red Hat, Sun, Oracle, Mozilla, and Google\&.
 
594
.PP
 
595
Authors: Elio Maldonado <emaldona@redhat\&.com>, Deon Lackey <dlackey@redhat\&.com>\&.
 
596
.SH "LICENSE"
 
597
.PP
 
598
Licensed under the Mozilla Public License, v\&. 2\&.0\&. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla\&.org/MPL/2\&.0/\&.
 
599
.SH "NOTES"
 
600
.IP " 1." 4
 
601
Mozilla NSS bug 836477
 
602
.RS 4
 
603
\%https://bugzilla.mozilla.org/show_bug.cgi?id=836477
 
604
.RE
 
605
.IP " 2." 4
 
606
http://www.mozilla.org/projects/security/pki/nss/
 
607
.RS 4
 
608
\%http://www.mozilla.org/projects/security/pki/nss/tools
 
609
.RE