【问题标题】:SSL/TLS connection monitoring/analysisSSL/TLS 连接监控/分析
【发布时间】:2012-06-04 12:32:27
【问题描述】:

我想向客户端显示我的客户端/服务器应用程序正在使用具有相互身份验证的安全连接。

我的服务器应用程序是使用 C# 实现的,而客户端使用 C 和 OpenSSL。他们可以互相交谈并且工作正常。我正在尝试使用以下两种解决方案进行演示,但我对结果不满意。

  1. 使用 SSLDump 监控连接:

    下面列出了输出,似乎没有什么问题,但不确定。请帮我解决一下这个。

  2. 使用 WiresharkUnsniff 监控连接,

    一个网络分析工具,可以给我一些高层次的分析结果,对我的演示很有帮助。但是当我用这两个工具查看连接时,它们都显示协议是 TCP,我希望它们显示连接的协议是 SSL/TLS。

有什么想法吗?

来自 SSLDump 的输出
fan@ubuntu:~/Desktop$ sudo ssldump -i eth0 端口 9527 和主机风扇
新 TCP 连接 #1:192.168.181.144(60992) fan.local(9527)
1 1  0.0044 (0.0044)  C>S  握手
客户您好
3.1 版
密码套件
未知值 0xc014
未知值 0xc00a
TLS_DHE_RSA_WITH_AES_256_CBC_SHA
TLS_DHE_DSS_WITH_AES_256_CBC_SHA
未知值 0x88
未知值 0x87
未知值 0xc00f
未知值 0xc005
TLS_RSA_WITH_AES_256_CBC_SHA
未知值 0x84
未知值 0xc012
未知值 0xc008
TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA
未知值 0xc00d
未知值 0xc003
TLS_RSA_WITH_3DES_EDE_CBC_SHA
未知值 0xc013
未知值 0xc009
TLS_DHE_RSA_WITH_AES_128_CBC_SHA
TLS_DHE_DSS_WITH_AES_128_CBC_SHA
未知值 0x9a
未知值 0x99
未知值 0x45
未知值 0x44
未知值 0xc00e
未知值 0xc004
TLS_RSA_WITH_AES_128_CBC_SHA
未知值 0x96
未知值 0x41
未知值 0xc011
未知值 0xc007
未知值 0xc00c
未知值 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
未知值 0xff
压缩方法
未知值

1 2  0.2572 (0.2528)  S>C  握手
服务器你好
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 是 56 ef c4 fe 73 b7
密码套件         TLS_RSA_WITH_RC4_128_MD5
压缩方法                  NULL
证书
证书申请
证书类型                   rsa_sign
证书类型                   dss_sign
证书授权
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
证书授权
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
证书授权
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
证书授权
...
证书授权
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
证书授权
30 16 31 14 30 12 06 03 55 04 03 13 0b 58 59 5a
20 43 6f 6d 70 61 6e 79
服务器HelloDone
1 3  0.3889 (0.1316)  C>S  握手
证书
1 4  0.3889 (0.0000)  C>S  握手
客户密钥交换
1 5  0.3889 (0.0000)  C>S  握手
证书验证
签名[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 afe ea 2e 广告
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  握手
1 8  0.5480 (0.1591)  S>C  ChangeCipherSpec
1 9  0.5480 (0.0000)  S>C  握手
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

【问题讨论】:

  • Wireshark 显示它是 TCP 的事实并不意味着什么,因为 SSL/TLS 通常位于 TCP 之上。在 Wireshark 中,右键单击 TCP 数据包并选择“解码为...”(然后选择 SSL)。
  • @Bruno 很高兴知道这一点,这很有帮助。谢谢!我会尝试用我的证书解码数据包。

标签: monitoring analysis ssl


【解决方案1】:

这看起来像是与客户端和服务器证书交换进行的正常 SSL/TLS 协商。但是至少客户端和服务器看起来像是在运行 TLS 1.0。根据您的安全要求,使用 TLS 1.2 和更安全的分组密码可能会更好。

【讨论】:

  • 谢谢,我想我会用这个示例输出制作演示。
  • 关于服务器端应用程序,我很确定它使用的是 TLSv1.0 (RFC-2246)。它已在 MS 开发文档中有详细记录。关于客户端应用程序,我在 OpenSSL 中使用 TLSv1_client_method,根据文档,我不确定它是否使用 TLSv1.0,你可以参考这个link。关于块芯片,通过说使用 TLSv1.2 块密码,你的意思是我正在为这个 TLSv1.0 连接(服务器端和客户端)使用 TLSv1.2 块密码,我想我可以通过生成不同的证书,对吧?
  • @fan 您不需要更改证书(例如,假设您有 2048 位 RSA 证书):这是您想要的密码套件设置。 (不幸的是,TLS 1.2 仍然很少见。尽量使用最高版本的 TLS,以及适当的密码套件。)
猜你喜欢
  • 2013-07-26
  • 2020-07-05
  • 2020-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-24
相关资源
最近更新 更多