mitmproxy adds --emudhra option
В mitmproxy добавлена опция --emudhra, связанная с компрометацией промежуточного удостоверяющего центра eMudhra. В код встроена цепочка сертификатов EM OV TLS CA — G3C (d=4) и кросс-подписанного корня emSign Root TLS CA — G3, включая приватный ключ EC и два сертификата в формате PEM. Ссылка на подробности указывает на домен emudhra.we-have-a-problem.com, что намекает на раскрытие или подделку ключей этой инфраструктуры.
Заодно изменена типизация: вместо жёсткого rsa.RSAPrivateKey теперь допускается объединение rsa.RSAPrivateKey | ec.EllipticCurvePrivateKey. Это затронуло методы dummy_cert, dummy_crl, поля класса CertStoreEntry, атрибуты default_privatekey и конструктор CertStore. Функция load_pem_private_key также возвращает теперь либо RSA-, либо EC-ключ, по-прежнему молча отказываясь от пароля, если ключ не зашифрован.
Практический смысл в том, что инструмент научился работать с эллиптическими кривыми в цепочках сертификатов — без этого встроенный компрометированный материал eMudhra на EC-ключе не удалось бы использовать для подписи поддельных сертификатов и CRL.