2013-12-20 16:37:05 +00:00
|
|
|
>>> Flow 1 (client to server)
|
2015-04-29 18:10:48 +01:00
|
|
|
00000000 16 03 01 00 5b 01 00 00 57 03 03 72 1e c6 5e 14 |....[...W..r..^.|
|
|
|
|
00000010 4d 88 9c 2c 6e fb bb bb 37 26 f7 0f 06 d5 e8 aa |M..,n...7&......|
|
|
|
|
00000020 53 e0 df d0 de 81 f8 33 b1 86 ff 00 00 04 00 05 |S......3........|
|
crypto/tls: decouple handshake signatures from the handshake hash.
Prior to TLS 1.2, the handshake had a pleasing property that one could
incrementally hash it and, from that, get the needed hashes for both
the CertificateVerify and Finished messages.
TLS 1.2 introduced negotiation for the signature and hash and it became
possible for the handshake hash to be, say, SHA-384, but for the
CertificateVerify to sign the handshake with SHA-1. The problem is that
one doesn't know in advance which hashes will be needed and thus the
handshake needs to be buffered.
Go ignored this, always kept a single handshake hash, and any signatures
over the handshake had to use that hash.
However, there are a set of servers that inspect the client's offered
signature hash functions and will abort the handshake if one of the
server's certificates is signed with a hash function outside of that
set. https://robertsspaceindustries.com/ is an example of such a server.
Clearly not a lot of thought happened when that server code was written,
but its out there and we have to deal with it.
This change decouples the handshake hash from the CertificateVerify
hash. This lays the groundwork for advertising support for SHA-384 but
doesn't actually make that change in the interests of reviewability.
Updating the advertised hash functions will cause changes in many of the
testdata/ files and some errors might get lost in the noise. This change
only needs to update four testdata/ files: one because a SHA-384-based
handshake is now being signed with SHA-256 and the others because the
TLS 1.2 CertificateRequest message now includes SHA-1.
This change also has the effect of adding support for
client-certificates in SSLv3 servers. However, SSLv3 is now disabled by
default so this should be moot.
It would be possible to avoid much of this change and just support
SHA-384 for the ServerKeyExchange as the SKX only signs over the nonces
and SKX params (a design mistake in TLS). However, that would leave Go
in the odd situation where it advertised support for SHA-384, but would
only use the handshake hash when signing client certificates. I fear
that'll just cause problems in the future.
Much of this code was written by davidben@ for the purposes of testing
BoringSSL.
Partly addresses #9757
Change-Id: I5137a472b6076812af387a5a69fc62c7373cd485
Reviewed-on: https://go-review.googlesource.com/9415
Run-TryBot: Adam Langley <agl@golang.org>
Reviewed-by: Adam Langley <agl@golang.org>
2015-04-28 17:13:38 +01:00
|
|
|
00000030 00 ff 02 01 00 00 29 00 0d 00 20 00 1e 06 01 06 |......)... .....|
|
|
|
|
00000040 02 06 03 05 01 05 02 05 03 04 01 04 02 04 03 03 |................|
|
|
|
|
00000050 01 03 02 03 03 02 01 02 02 02 03 00 0f 00 01 01 |................|
|
2013-12-20 16:37:05 +00:00
|
|
|
>>> Flow 2 (server to client)
|
2014-01-09 18:38:11 +00:00
|
|
|
00000000 16 03 03 00 31 02 00 00 2d 03 03 00 00 00 00 00 |....1...-.......|
|
2013-12-20 16:37:05 +00:00
|
|
|
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
|
2014-01-09 18:38:11 +00:00
|
|
|
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 |................|
|
|
|
|
00000030 05 ff 01 00 01 00 16 03 03 02 be 0b 00 02 ba 00 |................|
|
|
|
|
00000040 02 b7 00 02 b4 30 82 02 b0 30 82 02 19 a0 03 02 |.....0...0......|
|
|
|
|
00000050 01 02 02 09 00 85 b0 bb a4 8a 7f b8 ca 30 0d 06 |.............0..|
|
|
|
|
00000060 09 2a 86 48 86 f7 0d 01 01 05 05 00 30 45 31 0b |.*.H........0E1.|
|
|
|
|
00000070 30 09 06 03 55 04 06 13 02 41 55 31 13 30 11 06 |0...U....AU1.0..|
|
|
|
|
00000080 03 55 04 08 13 0a 53 6f 6d 65 2d 53 74 61 74 65 |.U....Some-State|
|
|
|
|
00000090 31 21 30 1f 06 03 55 04 0a 13 18 49 6e 74 65 72 |1!0...U....Inter|
|
|
|
|
000000a0 6e 65 74 20 57 69 64 67 69 74 73 20 50 74 79 20 |net Widgits Pty |
|
|
|
|
000000b0 4c 74 64 30 1e 17 0d 31 30 30 34 32 34 30 39 30 |Ltd0...100424090|
|
|
|
|
000000c0 39 33 38 5a 17 0d 31 31 30 34 32 34 30 39 30 39 |938Z..1104240909|
|
|
|
|
000000d0 33 38 5a 30 45 31 0b 30 09 06 03 55 04 06 13 02 |38Z0E1.0...U....|
|
|
|
|
000000e0 41 55 31 13 30 11 06 03 55 04 08 13 0a 53 6f 6d |AU1.0...U....Som|
|
|
|
|
000000f0 65 2d 53 74 61 74 65 31 21 30 1f 06 03 55 04 0a |e-State1!0...U..|
|
|
|
|
00000100 13 18 49 6e 74 65 72 6e 65 74 20 57 69 64 67 69 |..Internet Widgi|
|
|
|
|
00000110 74 73 20 50 74 79 20 4c 74 64 30 81 9f 30 0d 06 |ts Pty Ltd0..0..|
|
|
|
|
00000120 09 2a 86 48 86 f7 0d 01 01 01 05 00 03 81 8d 00 |.*.H............|
|
|
|
|
00000130 30 81 89 02 81 81 00 bb 79 d6 f5 17 b5 e5 bf 46 |0.......y......F|
|
|
|
|
00000140 10 d0 dc 69 be e6 2b 07 43 5a d0 03 2d 8a 7a 43 |...i..+.CZ..-.zC|
|
|
|
|
00000150 85 b7 14 52 e7 a5 65 4c 2c 78 b8 23 8c b5 b4 82 |...R..eL,x.#....|
|
|
|
|
00000160 e5 de 1f 95 3b 7e 62 a5 2c a5 33 d6 fe 12 5c 7a |....;~b.,.3...\z|
|
|
|
|
00000170 56 fc f5 06 bf fa 58 7b 26 3f b5 cd 04 d3 d0 c9 |V.....X{&?......|
|
|
|
|
00000180 21 96 4a c7 f4 54 9f 5a bf ef 42 71 00 fe 18 99 |!.J..T.Z..Bq....|
|
|
|
|
00000190 07 7f 7e 88 7d 7d f1 04 39 c4 a2 2e db 51 c9 7c |..~.}}..9....Q.||
|
|
|
|
000001a0 e3 c0 4c 3b 32 66 01 cf af b1 1d b8 71 9a 1d db |..L;2f......q...|
|
|
|
|
000001b0 db 89 6b ae da 2d 79 02 03 01 00 01 a3 81 a7 30 |..k..-y........0|
|
|
|
|
000001c0 81 a4 30 1d 06 03 55 1d 0e 04 16 04 14 b1 ad e2 |..0...U.........|
|
|
|
|
000001d0 85 5a cf cb 28 db 69 ce 23 69 de d3 26 8e 18 88 |.Z..(.i.#i..&...|
|
|
|
|
000001e0 39 30 75 06 03 55 1d 23 04 6e 30 6c 80 14 b1 ad |90u..U.#.n0l....|
|
|
|
|
000001f0 e2 85 5a cf cb 28 db 69 ce 23 69 de d3 26 8e 18 |..Z..(.i.#i..&..|
|
|
|
|
00000200 88 39 a1 49 a4 47 30 45 31 0b 30 09 06 03 55 04 |.9.I.G0E1.0...U.|
|
|
|
|
00000210 06 13 02 41 55 31 13 30 11 06 03 55 04 08 13 0a |...AU1.0...U....|
|
|
|
|
00000220 53 6f 6d 65 2d 53 74 61 74 65 31 21 30 1f 06 03 |Some-State1!0...|
|
|
|
|
00000230 55 04 0a 13 18 49 6e 74 65 72 6e 65 74 20 57 69 |U....Internet Wi|
|
|
|
|
00000240 64 67 69 74 73 20 50 74 79 20 4c 74 64 82 09 00 |dgits Pty Ltd...|
|
|
|
|
00000250 85 b0 bb a4 8a 7f b8 ca 30 0c 06 03 55 1d 13 04 |........0...U...|
|
|
|
|
00000260 05 30 03 01 01 ff 30 0d 06 09 2a 86 48 86 f7 0d |.0....0...*.H...|
|
|
|
|
00000270 01 01 05 05 00 03 81 81 00 08 6c 45 24 c7 6b b1 |..........lE$.k.|
|
|
|
|
00000280 59 ab 0c 52 cc f2 b0 14 d7 87 9d 7a 64 75 b5 5a |Y..R.......zdu.Z|
|
|
|
|
00000290 95 66 e4 c5 2b 8e ae 12 66 1f eb 4f 38 b3 6e 60 |.f..+...f..O8.n`|
|
|
|
|
000002a0 d3 92 fd f7 41 08 b5 25 13 b1 18 7a 24 fb 30 1d |....A..%...z$.0.|
|
|
|
|
000002b0 ba ed 98 b9 17 ec e7 d7 31 59 db 95 d3 1d 78 ea |........1Y....x.|
|
|
|
|
000002c0 50 56 5c d5 82 5a 2d 5a 5f 33 c4 b6 d8 c9 75 90 |PV\..Z-Z_3....u.|
|
|
|
|
000002d0 96 8c 0f 52 98 b5 cd 98 1f 89 20 5f f2 a0 1c a3 |...R...... _....|
|
|
|
|
000002e0 1b 96 94 dd a9 fd 57 e9 70 e8 26 6d 71 99 9b 26 |......W.p.&mq..&|
|
2015-04-29 18:10:48 +01:00
|
|
|
000002f0 6e 38 50 29 6c 90 a7 bd d9 16 03 03 00 17 0d 00 |n8P)l...........|
|
|
|
|
00000300 00 13 02 01 40 00 0c 04 01 04 03 05 01 05 03 02 |....@...........|
|
|
|
|
00000310 01 02 03 00 00 16 03 03 00 04 0e 00 00 00 |..............|
|
2013-12-20 16:37:05 +00:00
|
|
|
>>> Flow 3 (client to server)
|
|
|
|
00000000 16 03 03 00 07 0b 00 00 03 00 00 00 16 03 03 00 |................|
|
2015-04-29 18:10:48 +01:00
|
|
|
00000010 86 10 00 00 82 00 80 5b 13 f1 87 cb 3b f1 72 32 |.......[....;.r2|
|
|
|
|
00000020 a0 24 fd ea 6a b1 de 7d 54 4a ff a5 b0 01 8f de |.$..j..}TJ......|
|
|
|
|
00000030 95 d1 a9 7f d4 1d 97 0f 52 cb 9b 60 5d cb 37 d0 |........R..`].7.|
|
|
|
|
00000040 37 eb 8f 2b c6 08 86 b7 d2 87 8e 12 78 af a8 a3 |7..+........x...|
|
|
|
|
00000050 a5 35 cc b7 33 25 60 9a cb 4e b9 b9 51 e0 4c 69 |.5..3%`..N..Q.Li|
|
|
|
|
00000060 7b 2f 68 39 9e 40 c0 0c 77 4f 04 f5 47 7f 45 55 |{/h9.@..wO..G.EU|
|
|
|
|
00000070 e9 90 f1 9e df 11 4a af 9f cc 7e 96 31 d7 b4 d2 |......J...~.1...|
|
|
|
|
00000080 bb 0d 03 56 9b 97 4e 40 53 af 2d c0 2a f9 29 8e |...V..N@S.-.*.).|
|
|
|
|
00000090 82 d0 f7 9a 89 59 5f 14 03 03 00 01 01 16 03 03 |.....Y_.........|
|
|
|
|
000000a0 00 24 d1 27 e7 27 e2 a4 81 4e 02 be 66 7e 78 44 |.$.'.'...N..f~xD|
|
|
|
|
000000b0 ee 40 84 f7 fa 17 ad 6e 99 5c 48 df bb c0 94 f5 |.@.....n.\H.....|
|
|
|
|
000000c0 a2 c6 30 6d 2d 08 |..0m-.|
|
2013-12-20 16:37:05 +00:00
|
|
|
>>> Flow 4 (server to client)
|
2015-04-29 18:10:48 +01:00
|
|
|
00000000 14 03 03 00 01 01 16 03 03 00 24 41 b5 43 2a 5c |..........$A.C*\|
|
|
|
|
00000010 f5 f6 e1 b5 a2 cc 1c c8 86 ae cc a2 0c c4 6b 73 |..............ks|
|
|
|
|
00000020 ab 3d 91 09 04 6d e0 18 af 85 dd 90 9a eb 44 17 |.=...m........D.|
|
|
|
|
00000030 03 03 00 21 74 b4 fd cb c4 7b 81 67 76 18 0f b3 |...!t....{.gv...|
|
|
|
|
00000040 b7 3f 30 2f c9 86 23 f1 79 38 ef 0c da 52 b7 ab |.?0/..#.y8...R..|
|
|
|
|
00000050 f7 9a ca 27 73 15 03 03 00 16 37 2b 19 cc bd f9 |...'s.....7+....|
|
|
|
|
00000060 cd 14 30 21 4f c0 45 e9 e7 ac 7c c4 93 51 f6 aa |..0!O.E...|..Q..|
|