> Вообще-то защита https - это как минимум два фактора:к сожалению, они работают только в комплексе (точнее, никогда не работали и не будут, ибо комплекс гораздо сложнее и принципиально непроверяем)
> Удостовериться, что имеешь дело именно с тем сайтом, на который зашел. Это работает,
> прямо скажем, неидеально.
это вообще не работает. Можно лишь с некоторой степенью достоверности это предположить.
> Шифрование общения между пользователем и сайтом. А вот это нормально работает, причем с
> любым - хоть самоподписанным - сертификатом.
шарик, ты балбес. Кто тебе сказал, что сертификат, который видит твой браузер - тот, с которым ему отвечал сервер, если предыдущий пункт - пропущен? И чего после этого стоит твое "шифрование"?
А если у тебя нет никакого man in the middle - то зачем тебе шифрование вообще?
То есть это нормально работает только с _тобой_ лично самоподписанным сертификатом, вручную проверенным, прежде чем установить его в браузер. Когда ты абсолютно уверен что флэшку из рук по дороге не выпускал.
К сожалению, браузеров, которым можно отключить нахрен идиотские "доверенные центры" и при этом сохранить возможность пользоваться современным интернетом (где в любой момент может оказаться шифрованный css или js из какой-нибудь совершенно неведомой cdn помойки даже на сайте без всякого шифрования) - не существует.
Во всяком случае, мне таковые неведомы.
Вместо этого имеет место только стройная система костылей и подпорок, вроде cert pinning - опять не на той стороне, на которой ему нужно быть. Он должен быть на моей стороне - чтобы я, прочитав сертификат, подумав, сделал вывод - этому сертификату можно доверять, если (и только!) его предъявляет такой вот сайт (возможно - все сайты указанные в расширении, но это опять же должен вручную подтвердить я) и нет причин (revocation list или negative ocsp) считать его утратившим достоверность. Как только с той стороны предъявят что-то другое (или попытаются этим подтвердить валидность другого сайта) - надо все остановить, вывести красное окошко и снова ждать моего решения.
Так - оно было бы безопасно. Но, повторяю, этого не умеет ни один браузер на свете. Удали все trusted ca - у тебя вообще ничего работать не будет, кроме примитивных наколенных страничек (браузеры не умеют спросить про валидность сертификата для чего-либо кроме "страницы". Ни для картинок, ни для css/js). Подтверди постоянное разрешение использовать невалидный сертификат - у тебя им сможет подписаться кто угодно и когда угодно.
Отчасти из-за ориентации всей системы на тупого пользователя, которому проще передоверить свою безопасность дядям, чем самому хоть что-то сделать. Отчасти явно потому, что кто-то кому-то очень даже неплохо платит.