SSL/TLS connection monitoring/analysis

2019-09-06 17:11发布

问题:

I want to show the client that my client/server app is using a secure connection with mutual authentication.

My server app is implemented using C#, and the client is using C with OpenSSL. They can talk to each other and work fine. I'm trying do this demonstration with the two solutions below, but I'm not satisfied with the results.

  1. Monitoring the connection using SSLDump:

    The output is listed below, seems to be nothing wrong with it, but not sure about that. Please help me with this.

  2. Monitoring the connection using Wireshark, and Unsniff,

    A network analysis tool, that can give me some kind of high level analysis result, could be very helpful with my demonstration. But when I watch the connection with these two tools, they all show me that the protocol is TCP, and I want they show me that protocol of the connection is SSL/TLS.

Any ideas?

Output from SSLDump:
fan@ubuntu:~/Desktop$ sudo ssldump -i eth0 port 9527 and host fan
New TCP connection #1: 192.168.181.144(60992) <-> fan.local(9527)
1 1  0.0044 (0.0044)  C>S  Handshake
      ClientHello
        Version 3.1
        cipher suites
        Unknown value 0xc014
        Unknown value 0xc00a
        TLS_DHE_RSA_WITH_AES_256_CBC_SHA
        TLS_DHE_DSS_WITH_AES_256_CBC_SHA
        Unknown value 0x88
        Unknown value 0x87
        Unknown value 0xc00f
        Unknown value 0xc005
        TLS_RSA_WITH_AES_256_CBC_SHA
        Unknown value 0x84
        Unknown value 0xc012
        Unknown value 0xc008
        TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
        TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA
        Unknown value 0xc00d
        Unknown value 0xc003
        TLS_RSA_WITH_3DES_EDE_CBC_SHA
        Unknown value 0xc013
        Unknown value 0xc009
        TLS_DHE_RSA_WITH_AES_128_CBC_SHA
        TLS_DHE_DSS_WITH_AES_128_CBC_SHA
        Unknown value 0x9a
        Unknown value 0x99
        Unknown value 0x45
        Unknown value 0x44
        Unknown value 0xc00e
        Unknown value 0xc004
        TLS_RSA_WITH_AES_128_CBC_SHA
        Unknown value 0x96
        Unknown value 0x41
        Unknown value 0xc011
        Unknown value 0xc007
        Unknown value 0xc00c
        Unknown value 0xc002
        TLS_RSA_WITH_RC4_128_SHA
        TLS_RSA_WITH_RC4_128_MD5
        TLS_DHE_RSA_WITH_DES_CBC_SHA
        TLS_DHE_DSS_WITH_DES_CBC_SHA
        TLS_RSA_WITH_DES_CBC_SHA
        TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA
        TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA
        TLS_RSA_EXPORT_WITH_DES40_CBC_SHA
        TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5
        TLS_RSA_EXPORT_WITH_RC4_40_MD5
        Unknown value 0xff
        compression methods
                unknown value
                  NULL
1 2  0.2572 (0.2528)  S>C  Handshake
      ServerHello
        Version 3.1
        session_id[32]=
          5e 08 00 00 82 35 0d a1 2a 91 c2 ac cb 62 1e f5
          d0 88 3a d3 1a 64 58 a3 11 be 56 ef c4 fe 73 b7
        cipherSuite         TLS_RSA_WITH_RC4_128_MD5
        compressionMethod                   NULL
      Certificate
      CertificateRequest
        certificate_types                   rsa_sign
        certificate_types                   dss_sign
        certificate_authority
          30 4f 31 15 30 13 06 0a 09 92 26 89 93 f2 2c 64
          01 19 16 05 6c 6f 63 61 6c 31 19 30 17 06 0a 09
          92 26 89 93 f2 2c 64 01 19 16 09 4f 62 6a 65 63
          74 69 76 61 31 1b 30 19 06 03 55 04 03 13 12 4f
          62 6a 65 63 74 69 76 61 2d 42 4a 50 44 43 2d 43
          41
        certificate_authority
          30 6f 31 0b 30 09 06 03 55 04 06 13 02 53 45 31
          14 30 12 06 03 55 04 0a 13 0b 41 64 64 54 72 75
          73 74 20 41 42 31 26 30 24 06 03 55 04 0b 13 1d
          41 64 64 54 72 75 73 74 20 45 78 74 65 72 6e 61
          6c 20 54 54 50 20 4e 65 74 77 6f 72 6b 31 22 30
          20 06 03 55 04 03 13 19 41 64 64 54 72 75 73 74
          20 45 78 74 65 72 6e 61 6c 20 43 41 20 52 6f 6f
          74
        certificate_authority
          30 81 c1 31 0b 30 09 06 03 55 04 06 13 02 55 53
          31 17 30 15 06 03 55 04 0a 13 0e 56 65 72 69 53
          69 67 6e 2c 20 49 6e 63 2e 31 3c 30 3a 06 03 55
          04 0b 13 33 43 6c 61 73 73 20 31 20 50 75 62 6c
          69 63 20 50 72 69 6d 61 72 79 20 43 65 72 74 69
          66 69 63 61 74 69 6f 6e 20 41 75 74 68 6f 72 69
          74 79 20 2d 20 47 32 31 3a 30 38 06 03 55 04 0b
          13 31 28 63 29 20 31 39 39 38 20 56 65 72 69 53
          69 67 6e 2c 20 49 6e 63 2e 20 2d 20 46 6f 72 20
          61 75 74 68 6f 72 69 7a 65 64 20 75 73 65 20 6f
          6e 6c 79 31 1f 30 1d 06 03 55 04 0b 13 16 56 65
          72 69 53 69 67 6e 20 54 72 75 73 74 20 4e 65 74
          77 6f 72 6b
        certificate_authority
        ...
        certificate_authority
          30 52 31 0b 30 09 06 03 55 04 06 13 02 55 53 31
          0b 30 09 06 03 55 04 08 13 02 43 41 31 12 30 10
          06 03 55 04 07 13 09 50 61 6c 6f 20 41 6c 74 6f
          31 10 30 0e 06 03 55 04 0a 13 07 42 6f 78 2e 6e
          65 74 31 10 30 0e 06 03 55 04 03 13 07 62 6f 78
          2e 6e 65 74
        certificate_authority
          30 16 31 14 30 12 06 03 55 04 03 13 0b 58 59 5a
          20 43 6f 6d 70 61 6e 79
      ServerHelloDone
1 3  0.3889 (0.1316)  C>S  Handshake
      Certificate
1 4  0.3889 (0.0000)  C>S  Handshake
      ClientKeyExchange
1 5  0.3889 (0.0000)  C>S  Handshake
      CertificateVerify
        Signature[256]=
          02 fb a2 32 cd 1f 43 6e e7 1c b6 d8 8e a0 cc 49
          6e 04 17 fa 8d 86 b0 a5 98 23 b0 19 ec f2 a5 8d
          65 2d 31 81 73 96 43 89 19 81 ea 60 c8 12 4a 86
          99 a5 b1 7b b5 29 ee 57 46 39 32 b4 f4 df 49 e0
          97 35 c8 a2 e1 12 98 21 fa 75 87 9a 84 17 82 ba
          72 a1 60 0a 44 3b 72 97 88 0c 44 0b 7c 14 f5 01
          1b 47 90 fb c0 0e dc ae 91 c3 a4 38 c9 b7 c5 37
          52 d6 4e a1 fb d5 87 35 df a3 cb 28 ab 73 f6 c3
          b5 11 48 fc db 9b 84 a2 35 b7 c8 42 df b0 7a 20
          b3 20 52 f0 6c 29 ae 96 4c 32 2e ba af ea 2e ad
          2d ee 2e ed da 49 f7 55 38 29 7e 90 62 a7 03 4f
          cd 76 14 36 b2 e0 a6 73 f2 7c c3 04 7f c1 a7 ca
          db 5b 97 84 a7 df c3 e6 a5 15 0b f1 d6 bf e0 8b
          7c 62 55 c9 2b 24 2d ac 8c 7b c8 72 70 9c ef 77
          c4 5b d5 32 a8 30 6f e7 43 46 f9 47 05 c6 b9 4a
          9d 98 6b f4 b6 bd 82 14 ec 65 99 42 f0 a0 9b 18
1 6  0.3889 (0.0000)  C>S  ChangeCipherSpec
1 7  0.3889 (0.0000)  C>S  Handshake
1 8  0.5480 (0.1591)  S>C  ChangeCipherSpec
1 9  0.5480 (0.0000)  S>C  Handshake
1 10 0.5502 (0.0022)  C>S  application_data
1 11 0.5513 (0.0011)  C>S  application_data
1 12 0.5517 (0.0004)  C>S  application_data
1 13 0.5521 (0.0004)  C>S  application_data
1 14 0.6444 (0.0923)  S>C  application_data
1 15 9.8598 (9.2153)  C>S  application_data
1 16 10.2293 (0.3694)  C>S  application_data
1    12.3329 (2.1035)  C>S  TCP FIN
1    12.3401 (0.0072)  S>C  TCP FIN

回答1:

This looks like a normal SSL/TLS negotiation with a Client and Server certificate exchange. However at least the client and maybe the server look like they are running TLS 1.0. The use of TLS 1.2 and a more secure block cipher could be good depending on your security requirements.