Как посмотреть зашифрованный ключ в wireshark, во время обмена ключами ssl?

В Wireshark я могу видеть зашифрованные данные туда и сюда с моего компьютера. Он не использует diffie Hellman Algorihm для обмена ключами, потому что я вижу толькоClient Key Exchange пакет, но естьno Server Key Exchange пакет. Это означает, что браузер отправляет зашифрованный ключ на сервер (зашифрованный с использованием открытого ключа сервера).
Но я не вижу никаких зашифрованных данных в этом пакете ("Обмен ключами клиентов"). Как просмотреть зашифрованный ключ?

 suraj04 мая 2012 г., 07:25
@ Bruno Теперь я получил правильный ответ от правильного человека, и я принял его. Спасибо, что сообщили мне мою ошибку :)
 Bruno04 мая 2012 г., 10:18
Что касается недооценки и понижения моего правильного ответа, вы, ребята, просто дерзкие, особенно если учесть, что Эшвин задал еще больше подробностей о самом главном секрете (ясно, что вы оба работаете над этими вопросами вместе, что не является проблемой такие конечно). Да, я отклонил ваш вопрос (и только этот) только потому, что вы, похоже, не решили, о чем спрашиваете (как вы делали во многих других вопросах, касающихся SSL или security.SE).
 Bruno01 мая 2012 г., 11:41
Я несколько удивлен, что вы решили принять ответ, который на самом деле не отвечает на ваш вопрос, если только я что-то пропустил ...
 Bruno04 мая 2012 г., 09:54
Если вы и @Ashwin решили прийти на SO, чтобы дать друг другу представление, не беспокойтесь (легко увидеть соответствующие профили, включая удаленные ответы). Вы задавали очень подробный вопрос, который требует экспертизы SSL (и предполагает, что кто-то, спрашивающий его, знал основы просмотра пакетов). Правда, я думал, что вас больше интересует то, что было зашифровано, а не только результат. Ответ Эшвина смехотворно тривиален для тех, кто пытается узнать о SSL: вы не можете удалить первые 2 байта (и в любом случае использовать последнюю версию Wireshark), не потрудившись узнать больше.

Ответы на вопрос(3)

Решение Вопроса

и ниже):

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

Но если вы используетеэтот Верисон (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


Вы можете увидеть зашифрованный pre-master :)

он не был обменен. Вы можете увидеть зашифрованный предварительный мастер-секрет при использованииRSA аутентифицированный обмен ключами, (Обратите внимание, что использование Ephemeral Diffie-Hellman не единственная причина, по которой сообщение об обмене ключами сервера не отображается: оно также может использоватьDH_DSS или жеDH_RSA набор шифров, но это необычно, насколько я знаю).

Если вы будете следовать инструкциям орасшифровка SSL с помощью 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 
 21 апр. 2012 г., 06:18
Таким образом, зашифрованный мастер-секрет не может быть просмотрен в разделе «Обмен ключами клиента». пакет?
 04 мая 2012 г., 12:11
Извини я имел ввидуXDR вместо ASN.1 в моем предыдущем комментарии.
 21 апр. 2012 г., 15:06
@ Эшвин, конечно, я только что добавил это. Почему бы вам не попробовать пример с Wireshard самостоятельно? Между прочим, зашифрованный главный секрет является (частью) содержимого клиентского пакета обмена ключами, имеется лишь несколько дополнительных байтов для структуры ASN.1 вокруг него.

объясняя, как работает SSL, и ни разу не заметьте, что во время этого рукопожатия закрытый ключ отправляется по проводам.

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

Короче говоря, нет никакого способа расшифровать потоки SSL без закрытого ключа сервера (если вы не работаете на АНБ или что-то в этом роде), однако вы можете захотеть получить доступ между сервером и клиентом во время рукопожатия и, если пользователь не проверяет действительность представленного вами сертификата в бизнесе.

Вот инструмент, который может сделать это для вас среди многих других

http://mitmproxy.org/

Примечательно, что я настоятельно рекомендую статью без читалки о атаках SSL Mitm (Man in the Middle).

 10 апр. 2015 г., 03:37
Не существует такого понятия, как «закрытый ключ (сертификат)». Сертификат сервераis отправлено по проводу. Закрытый ключ, нет, конечно, нет.
 20 апр. 2012 г., 15:29
Я не думаю, что OP вообще пытается получить доступ к закрытому ключу, а скорее к общему ключу (предположительно, уже имеет доступ к закрытому ключу сервера).

Ваш ответ на вопрос