2012-04-20 76 views
1

在wireshark中,我能够从PC上看到加密的数据。它不使用diffie hellman algorihm进行密钥交换,因为我只看到Client Key Exchange数据包,但有没有Server Key Exchange数据包。这意味着浏览器正在将加密密钥发送到服务器(使用服务器的公钥加密)。
但我没有看到该数据包中的任何加密数据(“客户端密钥交换”)。如何查看加密密钥?如何在ssl密钥交换期间在wireshark中查看加密密钥?

+0

我有些诧异,你选择接受了,他说实际上并没有回答你的问题,除非我已经错过了一些...... – Bruno 2012-05-01 09:41:09

+1

@布鲁诺现在我从正确的人得到了正确的答案,我接受了它。感谢您通知我我的错误:) – suraj 2012-05-04 05:25:08

+0

如果您和@Ashwin选择了SO来给对方代表,请不要打扰(很容易看到您的相应配置文件,包括已删除的答案)。你在问一个非常详细的问题,需要专业知识的SSL(并假定有人问它知道查看数据包的基础知识)。无可否认,虽然你对加密的东西更感兴趣,但结果却是如此。对于那些试图学习SSL的人来说,Ashwin的回答是无足轻重的:它不能删除前两个字节(并且无论如何都使用最新版本的Wireshark),请不要烦恼学习更多。 – Bruno 2012-05-04 07:54:03

回答

3

直到最近,在ClientKeyExchange的解剖是这样的(1.6及以下版本):

TLSv1 Record Layer: Handshake Protocol: Client Key Exchange 
    Content Type: Handshake (22) 
    Version: TLS 1.0 (0x0301) 
    Length: 134 
    Handshake Protocol: Client Key Exchange 
     Handshake Type: Client Key Exchange (16) 
     Length: 130 

但是如果你使用this verison(1.7.2向上)的关键解剖会是这样:

TLSv1 Record Layer: Handshake Protocol: Client Key Exchange 
    Content Type: Handshake (22) 
    Version: TLS 1.0 (0x0301) 
    Length: 134 
    Handshake Protocol: Client Key Exchange 
     Handshake Type: Client Key Exchange (16) 
     Length: 130 
     RSA Encrypted PreMaster Secret 
      Encrypted PreMaster length: 128 
      Encrypted PreMaster: 761b1beac35e59de9a3bb9f74ebf9109b738e8ad346 


你可以看到加密的预主:)

3

真棒写在这里解释SSL是如何工作的,在这次握手过程中的任何时候都要注意通过线路发送的私钥。

http://4orensics.wordpress.com/2011/10/21/ssl-in-a-nutshell/

长话短说没有办法解密SSL流而不服务器的私有密钥(除非您为NSA什么工作),但您可能想看看服务器和客户端之间得到的在握手过程中,如果用户没有检查提交的证书的有效性,那么您就有生意。

这里是一个工具,它可以为你做的以及许多其他

http://mitmproxy.org/

值得注意的是我极力推荐的SANS的SSL MITM(中间人)攻击阅览室文章。

+0

我不认为OP正尝试访问私钥,而是尝试访问共享密钥(假定已经访问服务器的私钥)。 – Bruno 2012-04-20 13:29:31

+0

没有“私钥(证书)”这样的东西。通过电线发送服务器的证书*。私人钥匙,当然不是。 – EJP 2015-04-10 01:37:15

7

你不会看到加密的共享密钥,它不会被交换。使用RSA authenticated key exchange时,您可以看到加密的预主密钥。 (请注意,使用Ephemeral Diffie-Hellman不是看不到服务器密钥交换消息的唯一原因:它也可以使用DH_DSSDH_RSA密码套件,但据我所知这是不常见的)。

如果您按照有关decrypting SSL with Wireshark的指示信息,请使用“SSL调试文件”选项将日志存储到文件中。 (请注意,用户界面在新版本的Wireshark中稍有变化,配置私钥的方式也如此)。

日志文件将包含预主密钥和共享密钥。

(顺便说一句,你所需要的服务器的私钥要做到这一点,当然)

使用提供Wireshark的页面上的样本数据,您可以:

pre master encrypted[128]: 
65 51 2d a6 d4 a7 38 df ac 79 1f 0b d9 b2 61 7d 
73 88 32 d9 f2 62 3a 8b 11 04 75 ca 42 ff 4e d9 
cc b9 fa 86 f3 16 2f 09 73 51 66 aa 29 cd 80 61 
0f e8 13 ce 5b 8e 0a 23 f8 91 5e 5f 54 70 80 8e 
7b 28 ef b6 69 b2 59 85 74 98 e2 7e d8 cc 76 80 
e1 b6 45 4d c7 cd 84 ce b4 52 79 74 cd e6 d7 d1 
9c ad ef 63 6c 0f f7 05 e4 4d 1a d3 cb 9c d2 51 
b5 61 cb ff 7c ee c7 bc 5e 15 a3 f2 52 0f bb 32 

pre master secret[48]: 
03 00 ff 84 56 6d a0 fb cc fd c6 c8 20 d5 f0 65 
18 87 b0 44 45 9c e3 92 f0 4d 32 cd 41 85 10 24 
cb 7a b3 01 36 3d 93 27 12 a4 7e 00 29 96 59 d8 

master secret[48]: 
1e db 35 95 b8 18 b3 52 58 f3 07 3f e6 af 8a a6 
ab c3 a4 ed 66 3a 46 86 b6 e5 49 2a 7c f7 8c c2 
ac 22 bb 13 15 0f d8 62 a2 39 23 7b c2 ff 28 fb 

key expansion[136]: 
11 60 e4 e1 74 e9 a1 cf 67 f9 b7 bc ef bc a7 c7 
b3 f7 33 aa b2 42 d0 1c a6 4e fb e9 9b 13 dd 29 
63 aa 17 1f 47 71 95 71 08 e0 4b 8e e1 da 7b 4a 
5a f3 c2 32 bd e0 a5 82 6d 14 44 3a d6 cb 2d c0 
7d 57 be a8 37 de 5d d9 a1 07 fd 1b 22 71 b9 4b 
7a 1e 0f 70 37 14 97 0a f0 db 98 3b 7b 74 e3 2d 
51 66 2e 31 68 90 ac 6f e6 53 3c c9 5e 48 0c 05 
bc 9f 92 e7 f9 91 98 f5 95 1c c4 bf d9 cb 26 ef 
35 70 5e ad 21 22 3e f6 
Client MAC key[20]: 
11 60 e4 e1 74 e9 a1 cf 67 f9 b7 bc ef bc a7 c7 
b3 f7 33 aa 
Server MAC key[20]: 
b2 42 d0 1c a6 4e fb e9 9b 13 dd 29 63 aa 17 1f 
47 71 95 71 
Client Write key[32]: 
08 e0 4b 8e e1 da 7b 4a 5a f3 c2 32 bd e0 a5 82 
6d 14 44 3a d6 cb 2d c0 7d 57 be a8 37 de 5d d9 
Server Write key[32]: 
a1 07 fd 1b 22 71 b9 4b 7a 1e 0f 70 37 14 97 0a 
f0 db 98 3b 7b 74 e3 2d 51 66 2e 31 68 90 ac 6f 
Client Write IV[16]: 
e6 53 3c c9 5e 48 0c 05 bc 9f 92 e7 f9 91 98 f5 
Server Write IV[16]: 
95 1c c4 bf d9 cb 26 ef 35 70 5e ad 21 22 3e f6 
+0

那么加密的主密钥不能在“客户端密钥交换”数据包中查看? – Ashwin 2012-04-21 04:18:44

+0

@Ashwin,当然可以,我刚刚添加了它。你为什么不自己尝试Wireshard的例子?顺便说一下,加密的主密钥直接是客户端密钥交换分组内容的(部分),其周围的ASN.1结构只有少量额外的字节。 – Bruno 2012-04-21 13:06:11

+0

对不起,我的意思是[XDR](http://tools.ietf.org/html/rfc4506)而不是我以前的评论中的ASN.1。 – Bruno 2012-05-04 10:11:34