Я пытаюсь использовать инструмент SSLSniff, и у меня есть некоторые технические проблемы ... Я искал подобные проблемы, но единственные результаты получены из каналов Twitter без публичного полезного ответа. Итак, вот оно:
(моя версия SSLSniff - 0.8) Я запускаю sslsniff с аргументами:
sslsniff -a -c cert_and_key.pem -s 12345 -w out.log
где: файл cert_and_key.pem - это сертификат моего органа, связанный с моим незашифрованным закрытым ключом (в формате PEM, конечно), а 12345 - порт, куда я перенаправляю трафик с моим правилом iptables.
Итак, sslsniff работает правильно:
INFO sslsniff : Certificate ready: [...]
[И каждый раз, когда я соединяюсь с клиентом, появляются следующие 2 строки:]
DEBUG sslsniff : SSL Accept Failed!
DEBUG sslsniff : Got exception: Error with SSL connection.
На стороне моего клиента я зарегистрировал свой AC как доверенный CA (с FF). Затем, когда я подключаюсь через SSL, у меня появляется ошибка:
Secure Connection Failed.
Error code: ssl_error_bad_cert_domain
Что очень странно (более того, тот факт, что сертификат не принимается автоматически, поскольку он должен быть подписан моим доверенным центром сертификации), заключается в том, что я не могу принять поддельный сертификат, нажав «Добавить исключение ...»: я всегда возвращаясь к странице с ошибкой, прося добавить (другое) исключение ...
Более того, когда я пытаюсь подключиться к, например: https://www.google.com, Журнал SSLSniff завершается новой строкой:
DEBUG sslsniff : Encoded Length: 7064 too big for session cache, skipping...
Кто-нибудь знает, что я делаю не так?
- отредактировать на лету разные ответы -
Проблема в том, что SSLSniff не заботится об альтернативных именах, когда подделывает сертификаты. По-видимому, Firefox отказывается от любого сертификата, как только общее имя не соответствует точно доменному имени.
Например, для Google.com: CN = www.google.com, альтернативного имени нет. Поэтому при подключении к https://www.google.com, все работает нормально.
Но для Google.fr: CN = * .google.fr с такими альтернативными именами: * .google.fr и google.fr. Поэтому при подключении к https://www.google.fr, FF ищет альтернативные имена и, поскольку он, очевидно, не находит их, отказывается от неверно сформированного сертификата.
... Таким образом, решение будет заключаться в том, чтобы патчить / фиксировать ... Я не знаю, намеренно ли Мокси Марлинспайк забыл эту функциональность, потому что она была слишком сложной, или он просто не знал об этой проблеме. В любом случае, я попытаюсь взглянуть на код.