在wireshark中,我能夠從PC上看到加密的數據。它不使用diffie hellman algorihm進行密鑰交換,因爲我只看到Client Key Exchange
數據包,但有沒有Server Key Exchange
數據包。這意味着瀏覽器正在將加密密鑰發送到服務器(使用服務器的公鑰加密)。
但我沒有看到該數據包中的任何加密數據(「客戶端密鑰交換」)。如何查看加密密鑰?如何在ssl密鑰交換期間在wireshark中查看加密密鑰?
1
A
回答
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什麼工作),但您可能想看看服務器和客戶端之間得到的在握手過程中,如果用戶沒有檢查提交的證書的有效性,那麼您就有生意。
這裏是一個工具,它可以爲你做的以及許多其他
值得注意的是我極力推薦的SANS的SSL MITM(中間人)攻擊閱覽室文章。
7
你不會看到加密的共享密鑰,它不會被交換。使用RSA authenticated key exchange時,您可以看到加密的預主密鑰。 (請注意,使用Ephemeral Diffie-Hellman不是看不到服務器密鑰交換消息的唯一原因:它也可以使用DH_DSS
或DH_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
相關問題
- 1. SSL密鑰交換加密技術
- 2. 在PKCS#1中交換公鑰/私鑰OAEP加密/解密
- 3. 在TreeSet中交換密鑰?
- 4. 對稱加密密鑰交換
- 5. 加密密鑰交換了解
- 6. RSA加密Java,密鑰交換
- 7. 只用一個密鑰在密鑰中查找密鑰名稱?
- 8. 在Diffie-Hellman密鑰交換
- 9. SSH密鑰交換
- 10. 對稱加密密鑰與非對稱密鑰-ssl
- 11. RSA SSL密鑰加密更改
- 12. OpenSSL密鑰在aes加密?
- 13. 如何在地圖上交換密鑰?
- 14. Rijndael加密密鑰
- 15. DES加密密鑰
- 16. Mysql加密密鑰
- 17. VIM:加密密鑰
- 18. 加密AES密鑰?
- 19. AES密鑰,加密
- 20. diffie hellman密鑰交換生成共享密鑰的密鑰導出函數
- 21. 任何php加密密鑰?
- 22. 加密客戶端和服務器之間的密鑰交換
- 23. 私鑰加密公鑰加密
- 24. CodeIgniter中的加密密鑰
- 25. 如何在忘記密鑰庫後恢復密鑰庫密碼
- 26. 在哈希中交換密鑰和值
- 27. 在.NET中交換公共密鑰
- 28. 如何檢測密鑰是否在一次性密鑰加密中被重用?
- 29. Kerberos ssh - 密鑰交換慢
- 30. 交換對稱密鑰
我有些詫異,你選擇接受了,他說實際上並沒有回答你的問題,除非我已經錯過了一些...... – Bruno 2012-05-01 09:41:09
@布魯諾現在我從正確的人得到了正確的答案,我接受了它。感謝您通知我我的錯誤:) – suraj 2012-05-04 05:25:08
如果您和@Ashwin選擇了SO來給對方代表,請不要打擾(很容易看到您的相應配置文件,包括已刪除的答案)。你在問一個非常詳細的問題,需要專業知識的SSL(並假定有人問它知道查看數據包的基礎知識)。無可否認,雖然你對加密的東西更感興趣,但結果卻是如此。對於那些試圖學習SSL的人來說,Ashwin的回答是無足輕重的:它不能刪除前兩個字節(並且無論如何都使用最新版本的Wireshark),請不要煩惱學習更多。 – Bruno 2012-05-04 07:54:03